精華區beta DIABLO 關於我們 聯絡資訊
打開檔案後,第一行是 00000000h: 7F 00 00 00 00 00 43 69 76 65 72 62 27 73 20 57 ;.....Civerb's W └───┬───-┘ 套裝裝備件數,7F(十六進制)即表有 127 件套裝裝備 將檔案開頭記載套裝裝備件數的部份刪去,則與 Setitems.txt 各欄位對應的情形為 ┌─────────- index ────────── 00000006h: 43 69 76 65 72 62 27 73 20 57 61 72 64 00 00 00 ; Civerb's Ward... ───────── index ─────────┐ 00000016h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................ ┌ item ┐ ┌─ set ─╥ lvl┐ 00000026h: 00 00 00 00 00 00 6C 72 67 20 00 00 00 00 0D 00 ; ......lrg ...... lvl req chrtransform ↑ ↑invtransform ┌┴-╥─ rarity ╥ cost mult╥ cost add ┐│ ↑ 00000036h: 09 00 07 00 00 00 05 00 00 00 C4 09 00 00 0D 0D ; ..........?.... ┌────────- flippyfile -──────── 00000046h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................ ───────- flippyfile ────────┐ 00000056h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................ ┌───────── invfile -───────── 00000066h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................ ────────- invfile -────────┐ 00000076h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................ dropsound dropsfxframe ↑ usesound↑add func ┌┴-╥─┴┐│ ↑┌- prop1 -╥─ par1 ─╥ min1 00000086h: 00 00 00 00 00 01 00 00 00 00 00 00 00 00 0F 00 ; ................ min1 ╥─ max1 ─╥- prop2 ─╥─ par2 ─╥ min2 00000096h: 00 00 0F 00 00 00 10 00 00 00 00 00 00 00 0F 00 ; ................ min2 ╥─ max2 ─╥- prop3 ─╥─ par3 ─╥ min3 000000a6h: 00 00 0F 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... min3 ╥─ max3 ─╥- prop4 ─╥─ par4 ─╥ min4 000000b6h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... min4 ╥─ max4 ─╥- prop5 ─╥─ par5 ─╥ min5 000000c6h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... min5 ╥─ max5 ─╥- prop6 ─╥─ par6 ─╥ min6 000000d6h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... min6 ╥─ max6 ─╥- prop7 ─╥─ par7 ─╥ min7 000000e6h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... min7 ╥─ max7 ─╥- prop8 ─╥─ par8 ─╥ min8 000000f6h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... min8 ╥─ max8 ─╥- prop9 ─╥─ par9 ─╥ min9 00000106h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... min9 ╥─ max9 ─╥ aprop1a -╥- apar1a -╥ amin1a 00000116h: 00 00 00 00 00 00 0B 00 00 00 00 00 00 00 15 00 ; ................ amin1a ╥- amax1a -╥ aprop1b -╥- apar1b -╥ amin1b 00000126h: 00 00 16 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... amin1b ╥- amax1b -╥ aprop2a -╥- apar2a -╥ amin2a 00000136h: 00 00 00 00 00 00 27 00 00 00 00 00 00 00 19 00 ; ......'......... amin2a ╥- amax2a -╥ aprop2b -╥- apar2b -╥ amin2b 00000146h: 00 00 1A 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... amin2b ╥- amax2b -╥ aprop3a -╥- apar3a -╥ amin3a 00000156h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... amin3a ╥- amax3a -╥ aprop3b -╥- apar3b -╥ amin3b 00000166h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... amin3b ╥- amax3b -╥ aprop4a -╥- apar4a -╥ amin4a 00000176h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... amin4a ╥- amax4a -╥ aprop4b -╥- apar4b -╥ amin4b 00000186h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... amin4b ╥- amax4b -╥ aprop5a -╥- apar5a -╥ amin5a 00000196h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... amin5a ╥- amax5a -╥ aprop5b -╥- apar5b -╥ amin5b 000001a6h: 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 ; ...... ...... amin5b ╥- amax5b -┐ ┌ 下一件套裝裝備的 index 000001b6h: 00 00 00 00 00 00 00 00 43 69 76 65 72 62 27 73 ; ........Civerb's 000001c6h: 20 49 63 6F 6E ; Icon 記錄的形式分為字與數(十六進制)兩種。index、item、flippyfile、invfile 這四欄位 是以字的形式記錄在 setitems.bin,打開檔案後望之即識。其他欄位皆以數的形式記錄, 並以兩個進位(十六進制)為一組,顛倒地由低位組排列至高位組。如 cost add 此欄, 在 Setitems.txt 中其值為 2500,於 setitems.bin 中所見為 C4 09 00 00,轉換過程為 ╭───────────╮ │ ╭─────╮ │ │ │ ↓ ↓ 2500 → 9C4(十六進制)→ 00 00 09 C4 → C4 09 00 00 │ │ ↑ ↑ │ ╰──╯ │ ╰────────╯ 數的轉換具有週期性,相差正好整數個週期的兩數其轉換的結果將相同。 週期的大小與記 錄的長度有關。以一個字元(十六進制的兩個位)的長度記錄的欄位,如 chrtransform ,其週期為 16*16=256;以兩個字元(十六進制的四個位)的長度記錄的欄位,如 lvl, 其週期為 16^4=65536,以下類推。將欄位與記錄長度、週期的對應關係製表得 ┌────┬─────┬─────────────────────┐ │記錄長度│ │ │ │(字元)│ 週 期 │ 欄 位 │ ├────┼─────┼─────────────────────┤ │ │ │chrtransform invtransform dropsfxframe│ │ 1 │ 256│add func │ ├────┼─────┼─────────────────────┤ │ │ │set lvl lvl req │ │ 2 │ 65536│dropsound usesound │ ├────┼─────┼─────────────────────┤ │ │ │rarity cost mult cost add │ │ │ │prop1(~9) par1(~9) min1(~9) │ │ 4 │4294967296│max1(~9) aprop1a(~5b) apar1a(~5b) │ │ │ │amin1a(~5b) amax1a(~5b) │ └────┴─────┴─────────────────────┘ 有時由十六進制反推回十進制所得的數極大, 這時或許應該以恰好小一個週期的負數當作 反推結果,較能符合實際遊戲裡的狀況,雖然這兩個一正一負的數在 setitems.bin 裡生 成的記錄是一模一樣的。如 Setitems.txt 中 Cathan's Mesh 的 min2 及 max2 欄即為 -50 而非 4294967246,其實際的效果亦為減少屬性需求而非提高。 以下對必須或可以進一步處理的欄位個別說明。 ※ set 須查 Sets.txt 的 index 欄位將數字轉回文字。某全套在 Sets.txt 的排列順序減一即為 某全套的對應數,如 0 即須轉為 Civerb's Vestments,1 即須轉為 Hsarus' Defense, 以下類推。此欄位及 Sets.txt 之 index 欄位僅作用於套裝裝備與全套的匹配,故若 Sets.txt 同 Setitems.txt 一般,尚待反推而無可參考時,只需注意使相匹配的 Setitems.txt 之 set 與 Sets.txt 之 index 兩欄位之文字一致即可。官方的、如數以全 套名填入的處置只是一種風格。 若兩欄位皆留白,亦可互相匹配。留白亦判定為「值」的 一種。 ※ lvl、lvl req 若為 0 或 1 則表示無等級限制,留白亦可。 ※ rarity 若為 0 則表示不可能出現,留白亦可。 ※ cost mult、cost add 若為 0 則表示費用無加、減成/增減,留白亦可。 ※ chrtransform、invtransform 須查 colors.txt 的 Code 欄位將數字轉回文字。某顏色在 colors.txt 的排列順序減一 即為某顏色的對應數,如 0 即須轉為 whit,1 即須轉為 lgry,以下類推。若為 255(十 六進制的 FF)則表示不變色,留白即可。 ※ dropsound、usesound 須查 Sounds.txt 的 Sound 欄位將數字轉回文字。某音效在 Sounds.txt 的排列順序即為 某音效的對應數,如 1 即須轉為 cursor_pass,2 即須轉為 cursor_select,以下類推。 若為 0 則表示不另定音效,留白即可。 ※ dropsfxframe 若為 0 則表示不另定播放延遲時間,留白亦可。 ※ add func 若為 0 則表示這件套裝裝備的追加屬性(aprop1a(~5b),綠色)無條件出現,留白亦可。 ※ prop1(~9)、aprop1a(~5b) 須查 Properties.txt 的 code 欄位將數字轉回文字。某物品屬性在 Properties.txt 的 排列順序減一即為某物品屬性的對應數,如 0 即須轉為 ac,1 即須轉為 ac-miss,以下 類推。若為 4294967295(十六進制的 FFFFFFFF)則表示不指定物品屬性,留白即可。 ※ par1(~9)、apar1a(~5b) 若為 0 則表示未使用參數或參數為零,留白亦可。若前一欄位的物品屬性為 skill(123) 、aura(124) 等須指定技能者,可查 skills.txt 的 skill 欄位將數字轉回文字,此時某 技能在 skills.txt 的排列順序減一即為某技能的對應數,如 6 即轉為 Magic Arrow,7 即轉為 Fire Arrow,以下類推。 ※ min1(~9)、max1(~9)、amin1a(~5b)、amax1a(~5b) 若為 0 則表示最小/最大值為零或未使用,留白亦可。 將以上的個別說明列表 ┌──────┬───┬───┬───────────┬──────────┐ │ │可否為│可否為│ 轉回文字時須查詢的 │ │ │ 欄 位 │ 數字 │ 文字 │ 檔案 :: 欄位 │ 留白的意義 │ ├──────┼───┼───┼───────┬───┼──────────┤ │set │ 否 │ 必須 │ Sets.txt │index │「值」的一種 │ ├──────┴───┴───┴───────┴───┼──────────┤ │lvl、lvl req │無等級限制 │ ├──────────────────────────┼──────────┤ │rarity │不可能出現 │ ├──────────────────────────┼──────────┤ │cost mult、cost add │費用無加、減成/增減 │ ├──────┬───┬───┬───────┬───┼──────────┤ │chrtransform│ │ │ │ │ │ │invtransform│ 否 │ 必須 │ colors.txt │ Code │不變色 │ ├──────┼───┼───┼───────┼───┼──────────┤ │dropsound │ │ │ │ │ │ │usesound │ 否 │ 必須 │ Sounds.txt │Sound │不另定音效 │ ├──────┴───┴───┴───────┴───┼──────────┤ │dropsfxframe │不另定播放延遲時間 │ ├──────────────────────────┼──────────┤ │add func │追加屬性無條件出現 │ ├──────┬───┬───┬───────┬───┼──────────┤ │prop1(~9) │ │ │ │ │ │ │aprop1a(~5b)│ 否 │ 必須 │Properties.txt│ code │不指定物品屬性 │ ├──────┼───┼───┼───────┴───┼──────────┤ │par1(~9) │ │ │ skills.txt ::skill │ │ │apar1a(~5b) │ 可 │ 可 │(前一欄位為某幾種時)│未使用參數或參數為零│ ├──────┴───┴───┴───────────┼──────────┤ │min1(~9)、max1(~9)、amin1a(~5b)、amax1a(~5b) │值為零或未使用 │ ├──────┬───┬───┬───────────┼──────────┤ │ 欄 位 │可否為│可否為│ 檔案 :: 欄位 │ 留白的意義 │ │ │ 數字 │ 文字 │ 轉回文字時須查詢的 │ │ └──────┴───┴───┴───────────┴──────────┘ Setitems.txt 的 *item 欄位僅供人參考,未記錄於 setitems.bin。若欲仿官方風格完成 此欄,則以 item 欄位之三字母單字查詢 armor.txt、misc.txt、weapons.txt 之 code 欄,覓得相應的 name 欄位之值,將其填回 *item 欄位即可。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.93.251
homie407:期中考?考題?霧煞煞 02/28 13:55
thisgo:很專業的感覺 但可以先做個簡介嗎? 有種突然冒出來的感覺XD 02/28 13:56
> -------------------------------------------------------------------------- < 作者: BlackParade (BlackParade) 看板: DIABLO 標題: Re: [心得] 由 sets.bin 反推 Sets.txt 時間: Sun Mar 9 01:02:28 2008 → locktas:看不懂.. 02/28 14:00 推 ASHPJ:誰能翻譯一下? 02/28 14:05 來畫這個「恢復妙麗所需的『技能樹』」看看 ┌────────┐ ┌────────┐ ┌────────┐ │使用十六進位編輯│ │使用 MPQview 之 │ │使用 Excel 之類 │ │器的能力,例如 │ │類軟體從 .mpq 檔│ │軟體的能力 │ │UltraEdit │ │解出檔案的能力 │ │ │ └────────┘ └────────┘ └────────┘ ╰─────┬───╯ ╰───┬─────╯ ↓ ↓ ┌────────┐ ┌────────┐ │閱讀從 .mpq 檔解│ │閱讀從 .mpq 檔解│ │出的 .bin 檔 │ │出的 .txt 檔 │ └────────┘ └────────┘ ╰─────┬─────╯ ↓ ┌────────┐ ┌────────┐ ┌────────┐ │用參數 -direct │ │對照 .bin 檔與 │ │使用 MPQEditor │ │-txt 外掛 .txt │ │.txt 檔,從 .bin│ │之類軟體把檔案壓│ │檔的能力 │ │檔反推 .txt 檔 │ │回 .mpq 檔的能力│ └────────┘ └────────┘ └────────┘ ╰────┬────╯ ╰─┬───────╯ │ │ │ │ ┌────────┐ │ │ │使用 UdieToo 修 │ │ ├── │改存檔的能力 │ │ ↓ └────────┘ │ 可以在 UdieToo │ │ 裡用妙麗裝備 ↓ │ ┌────────┐ │ │使用 -direct 參 │ ├───────────── │數導引 UdieToo │ ↓ │的能力 │ 這樣也可以在 └────────┘ UdieToo 裡用 妙麗裝備 換句話說,想要看懂上面兩篇文,要先會用 UltraEdit、MPQview、Excel 才行…… -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.81.130
littlebai:這太專業了 囧rz 03/09 01:02
yanion:我只會excel XDDD 03/09 01:03