[龍之谷專題]PAK資源打包器開發(移植)日志<已停止>

龍之谷PAK資源打包器開發進程表
功能
項目
開發(By greensea) 移植(by GPBeta)
讀取 寫入 Win32 UI界面
設計/D
實現/A
測試/T
開發狀態 V2.2 下載    基本完成    遇到問題    未解決

前言

   龍之谷PAK資源文件打包程序(DNPacker)是由GS娘編寫的一個小程序.故名思意,就是用于龍之谷資源修改后的重新打包的一個非常方便的工具.本程序僅用于學習研究之用,請勿用于商業用途,由此軟件產生的商業糾紛軟件作者一概不負責任.

使用說明

   "龍之谷PAK資源文件打包程序"是用于對網游 龍之谷 的游戲資源進行重新打包的工具,生成的 龍之谷 資源格式(*.pak)可以直接放到游戲根目錄,游戲將按加載順序對資源文件進行同名覆蓋.

    使用方法:

  1. 把修改好的資源文件按照對應[文件索引]放到本程序目錄下的 resource 或 mapdata文件夾.
  2. 雙擊運行程序目錄下的pakpack.exe
  3. 選擇程序界面的 mapdata 或 resource 復選框后,點擊 打包 按鈕即可生成pak文件.

資源鏈接

[note]PAK資源打包器V2.2 點擊下載
程序作者發布頁 點擊跳轉[/note]

資源結構

   PAK是《龍之谷》游戲的資源存放文件格式,本格式包含虛擬文件的數據及虛擬目錄/文件的索引,游戲通過對程序目錄下的*.pak后綴名的文件對資源包按順序進行加載,并支持虛擬文件的同名覆蓋(文件名須注明替換的包名,如:Resource01-test.pak).需要注意的是,在PAK包內的虛擬文件是被壓縮(zlib方式,壓縮級別1)后緊湊地存放在資源包的數據區的,因此從PAK提取后的文件需要經過解壓才能使用.
以下是對PAK結構的猜想,以一個自制test.pak作范例:

文件頭段: 占用256字節(00h-FFh),用于標識文件類型,只使用32字節(00h-20h).           
索引信息段: 占用16字節(100h-10Fh),用于指示索引信息及位置.                                    
0B 00 00 00: 占用4字節,固定為0B或0A兩個數值                                                                
02 00 00 00: 占用4字節,表示虛擬文件數量                                                                          
00 05 00 00: 占用4字節,表示虛擬文件索引起始偏移地址                                                  
資源數據段: 不定長度,必須從400h處開始,用于存放虛擬文件數據,文件順序緊湊存放.
78 01: 虛擬文件文件頭,78為zlib標識,01表示壓縮級別1                                                     
索引段: 不定長度,每個虛擬文件索引占316字節(13Ch),用于說明虛擬文件的相關信息.
500h-524h: 顯而易見,這是一個包含完整虛擬目錄信息的虛擬文件名,占用256字節      
20 00 00 00: 占用4字節,表示虛擬文件的大小                                                                      
20 00 00 00: 占用4字節,表示虛擬文件解壓后的大小                                                          
                        (由于這是個例子文件,假設壓縮前后大小不變)                                             
00 04 00 00: 占用4字節,表示虛擬文件的偏移地址                                                              
空白段: 無重大作用,對齊字節用意.

00000000h: 45 79 65 64 65 6E 74 69 74 79 47 61 6D 65 73 20 ; EyedentityGames 
00000010h: 50 61 63 6B 69 6E 67 20 46 69 6C 65 20 30 2E 31 ; Packing File 0.1
00000020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000030h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000040h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000050h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000060h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000070h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000080h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000090h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000100h: 0B 00 00 00 01 00 00 00 00 05 00 00 00 00 00 00 ; .........?......
00000110h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000120h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000130h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000140h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000150h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000160h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000170h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000180h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000190h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000200h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000210h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000220h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000230h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000240h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000250h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000260h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000270h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000280h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000290h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000002a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000002b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000002c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000002d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000002e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000002f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000300h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000310h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000320h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000330h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000340h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000350h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000360h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000370h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000380h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000390h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000003a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000003b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000003c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000003d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000003e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000003f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000400h:  78 01  00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; x...............
00000410h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000420h:  78 01  00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; x...............
00000430h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000440h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000450h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000460h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000470h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000480h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000490h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000004a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000004b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000004c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000004d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000004e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000004f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000500h: 5C 6D 61 70 64 61 74 61 5C 72 65 73 6F 75 72 63 ; \mapdata\resourc
00000510h: 65 5C 73 6F 75 6E 64 5C 62 67 6D 5C 66 69 6C 65 ; e\sound\bgm\file
00000520h: 31 2E 6F 67 67 00 00 00 00 00 00 00 00 00 00 00 ; 1.ogg...........
00000530h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000540h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000550h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000560h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000570h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000580h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000590h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000005a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000005b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000005c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000005d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000005e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000005f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000600h: 20 00 00 00 20 00 00 00 20 00 00 00  00 04 00 00  ;  ... ... .......
00000610h: 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000620h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000630h: 00 00 00 00 00 00 00 00 00 00 00 00 5C 6D 61 70 ; ............\map
00000640h:  64 61 74 61 5C 72 65 73 6F 75 72 63 65 5C 73 6F  ; data\resource\so
00000650h:  75 6E 64 5C 62 67 6D 5C 66 69 6C 65 32 2E 6F 67  ; und\bgm\file2.og
00000660h: 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; g...............
00000670h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000680h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000690h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000006a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000006b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000006c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000006d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000006e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000006f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000700h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000710h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000720h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000730h: 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 ; ............ ...
00000740h: 20 00 00 00 20 00 00 00  20 04 00 00  0A 00 00 00 ;  ... ... .......
00000750h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000760h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

Change Log

2010.08.18 -V1.0.0
1.原始版本
2010.08.26 -V1.0.1
1.修正打包多于507個文件時,提示"無法訪問Resource01-sp.pak"的BUG
2.更新zlib庫到1.2.5
2010.09.04 -V2.0.0
1.修正在WindowsXP上使用本程序意外退出的問題
2.用純WINAPI寫了一個UI
2010.09.17 -V2.1.0
1.可選打包目錄
2.優化消息傳輸
2011.01.16 -V2.2.0
1.UI界面支持視覺風格
2.修正復選框檢測的BUG

  1. コメント 0

  1. 2015 02/01
    トラックバック先:龍之谷-pak分析 | NyKO

?

return top

重庆时时彩官网直播开奖 开奖排列五开奖大乐透 福建体彩31选7中奖新规 五分彩是中国福利彩票彩票吗 幸运赛车怎么看计划 七星彩50期走势图 059期排列3试机号 投资资产配置 资产配置私募基金 幸运快3计划走势图怎么看 买双色球彩票有技巧和窍门 黑龙江11选五5开奖走势图 宁夏11选5的台子推荐一个 北京pk赛车官网开结果 山东十一运夺金彩经网 苹果手机真钱炸金花 股票到哪里开户