由 sets.bin 反推 Sets.txt - 暗黑

Selena avatar
By Selena
at 2008-02-28T13:49

Table of Contents

打開檔案後,第一行是

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 │ │
└───────┴──┴──┴──────────┴───┴────────┘

--
Tags: 暗黑

All Comments

Jack avatar
By Jack
at 2008-02-28T16:04
End的舉手 .____./
Steve avatar
By Steve
at 2008-02-28T17:38
看不懂>_</
Madame avatar
By Madame
at 2008-03-04T07:08
我是按PDPDPDPDPDPD...
Olive avatar
By Olive
at 2008-03-08T02:03
........
Ethan avatar
By Ethan
at 2008-03-11T20:55
純推不下
Doris avatar
By Doris
at 2008-03-16T06:55
這啥...?
Daniel avatar
By Daniel
at 2008-03-17T18:22
是內臟嗎?
Noah avatar
By Noah
at 2008-03-21T13:48
._________./
Adele avatar
By Adele
at 2008-03-22T19:06
@__@ /
Heather avatar
By Heather
at 2008-03-24T22:45
._________./
Daph Bay avatar
By Daph Bay
at 2008-03-27T11:53
專業
Oscar avatar
By Oscar
at 2008-03-30T22:49
-_______________-/
Brianna avatar
By Brianna
at 2008-04-01T09:03
-____________-/ 看無...
Kyle avatar
By Kyle
at 2008-04-03T09:48
純推不下
Thomas avatar
By Thomas
at 2008-04-07T10:51
看不懂..
Callum avatar
By Callum
at 2008-04-11T18:47
誰能翻譯一下?

頻道常見交易用語

Edith avatar
By Edith
at 2008-02-22T14:38
剛剛看到有人問了 就來po一下 慣用語 請自出 = and#34;offerand#34;, and#34;offer me (in XXX)and#34; 最高出價 = and#34;top offerand#34;, and#34;t/oand#34; 人離開掛網中 = and#34;afkand#3 ...

競標文阿...

Hedda avatar
By Hedda
at 2008-02-17T13:50
好久不見 出來跟大家say hello .__.\~/ 切入主題吧 切入主題吧 切入主題吧 切入主題吧 切入主題吧 競標這種方式 不過也就是另一種形式的交易罷了 差別在於 這是一種只要出價有效買賣就成立的方式 對於買家而言 當然是出到心理面認為可以的價錢就停止 也就是設一個停損點 ...

跑速一欄表

Rosalind avatar
By Rosalind
at 2008-02-16T04:14
※ 引述《davidbeckham (Miss Ivy)》之銘言: : 參考自Gamebase: : http://forum.gamebase.com.tw/board_archive_function.jsp?cno=0andamp;no=2442 : andamp;mode=10andamp;artic ...

有關風德

Mia avatar
By Mia
at 2008-02-12T19:46
其實一直都很猶豫要不要po這篇心得文 因為有關風德pvp QJP已經有很詳細的介紹了 但是PVP這種東西我覺淂要靠自己去摸索 很多東西 要自己試了才知道 所以 以下只是小弟我的一點點心得 請不要見笑 ---------------------------------------------- ...

被騎的很開心XD

Irma avatar
By Irma
at 2008-02-10T01:57
嗯.. 這次的比賽 不管是1V1 還是 2VS2 我都有參一咖~ 說實在的 1VS1 第一場就遇到冠軍真的挺囧的= =and#34; 輸的心服口服阿! 我在那 拼命的飛 拼命的丟 雖然輸了之後才發現用牙+骨矛 還有點勝算 不過已經來不及了 ORZ 這年頭 還是風德當道阿 andgt;andl ...