[心得] 由 sets.bin 反推 Sets.txt

看板 DIABLO
作者 BlackParade (BlackParade)
時間 2008-02-28 13:49:20
留言 16 ( 13推 0噓 3→ )
打開檔案後,第一行是 00000000h: 20 00 00 00 00 00 B0 09 00 00 00 00 00 00 00 00 ; .....?........ └─-┬──┘ 套裝套數,20(十六進制)即表有 32 套套裝 將檔案開頭記載套裝套數的部份刪去,則與 Sets.txt 各欄位對應的情形為 套號 version ↑ name ↑ ┌┴-┬-┴-┬-┴-┐ 00000004h: 00 00 B0 09 00 00 00 00 00 00 00 00 00 00 00 00 ; ..?............ ┌ PCode2a ┬ PParam2a ┬- PMin2a -┬- PMax2a -┐ 00000014h: 1F 00 00 00 00 00 00 00 0F 00 00 00 0F 00 00 00 ; ................ ┌ PCode2b ┬ PParam2b ┬- PMin2b -┬- PMax2b -┐ 00000024h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ PCode3a ┬ PParam3a ┬- PMin3a -┬- PMax3a -┐ 00000034h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ PCode3b ┬ PParam3b ┬- PMin3b -┬- PMax3b -┐ 00000044h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ PCode4a ┬ PParam4a ┬- PMin4a -┬- PMax4a -┐ 00000054h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ PCode4b ┬ PParam4b ┬- PMin4b -┬- PMax4b -┐ 00000064h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ PCode5a ┬ PParam5a ┬- PMin5a -┬- PMax5a -┐ 00000074h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ PCode5b ┬ PParam5b ┬- PMin5b -┬- PMax5b -┐ 00000084h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ FCode1 -┬ FParam1 -┬- FMin1 ─┬- FMax1 ─┐ 00000094h: 07 00 00 00 00 00 00 00 0F 00 00 00 0F 00 00 00 ; ................ ┌ FCode2 -┬ FParam2 -┬- FMin2 ─┬- FMax2 ─┐ 000000a4h: 63 00 00 00 00 00 00 00 C8 00 00 00 C8 00 00 00 ; c.......?..?.. ┌ FCode3 -┬ FParam3 -┬- FMin3 ─┬- FMax3 ─┐ 000000b4h: 21 00 00 00 00 00 00 00 19 00 00 00 19 00 00 00 ; !............... ┌ FCode4 -┬ FParam4 -┬- FMin4 ─┬- FMax4 ─┐ 000000c4h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ FCode5 -┬ FParam5 -┬- FMin5 ─┬- FMax5 ─┐ 000000d4h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ FCode6 -┬ FParam6 -┬- FMin6 ─┬- FMax6 ─┐ 000000e4h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ FCode7 -┬ FParam7 -┬- FMin7 ─┬- FMax7 ─┐ 000000f4h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ ┌ FCode8 -┬ FParam8 -┬- FMin8 ─┬- FMax8 ─┐ 00000104h: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ; ????............ 00000114h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................ 下一套套裝的套號 ↑ ┌┴-┐ 00000124h: 00 00 00 00 00 00 00 00 01 00 ; .......... 所有欄位皆以數(十六進制)的形式記錄, 並以兩個進位(十六進制)為一組,顛倒地由 低位組排列至高位組。 如 name 此欄,在 sets.bin 中其值為 B0 09,須先經如下之轉換過程 ╭─────╮ │ ↓ B0 09 → 09 B0 → 9B0(十六進制)→ 2480 │ ↑ ╰──╯ 再以所得數 2480 進行進一步處理(下述),始可還原得 Sets.txt 中所見之 Civerb's Vestments。 數的轉換具有週期性,相差正好整數個週期的兩數其轉換的結果將相同。 週期的大小與記錄的長度有關。 以兩個字元(十六進制的四個位)的長度記錄的欄位,如 version,其週期為 16^4=65536 ; 以四個字元(十六進制的八個位)的長度記錄的欄位,如 P P a r a m 2 a ,其週期為 16^8=4294967296,以下類推。 將欄位與記錄長度、週期的對應關係製表得 ┌────┬─────┬─────────────────────┐ │記錄長度│ │ │ │(字元)│ 週 期 │ 欄 位 │ ├────┼─────┼─────────────────────┤ │ 2 │ 65536│name version │ ├────┼─────┼─────────────────────┤ │ │ │PCode2a(~5b) PParam2a(~5b) PMin2a(~5b)│ │ 4 │4294967296│PMax2a(~5b) FCode1(~8) FParam1(~8)│ │ │ │FMin1(~8) FMax1(~8) │ └────┴─────┴─────────────────────┘ 以下對必須或可以進一步處理的欄位個別說明。 ※ name 須查 string.tbl、patchstring.tbl、expansionstring.tbl 將數字轉回文字鍵 (key)。 若為 string.tbl 的文字鍵,則其排列順序減一即為其對應之數; 若為 patchstring.tbl 的文字鍵,則其排列順序加一萬再減一即為其對應之數; 若為 expansionstring.tbl 的文字鍵,則其排列順序加二萬再減一即為其對應之數。 例如 2480 小於一萬,須查 string.tbl 轉為 Civerb's Vestments; 10022 介於一萬與二萬之間,須查 patchstring.tbl 轉為 Hsarus' Defense; 21667 大於二萬,須查 expansionstring.tbl 轉為 Natalya's Odium,其餘類推。 ※ version 若為 0 則表示為主程式 CD2 套裝,留白亦可。 ※ PCode2a(~5b)、FCode1(~8) 須查 Properties.txt 的 code 欄位將數字轉回文字。 某物品屬性在 Properties.txt 的排列順序減一即為某物品屬性的對應數,如 0 即須轉為 ac,1 即須轉為 ac-miss,以下類推。 若為 4294967295 (十六進制的 FFFFFFFF)則表示不指定物品屬性,留白即可。 ※ PParam2a(~5b)、FParam1(~8) 若為 0 則表示未使用參數或參數為零,留白亦可。 若前一欄位的物品屬性為 skill(123)、aura(124) 等須指定技能者,可查 skills.txt 的 skill 欄位將數字轉回文字,此時某技能在 skills.txt 的排列順序減一即為某技能的對 應數,如 6 即轉為 Magic Arrow,7 即轉為 Fire Arrow,以下類推。 若前一欄位的物品屬性為 state(267) ,可查 states.txt 的 state 欄位將數字轉回文字 ,此時某狀態在 states.txt 的排列順序減一即為某狀態的對應數,如 1 即轉為 freeze ,2 即轉為 poison,以下類推。 ※ PMin2a(~5b)、PMax2a(~5b)、FMin1(~8)、FMax1(~8) 若為 0 則表示最小/最大值為零或未使用,留白亦可。 以下對只出現於 Sets.txt、sets.bin 兩檔其中之一的欄位個別說明。 ※套號 (sets.bin) 某套裝在 Sets.txt 的排列順序減一即為此欄位記錄之數,如 0 即為套裝 Civerb's Vestments,1 即為套裝 Hsarus' Defense,以下類推。 此欄位僅出現於 sets.bin,依套裝排列順序自動生成數值,非為 Sets.txt 中正式、具名 之欄位,毋須反推回 Sets.txt,姑且稱之為套號。 ※ index (Sets.txt) 須查 setitems.bin 及 Setitems.txt 的 set 欄位將套號轉為文字。 於 setitems.bin 尋得其 set 欄位之數與套號相同之任一套件,則 Setitems.txt 中同套 件的 set 欄位之文字即為應填入 index 欄位之值。 此欄位及 Setitems.txt 之 set 欄位僅作用於套裝與套件的匹配,故若 Setitems.txt 同 Sets.txt 一般,尚待反推而無可參考時,只需注意使相匹配的 Sets.txt 之 index 與 Setitems.txt 之 set 兩欄位之文字一致即可。 官方的、如數以套裝名填入的處置只是一種風格。 若兩欄位皆留白,亦可互相匹配。留白亦判定為「值」的一種。 ※ level (Sets.txt) Sets.txt 的 level 欄位未記錄於 sets.bin。 若欲依樣完成此欄,則搜尋 Setitems.txt 中屬於此套裝之任一套件的 lvl 欄,回填其值 入 level 欄位即可。 對以上的欄位個別說明,留下反推 Sets.txt 時務必完成否則無法生成正確的 sets.bin 者,列表 ┌──────┬───┬───┬─────────────┬────────┐ │ │可否為│可否為│轉 回 文 字 時 須 查 詢 的│ │ │ 欄 位 ╰┐數字│文字┌╯ 檔 案 :: 欄位 │ 留白的意義 │ ├───────┼──┼──┼──────────┬───┼────────┤ │ │ │ │ string.tbl │ │ │ │name │ 否 │必須│ patchstring.tbl │文字鍵│不可留白 │ │ │ │ │expansionstring.tbl │(key) │ │ ├───────┴──┴──┴──────────┴───┼────────┤ │version │為主程式 CD2套裝│ ├───────┬──┬──┬──────────┬───┼────────┤ │PCode2a(~5b) │ │ │ │ │ │ │FCode1(~8) │ 否 │必須│ Properties.txt │ code │不指定物品屬性 │ ├───────┼──┼──┼──────────┴───┼────────┤ │ │ │ │ skills.txt ::skill │ │ │PParam2a(~5b) │ 可 │ 可 │ ststes.txt ::state │未使用參數或參數│ │FParam1(~8) │ │ │ (前一欄位為某幾種時) │為零 │ ├───────┴──┴──┴──────────────┼────────┤ │PMin2a(~5b)、PMax2a(~5b)、FMin1(~8)、FMax1(~8) │值為零或未使用 │ ├───────┬──┬──┬──────────┬───┼────────┤ │ │ │ │ sets.bin │ 套號 │ │ │index │未有│必須│ setitems.bin │ set │「值」的一種 │ │ │記錄│ │ Setitems.txt │ set │ │ └───────┴──┴──┴──────────┴───┴────────┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc)

留言

kathsda End的舉手 .____./ 02/28 13:50 1F
andrewtw 看不懂>_</ 02/28 13:50 2F
rocku6999 我是按PDPDPDPDPDPD... 02/28 13:50 3F
qaxqwe ........ 02/28 13:51 4F
biblecross 純推不下 02/28 13:51 5F
asd155084 這啥...? 02/28 13:51 6F
kadaju 是內臟嗎? 02/28 13:51 7F
LUCIFERRRR ._________./ 02/28 13:52 8F
jacky251 @__@ / 02/28 13:53 9F
qaxqwe ._________./ 02/28 13:54 10F
Jarry 專業 02/28 13:56 11F
bladeX -_______________-/ 02/28 13:55 12F
ak771112 -____________-/ 看無... 02/28 13:57 13F
macauboy 純推不下 02/28 13:58 14F
locktas 看不懂.. 02/28 14:00 15F
ASHPJ 誰能翻譯一下? 02/28 14:05 16F

最新文章

[PS5] 售 勇者鬥惡龍 3 HD-2D
gamesale kanra0220
2024-11-25 08:24:13
[原神] 茜特莉菈越來越明朗
mihoyo clawrage
2024-11-25 07:43:47
[揪團] 台中桌遊團
boardgame mickon
2024-11-25 07:27:20
[三國] 三國志9優化伴侶
1 1 koei diablo81321
2024-11-25 03:36:43
[問題] 全華班是不是還是很有希望的?
6 7 lol pellaeon
2024-11-25 03:29:55
Re: [問題] 有些銀行不能刷STEAM 儲值??
1 2 steam yamahabbs
2024-11-25 03:12:39
[XBOX] 售 XBOX Series X XSX 1TB 單主機
gamesale polaronebear
2024-11-25 02:45:08
[問題] 關於勇鬥三的升級
2 2 playstation amadeuschiu
2024-11-25 02:24:20
關於勇鬥三的升級加能力
playstation amadeuschiu
2024-11-25 02:19:54