menu

Hướng dẫn mod Diablo 2 cơ bản


File dow all: alltoolmod_diablo

I. File Sources
1. MPQ Files
Các bạn để ý trong thư mục game Diablo II có rất nhiều file, nhưng cái chúng ta cần quan tâm nhất ở đây là các file có đuôi .mpq. Liệt kê một tí (xem lướt thôi nhé):

D2char.mpq File dữ liệu: chứa hình ảnh chuyển động của các nhân vật
D2exp.mpq File dữ liệu: hiệu ứng âm thanh, hình ảnh chuyển động của bản Exp
D2music.mpq Logo & nhạc nền
D2speech.mpq Giọng thoại của char & NPC
D2xtalk.mpq Giọng thoại của NPC ở bản Expansion
D2sfx.mpq Hiệu ứng âm thanh
D2xmusic File âm thanh của bản Expansion
D2xvideo.mpq Movie của bản Expansion
Patch_D2.mpq Các thay đổi của các bản patch
D2data.mpq Những thứ còn lại ^^

2. What's inside MPQ Pack Files
Định dạng .mpq thực ra là một kiểu nén file của Billzard. Các định khác được Billzard sử dụng trong pack MPQ này là:

.txt 1. File cơ sở dữ liệu 2. Comments
.bin Dạng complied của file cơ sở dữ liệu dùng khi game hoạt động
.cof Kiểm soát các file hình ảnh chuyển động
.dc6 Ảnh nền
.dcc Ảnh chuyển động của char, mob, vv…
.ds1 Map files; dữ liệu về map, mobs trong map
.dt1 Thể hiện hình ảnh của maps: sàn, cửa, tường, vv…
.tbl Chứa thông tin text hiển thị trong game
.wav ^^
.dat Dùng để chuyễn mã file .dc6 & .dcc

Nếu chỉ thực hiện các mod đơn giản bạn chỉ cần chú ý đến file D2exp.mpq & Patch_D2.mpq. Còn các định dạng cần nhớ là .dc6, .txt .tbl & tất nhiên là .mpq nữa.

II. Modding Tools
Để mod được thì bạn nhất thiết phải có các tools sau:
1. Với định dạng .MPQ
MPQ Datafile: Diablo 2 LoD v1.10 – Giúp MPQ Viewer nhận các file nén trong Patch_D2.mpq của bản Diablo 2 LoD v1.10.
MPQ Datafile: Diablo 2 LoD v1.11 – Giúp MPQ Viewer nhận các file nén trong Patch_D2.mpq của bản Diablo 2 LoD v1.11. Có lẽ chỉ cần download Data file này là được.
MPQ View v1.1b
WinMPQ 1.64
MPQ Viewer & WinMPQ dùng để extract các file nén trong pack .MPQ. Thoạt nhìn thì có vẻ WinMPQ pro hơn MPQ Viewer ( nhiều chức năng hơn & giao diện cũng user friendly hơn ) nhưng không hiểu sao tui vẫn thích dùng MPQ Viewer hơn ^^.
MPQ 2K v2
Compact – Compact 1 Pack thành file .MPQ.

2. Với định dạng .TXT
Microsoft Excel – thật đó ^^
Hoặc có thể dùng tool riêng của D2 là D2excel , link bạn tự tìm ở phần cuối mục Modding Tools này.

3. Với định dạng .DC6
DC6 Creator 1.02 – Review, Extract & Compact .DC6 Files.
Nếu không có định tạo hình ảnh mới, thay đổi ảnh nền, ảnh item thì không cần tool này đâu.

4. Với định dạng .TBL
Darkstorm's Diablo 2 Table Editor v1.02 – Xem và sửa file .tbl

Pro nào thích tìm hiểu sâu thì vào link này đào thêm: Mod Making Tools

III. Exercise – Làm cái ví dụ là hiểu ngay ý mà

Exercise 1. Chính sửa thông số của vũ khí
Nếu bạn muốn có 1 short sword với dmg của nó là 100 – 100 thì nhào dzô thực hiện bài tập này.

1.1. File cần chỉnh sửa
Duy nhất file Weapons.txt trong Patch_D2.mpq

1.2. Các bước tiến hành:
- Tải và giải nén file MPQ View v1.1b, tiếp tục tải MPQ Datafile: Diablo 2 LoD v1.11 về và giải nén vào chung 1 thư mục với MPQ Viewer.
- Chạy MPQView.exe, chọn File --> Open Data File --> trỏ tới file MPQ Datafile ở trên (theo VD này là mpql.txt). Nếu không làm bước này thì MPQ Viewer không thể đọc chính xác file patch_D2.mpq ( sẽ hiển thị là unknown ).
- Click Open Archive --> chuyển tới file Patch_D2.mpq trong thư mục game Diablo, chọn mở file này.
- Tìm files đã chỉ định weapons.txt ở trên. Tìm dòng data\global\excel\weapons.txt. Đánh dấu, chọn Save và save file này ở Desktop, OK?
- Mở file weapons.txt bằng Microsoft Excel, dĩ nhiên bạn có thể dùng WordPad hay NotePad để xem nội dung nhưng nếu save file bằng 2 chương trình này sẽ làm hỏng định dạng file .txt cơ sở dữ liệu của Diablo.
- Short Sword nằm ở dòng thứ 27. Bạn có thể hơi hoa mắt vì những số và chữ. Đừng lo chính sửa đơn giản ý mà. Nhất là đến đây thì cũng khá dài rồi, tôi sẽ giải thích các ký hiệu và số ở bài post sau. OK ghi nhớ vị trí thứ 27, giờ bạn chú ý đến cột K và L, chú thích ở trên ghi gì nhỉ ^^, mindam & maxdam. Bạn có thể thấy short sword mindam & maxdam là 2 – 7. Hãy chỉnh thành 100 – 100.
- Click nút “X” ~ Exit, Excel sẽ báo chú ý. Đó là do định dạng này là của Billzard nên bạn không thể save theo định dạng của Exel được, hãy đọc kỹ thông báo. Nếu không hiểu thì Yes & Yes ^^.
- Tôi chưa đề cập đến việc compile vội, hãy bắt đầu bằng việc test thử small mod này đã. Đây cũng là 1 trong những bước quan trọng cần phải biết. 
- Hãy bắt đầu bằng việc tạo 1 thư mục data trong thư mục game Diablo. Tiếp tục tạo thư mục global con của data. Tiếp đến thư mục excel trong thư mục global & cuối cùng copy fileweapons.txt đã chỉnh sửa vào thư mục excel.
- Hãy quan sát lại đoạn này: data\global\excel\weapons.txt đó chính là lý do vì sao phải ta phải tạo các thư mục theo thứ tự trên.
- Tạo 1 shortcut của game Diablo II ra ngoài desktop. Click chuột phải --> Properties --> trong mục target điền thêm: -direct –txt. VD như của tôi là: "D:\Diablo II\Game 1.11 CRACK.exe" -direct –txt. Làm như vậy thì khi khởi động game nó sẽ thay thế file weapons.txt cũ bằng file mới của chúng ta.
- Bạn vô game, mua thử 1 thanh short sword sẽ thấy rằng dmg của nó là 100 – 100, hãy dùng nhân vật Lv cùi cùi thử dạo một tí xem nhé.

Chỉnh sửa thông số Armor thì bạn mở file armor.txt, cách làm tương tự.
Exercise 2. Tạo một item unique mới
Có thể bạn cho rằng cái này thì cần gì, xài mấy cái tool là ra ngay nhưng xin thưa bạn có thể tạo được 1 item unique có tên của bạn không? Đơn giản như: Moon Grand Matron Bow – đố dùng tool mà có chữ Moon đấy ^^. Tôi sẽ tạo 1 item mới có tên là Gungnir Spear và unique của nó Lord Odin.

2.1 Các files cần thiết
Weapons.txt, UniqueItems.txt, 1 file .tbl bất kỳ. Hehe 3 files này đều nằm cả trong file Patch_D2.mpq
2.2 Các bước tiến hành:
- Dùng MPQView.exe, mở file Patch_D2.mpq & tìm 3 files đã chỉ định ở trên, data\global\excel\weapons.txt, data\global\excel\uniqueitems.txt & data\local\LNG\ENG\patchstring.tbl. Đánh dấu, chọn Save từng file và save chúng ở Desktop cho tiện. Chú ý là với .tbl bạn có thể dùng bất cứ file .tbl nào cũng được.
- Thêm một điểm quan trọng nữa là khi chỉnh sửa bất kỳ file nào bạn cũng đều phải bắt đầu ở dòng cuối cùng của file đó.

a. Chỉnh sửa Weapons.txt - Gungir Spear
- Dùng Microsoft Excel mở file weapons.txt.
- Đầu tiên tôi tạo cây Gungnir Spear, bạn vào weapons.txt, kéo xuống dưới cùng. Tôi sẽ lần lượt giải thích cho bạn ý nghĩa của từng cột. Để đơn giản hơn tôi sẽ tạo cây Gungnir này dựa trên cây Marchial Javelin. Copy dòng 308 xuống dòng 309. Những cột nào tôi không chỉnh sửa thì sẽ dùng giá trị của cây Javelin.

A - name: Chỉ dùng để tham chiếu, ghi chú. Tôi sửa lại thành Gungnir Spear

B- type: Mã cơ bản đầu tiên của item, mã này bạn có thể tìm ở file itemtypes.txt – cũng nằm trong file patch_D2.mpq. Ở đây tôi đã có sẵn mã là ajav. Trừ khi bạn muốn tạo hẳn 1 loại item mới, VD rocket (^^) thì bạn phải chỉnh sửa thêm rất nhiều thứ: ảnh của nó, ảnh khi char sử dụng, vv… và khá là phức tạp đấy

C - type2: mã cơ bản thứ 2 của item – tìm trong itemtypes.txt. Như bạn thấy rất ít item có mã này, tôi cũng để trống cột này

D - code: Mã này gồm 3 ký tự hoặc số, nhất thiết phải là duy nhất và chưa được sử dụng, ở VD của tôi đơn giản tôi dùng mã amg

E - alternategfx: mã xác định file .dcc nào sẽ được dùng để hiển thị hình ảnh chuyển động của nhân vật cùng item. Bắt chước Billzard tôi giữ nguyên là pil :p 

F - namestr: giống cột D, chỉ khác là nó liên quan đến hiển thị tên item trong game. Tôi sử dụng mã giống cột D là amg

G - version: 0=Classic D2, 100=Expansion. Dĩ nhiên là 100 rồi

H - compactsave: 1= sử dụng compactsave 0=không sử dụng compactsave. Mã này dùng để xem xét liệu có dùng compact save để thu nhỏ kích thước file .d2s hay không. Chỉ dùng cho những item như: HP pot, MP pot – item không có quality, dmg, def. Để trống cột này

I - rarity: Không hiểu mục này lắm ^^, đơn giản là khả năng drop, tốt nhất là học theo Billzard: 3

J - spawnable: 1=có thể được bán trong shop, 0=không bao giờ có trong shop

K - mindam: Min dmg của vũ khí 1 tay. Tôi chọn 48

L - maxdam: Max dmg của vũ khí 1 tay. Tăng thêm 1 tẹo đi: 102

M - 1or2handed: Boolean (1=yes,để trống=no) – Barbairian có thể dùng vũ khí này 1 hay 2 tay

N - 2handed: 1 = vũ khí cầm 2 tay, 0 = vũ khí cầm 1 tay

O - 2handmindam: Min dmg của vũ khí 2 tay 

P - 2handmaxdam: Max dmg của vũ khí 2 tay

Q - minmisdam: Min dmg của vũ khí tầm xa. VD: bow, crossbow, throwing javelin mindmg --> 56

R - maxmisdam: Max dmg của vũ khí tầm xa --> 125

S - :

T - rangeadder: Tăng thêm tầm đánh cho vũ khí tầm gần ( note: boxing range = 1 ^^ )

U - speed: Số càng to thì khi cầm bạn chạy càng chậm, số càng bé, thậm chí số âm thì chạy càng nhanh

V - StrBonus: %Str cần để tăng damage

W - DexBonus: %Dex cần để tăng damage

X - reqstr: Required Strength 0-65535

Y - reqdex: Required Dexterity 0-65535

Z - durability: base durability. Max là 255, nếu cố đẩy lên 257 nó sẽ quay ngược về 1 – đừng cố

AA - nodurability: 1=indestructible, để trống=dùng giá trị cột Z - durability

AB - level: item level. Chú ý là còn phải test nữa nên tôi tạm thời để giá trị này là 1

AC - levelreq: Lvl requirement

AD - cost: mua mất bao nhiêu xiền

AE - gamble cost: mã này chưa được game sử dụng, chỉ dùng để tham khảo

AF - magic lvl: Không quan trọng lắm

AG - auto prefix: Không hiểu lắm, liên quan đến prefix

AH - OpenBetaGfx: Game không dùng mã này

AI - normcode: normal item code ( dùng cho mã trong game/cube upgrade )

AJ - ubercode: exceptional item code ( dùng cho mã trong game/cube upgrade )

AK - ultracode: elite item code ( dùng cho mã trong game/cube upgrade ). Tôi sửa thành amg – vì cần dùng để cupe thành đồ ethereal ở Exercise 6

Dừng ở đây là được rồi, save lại file weapons.txt. Click “X”, Yes & Yes.

AL - wclass: Quy định kiểu tấn công nào sẽ được sử dụng cho vũ khí dùng 1 tay (VD: 1hs, 1ht, hth)

AM - 2handedwclass: Quy định kiểu tấn công nào sẽ được sử dụng cho vũ khí dùng 2 tay

AN - component: Quy định lớp ảnh nào được dùng từ file composit.txt để hiển thị item

AO - hit class: Mob bị uýnh sẽ hiển thị như thế nào 

AP - invwidth: item chiếm bao nhiêu ô chứa ngang

AQ - invheight: item chiếm bao nhiêu ô chứa dọc

AR - stackable: stacked ? 1=yes, để trống=no

AS - minstack: Min quantity 

AT - maxstack: Max quantity

AU - spawnstack: quantity của item khi drop/buy/vv…

AV - flippyfile: flip gfx.

AW - invfile: inventory gfx 

AX - uniqueinvfile: unique inventory gfx 

AY - setinvfile: set inventory gfx 

AZ - hasinv: 1=socket được, 0 không tạo được socket

BA - gemsockets: maximum number of sockets 

BB - gemapplytype: gem effecs 0=weapon, 1=armor/helm, 2=shield

BC - special: Ghi chú

BD - useable: 0=you cannot rightclick, 1=you can rightclick on this item

BE - dropsound: Item drop kêu như thế nào

BF - dropsfxframe: Số frames sound sẽ dùng

BG - usesound: Âm thanh khi dùng item.

BH - unique: 1 = luôn là item unique, 0 = not always unique (dùng cho các quest item) 

BI - transparent: unknown function

BJ - transtbl: unknown function (luôn là số 5) 

BK - quivered: is this item a stack of ammo 1=yes, 0=no 

BL - lightradius: Game không dùng

BM - belt: quy định số pots belt trữ được

BN - quest: questitem ID

BO - questdiffcheck: quy định ở normal, nightmare hay hell thì đây là quest item. VD: 
không thể dùng quest item của normal xài cho hell được

BP - missiletype: Ảnh chuyển động nào khi throw 

BQ - durwarning: Icon nào xuất hiện báo low dura

BR - qntwarning: Icon nào xuất hiện báo low quantity

BS - gemoffset: unknown

BT - bitfield1: 1 - leather items, 3 - metal items

- Ghi nhớ mã “amg”, mã này sẽ dùng trong file uniqueitems.txt & patchstring.tbl. OK, giờ bạn mở tiếp file uniqueitems.txt – tất nhiên là bằng Microsoft Excel.

Tham khảo thêm về set item tại đây:
Giải thích file sets.txt
http://phrozenkeep.planetdiablo.gamespy.com/forum/kb.php?mode=article&k=349
Giải thích file setitems.txt
http://phrozenkeep.planetdiablo.gamespy.com/forum/kb.php?mode=article&k=348


b. Uniqueitems.txt - Lord Odin adding
- Tôi sẽ tạo unique item cho item mới - cây Gungnir Spear. Để đơn giản hóa tôi copy dòng 284 – Titan Revenge Ceremonial Javelin xuống dòng cuối cùng 405. Bắt đầu giải thích các cột của file này:
A - index: Tên của uniqueitem. Chỉ cần không trùng lặp với các tên khác là được. Tôi chọn Odin – bạn cần ghi nhớ để sử dụng lại trong file patchstring.tbl

B - version: Có thể dùng 0 hoặc 100. 0 = Classic Version còn 100 = Expansion Version.

C - enabled: Mã boolean. 0 = off, 1 = on. Dĩ nhiên là 1 nếu bạn muốn có iem này rồi #>:).

D - ladder: Nếu ghi ladder thì item này chỉ xuất hiện trong ladder thôi. Tốt nhất hãy bỏ trống ô này. Nếu rảnh thì hãy xóa hết các chữ ladder trong cột D này :D.

E - rarity: Nói đơn giản thì giả sử bạn có 2 cái ring, 1 cái rarity = 1, cái kia = 3 thì trong 4 lần rớt unique ring bạn sẽ có 3 cái ring 2nd và 1 cái 1st. Đơn giản hơn nữa gõ số 1 cho cột E.

F - nolimit: Nếu để 1 thì trong 1 lượt chơi có thể có nhiều unique item đó cùng rớt. Để trống = chỉ 1 item loại unique đó drop. Cái này tôi thấy cũng không cần thiết lắm nên bạn hãy để trống.

G - lvl: Item Level, nếu mob lvl < item lvl thì không bao giờ item drop. Bạn hãy tạm để giá trị này là 1.

H - lvl req: item level requirement.

I - code: mã item. Nếu bạn còn nhớ thì ở mục mục a, hãy điền amg vào cột này. Nếu không thì có tra cứu file itemtypes.txt để biết thêm chi tiết về mã item.

J - *type: Chú ý từ giờ những cột nào có dấu * tức là những cột chỉ nhằm mục đích ghi chú, game không sử dụng những giá trị này. Tôi ghi chú lại: Gungnir Spear.

K - *uber: Ghi chú. 

L - carry1: Để ý dòng 403 cái Hellfire Torch có giá trị là 1 ~ bạn không thể trữ quá 1 cái được. Hãy để trống cột này.

M & N – cost mult & cost add: Bán và mua item này thì bao nhiêu gold. Để cho đẹp file, dĩ nhiên hãy lấy 2 giá trị 5 & 5000.

O & P - chrtransform & invtransform: Chuyển màu của item. Không quá cần thiết – để trống. 

Q & R - flippyfile & invfile: 2 bác này thay đổi diện mạo của item. flippy file hiển thị vũ khí khi sử dụng còn invfile hiển thị ảnh trong inventory. Bạn từng nhớ bản mod nào đó mà item trông thì to đùng 2x4 nhưng chỉ chiếm 1x4 ô chứa trong hòm đồ chứ. Nếu thích thì đào thêm ở các file weapons/armor/misc.txt files ở các cột flpwnd & invwnd. Trong VD đơn giản này thì tốt nhất để trống.

S, T & U - dropsound, dropsfxframe & usesound: Quá rõ ràng rồi

V, W, X & Y (and Z to BQ), prop1, par1, min1 & max1: Từng 4 cặp giá trị này quy định 1 magic attribute của item. VD: ama (để trống par) 2 2 = 2 amzon skill, aura 122 18 18 = aura lv 18 fanta when equipped. Hãy xem thêm các mã ở đây: http://phrozenkeep.planetdiablo.gamespy.com/forum/kb.php?mode=article&k=43 <-- Magic Master Code.

( Note: Về mã aura, skill tab, class skill & monster bạn có thể dùng soft Hero Editor để đối chiếu thêm. Fan Diablo II thì không thể không biết soft này rồi. )

BR - *eol: 0 – chỉ để báo kết thúc 1 dòng. Note: eol stands for End of Line ^^.
- Cuối cùng click “X”, Save & Save, hãy save lại file uniqueitems.txt.

c. patchstring.tbl - avoid the word "AN EVIL FORCE"
- Download Darkstorm's Diablo 2 Table Editor v1.02, giải nén và chạy file tbled102.exe, click File --> Open --> trỏ tới file patchstring.tbl.
- Kéo khung bên trái xuống dưới cùng, bạn lick vào dấu “+”, 1 khung sẽ hiện lên yêu cầu bạn add name for newkey, chúng ta sẽ add 2 key mới là amg & Odin.
- Đầu tiên gõ amg --> Enter. Sau đó click vào key amg mới tạo, gõ vào khung bên phải: Gungnir Spear. Làm tương tự tạo key Odin – Lord Odin. Nếu không có bước này thì game sẽ hiện thị item của chúng ta thành AN EVIL FORCE.
- Save lại file patchstring.tbl.

Tạo new armor thì bạn làm tương tự với file armor.txt, xem phần giải thích file ở đây: http://phrozenkeep.planetdiablo.gamespy.com/forum/kb.php?mode=article&k=2



Exercise 3: Force new made item drop - The famous Quill Rat drop method
Thực ra thì khi thực hiện xong Exercise 2 và làm lại bước –direct –txt như ở Ex1 là bạn đã hoàn thành việc chế tạo 1 unique item mới rồi. Nhưng để item đó drop thì không biết đến bao giờ. Vậy bạn hãy cố gắng thực hiện nốt bài tập này. Trong bài tập này tôi sẽ giới thiệu cho bạn phương thức force item drop nổi tiếng, đó là Quill Rat drop Method.

3.1 Các file cần thiết
1 file duy nhất đó là file: TreasureClassEx.txt nằm trong data\global\excel của file patch_D2.mpq.

3.2 Các bước tiến hành
- Bạn đã qua 2 exercise vì vậy tôi sẽ không giải thích nhiều nữa, bạn extract file TreasureClassEx.txt và mở nó bằng Excel.
- Search với từ khóa Quill hoặc di chuyển xuống dòng 650: Quill 1. Đây là dòng quy định con Quill Rat ở Mode Normal sẽ drop item gì. Xin đừng hỏi tôi con Quill Rat là con nào nhé, ngại lắm ^^.
- Để đơn giản bạn hãy xóa 3 giá trị ở 3 cột I, L & M ~ NoDrop, Item2 & Prob2. Tiếp đó thay giá trị cột J – Item 1 thành amg và cột E – Unique thành 1024. Như vậy khi kill Quill Rat chúng chỉ có thể drop Weapon Gungnir Spear của chúng ta và nhất là khả năng drop Unique là cực lớn. Có thể nói là đến 99% ^^.
- Tôi chỉ lưu ý bạn 1 điểm là vì sao ta phải chỉnh item lvl ở Execrise thành 1 vì Quill Rat ở Normal Lvl của chúng là 1. Bạn có thể chỉnh lại item lvl sau khi hoàn thành bài test drop này.
- Xong rùi đó, save lại file đi.
- Tiếp đó hãy save 4 file: weapons.txtuniqueitems.txtTreasureClassEx.txt & patchstring.tbl theo thứ tự như tôi đã trình bày ở Exercise 1.
Exercise 4: Mở rộng ô chứa của inventory và cube

4.1. Các file cần thiết
- inventory.txt - patch_D2.mpq - data\global\excel\inventory.txt
- invchar6.dc6 - d2exp.mpq - data\global\ui\PANEL\invchar6.dc6
- supertransmogrifier.dc6 - d2exp.mpq - data\global\ui\PANEL\supertransmogrifier.dc6
- TradeStash.dc6 - d2exp.mpq - data\global\ui\PANEL\TradeStash.dc6

4.2. Các bước tiến hành
- Extract 4 files trên ra desktop.
- Download DC6 Creator 1.02 và giải nén. Để có thể dùng soft này, bạn chạy file install.exe trước; sau đó unzip tiếp file DC6_Creator_1.02.exe. Trong file này chứa file DC6 Creator.exe dùng để xem - sửa - và nén lại định dạng Dc6.
- Rất tiếc trong phạm vi bài viết này tôi không chỉ cụ thể các bước tiến hành. Tôi có upload kèm theo đây file ex4.zip chứa file inventory & các file .dc6 đã chỉnh sửa. Bạn có thể tự so sánh và tìm hiều.
- Nói qua một chút về file inventory.txt: các dòng amazon, assassin, Guild Vault, ... là các dữ liệu dùng cho độ phân giải 640x400 còn amazon2, Guild Vault2, vv... dùng cho độ phân giải 800x600. Amazon, Paladin, ... Monster quy định kích thước inventory. Trade Page thì rõ rồi, còn Transmogrify quy định kích thước hộp cube. 3 file dc6 hiển thị hình ảnh tương ứng là invchar6.dc6, TradeStash.dc6 & supertransmogrifier.dc6.
- Nói thêm về cách dùng Dc6 Creator: Bạn chạy file Dc6Creator.exe. Click Open --> trỏ tới file .dc6. Bạn có thể thấy file .dc6 có thể gồm nhiều ảnh ghép lại. Để tiện việc sửa đổi, bạn clickExport all và chọn 1 định dạng ảnh --> chọn vị trí để save lại.
- Sau khi edit ảnh, chú ý tới kích thước và số màu, bạn nén lại thành file .dc6 bằng cách click INI --> Dc6, trỏ tới nơi bạn export --> chọn file .ini --> OK.
- Tiếp đó thì đơn giản bạn chỉ việc copy lại 4 file theo thứ tự, thực hiện -direct -txt là hoàn tất bài tập 4.

Chính sửa ảnh máu và mana: 2 files 800ctrlpnl7.dc6 & hlthmana.dc6 trong d2exp.mpq.


Exercise 5: Create New Cube recipe - tạo công thức nhập đồ mới
Bạn cũng biết mỗi bản Mod có một công thức nhập đồ riêng, nhiều công thức hay - tạo được những item rất mạnh, đặc biệt là ở bản TWF: The Fury Within. Nhưng đôi lúc bạn cảm thấy rất phiền hà vì những công thức này thường cần những item khó kiếm, khá phức tạp và nhất là không phải nhập 1 lần ăn ngay :devil:. Modder họ tạo được công thức thì chúng ta cũng phải tạo được. Qua bài tập này bạn sẽ có cảm tường mình trở nên evil hơn với những công thức made in you.


5.1. Các file cần thiết
- Cần phải qua bài tập 4 để mở rộng Cube đã. Đây cũng là lý do vì sao tôi thay đổi giáo trình. Trong bài tập này tôi sẽ giới thiệu cho bạn cách dupe đồ bằng cupe ^^ nên với một cái Cube nhỏ xinh thì hơi khó :D .
- Download file cubecode.zip đính kèm bài viết <-- Cube Master Code.
- File cần chỉnh sửa là cubemain.txt trong patch_D2.mpq - link: data\global\excel\cubemain.txt.

5.2. Các bước tiến hành
- Extract, sau đó dùng Excel mở file Cubemain.txt
- Giải thích các cột trong file:

A - description: Ghi chú giúp tìm kiếm nhanh chóng các công thức nhập đồ

B - enabled: Mã Boolean, 1 = có sử dụng công thức này, để trống = không sử dụng

C - ladder: Mã Boolean, 1 = chỉ sử dụng trên ladder, để trống = ladder và offline đều dùng được

D - min diff: Mode nào dùng được công thức này. 0 = 3 mode đều dùng được, 1 = chỉ Nightmare & Hell, 2 = chỉ ở Hell mới dùng được

E - version: 0=classic d2, 1=new classic d2 & 100 is expansion recipe

F, G & H - op, param & value: tôi không rõ 3 cột này có ý nghĩa gì, pro nào có thể tham khảo ở đây và giải thích dùm: http://phrozenkeep.planetdiablo.gamespy.com/forum/kb.php?mode=article&k=284
I - class: Recipe chỉ có thể dùng bởi class nào. 7 code ~ 7 char: aka ama, bar, pal, nec, sor, dru & ass

J - numinputs: số lượng item "đầu vào", tính cả lượng "qty" nếu bạn sử dụng mã này trong các cột liệt kê item đầu vào

K -> Q: inputs 1 --> 7: Liệt kê lần lượt các item đầu vào. Hãy sử dụng mã Cube Master Code trong file zip của NEFARIUS đính kèm để điền vào các cột này. Trong đó chú ý rằng input 1 phải là item chủ chốt của công thức - phải liên quan đến item "đầu ra" ~ item sản phẩm

R - output: Mã item của sản phẩm đầu tiên của công thức nhập, tôi goi là item A --> tham khảo Cube Master Code để điền mã item cho A

S - lvl: Item Lvl của A

T - plvl: Bao nhiêu %lvl của char nhập đồ sẽ được + thêm vào item Lvl A

U - ilvl: Bao nhiêu %lvl item gốc sẽ được + thêm vào item Lvl A

V, W, X, Y, Z - mod 1, mod 1 chance, mod 1 param, mod 1 min, mod 1 max --> cặp 5 giá trị này quy định 1 magic attribute cho item A. Và cứ thế từng cặp 5 giá trị là 1 magic attribue của item A cho đến hết cột AU - output b.

Cái này cũng giống như ở bài tập 3, bạn xem lại và dùng Magic Master Code để chỉnh sửa theo ý mình. Nó chỉ khác là có thêm giá trị mod 1 chance mà thôi. Mod 1 chance tức là có bao nhiêu khả năng item A có thêm magic attribute này.

AU - output b: item sản phẩm thứ 2 - item B. Đây cũng chính là ý tưởng cho công thức dupe đồ bằng Cupe. Ngoài ra còn có cả output c nữa các bạn ạ :o. Những cột sau của item B & C tương tự như với item A.

DA - *eol: End of line: luôn có giá trị là 0.

Một ví dụ cho công thức dupe đồ. Cột nào không xuất hiện tức là cột đó để trống hoặc các cột có giá trị quá dễ hiều.

A: Weapon Duper ( do Diablo không có khái niệm item chung mà chia ra: weapon, armor, shield, ring, amulet, vv... nên phải xây dựng từng công thức với từng loại item )
J: 2 ~ công thức cần 2 item đầu vào
K: weap,any ~ bất cứ vũ khí nào = item gốc
L: isc ~ 1 cuộn Indentify Scroll
R: useitem,usetype,mod ~ useitem,usetype = sản phẩm là loại item gốc đầu vào. Mod = giữ nguyên thuộc tính của item gốc bao gồm cả socket, type, quantity, vv... Tức là item A giống hệt item ban đầu
S: 100 ~ giữ nguyên item lvl
AU: useitem,usetype,mod ~ item B cũng giống hệt item ban đầu
AV: 100 ~ item lvl giữ nguyên

Vậy là chỉ cần bỏ 1 vũ khí bất kỳ & 1 cuộn Indentify Scroll vào Cube, nhấn transmute là bạn đã dupe x2 vũ khí đó rồi. Bạn tự làm tương tự với các loại item khác. Tiếp đây tôi trình bày công thức tạo item ethereal:

A: Weapon Ethereal Mode
J: 2 ~ công thức cần 2 item đầu vào
K: weap,any
L: tbk ~ 1 quyển sách portal
R: useitem,usetype,mod
S: 100
V: ethereal ~ thêm thuộc tính ethereal cho weapon

Xong ^^. Tôi đính kèm thêm file CubeMain.zip chứa file cubemain.txt có một số công thức dupe do tôi tự viết. Các bạn có thể tự tạo cho mình những công thức khác như: công thức nâng cấp đồ, chế tạo đồ unique, set, vv... Nếu quá khó thì hãy extract file từ các bản Mod để xem Cupe recipe của họ.


Exercise 6: Compile các file lại thành pack .mpq
Nếu bạn đã chăm chỉ hoàn tất toàn bộ 5 bài tập trên thì có lẽ khi load vào game bạn sẽ thấy hình như lâu hơn và có thể rất lâu :D. Lý do là vì game ngoài việc load các file chính, nó còn phải load lại các file của chúng ta nữa. Các bạn có thể để ý sau thao tác -direct -txt có cả 1 đống file được tạo thêm phải không ạ. Các modder cũng vậy, khi bộ mod của họ đã đồ sộ như các bạn thấy, toàn tầm 10MB trở lên thì khi load bằng kiểu đó sẽ lâu đến mức nào. Và do đó họ cần compile lại các mod vào file .mpq để tranh bị load 2 lần.

6.1. Tool cần thiết
MPQ 2K v2 - chỉ dùng để compact pack .mpq. Chú ý là tool này chỉ chạy trên nền DOS.

6.2. Các bước tiến hành
- Dĩ nhiên là download và giải nén, tôi không hiểu vì sao tool này lại có cái StarEdit.exe vốn dùng để tạo map cho StarCraft :o và nhất là bạn phải copy 1 file có tên là storm.dll vào chung thư mục thì tool mới chạy. File này trong thư mục game của Diablo cũng có nhưng không phải nó đâu. Nếu bạn có cài game StarCraft thì xong ngay :p. Còn không thì ...
- Hehe đùa tí thôi, hình như trong thư mục MPQ Viewer có đó, copy & paste đi nào :p.
- Đơn giản hơn nữa thì tôi sẽ upload cho bạn 3 files: storm.dll, install.txt & install.bat trong file zip đính kèm: packmpq.zip.
- Tôi xin đưa ra 1 VD để bạn hiểu cách pack 1 file MPQ như thế nào. Giả sử ta cần đưa file weapons.txt & cubemain.txt vào lại file patch_D2.mpq. Bạn cần làm những bước sau:

6.3. Giải quyết ví dụ.
- Chú ý là chỉ với những file .txt game luôn đòi phải kèm theo 1 file .bin. File này sẽ tự có sau mỗi lần dùng thao tác -direct - txt và cùng nằm trong thư mục test mod với file .txt của chúng ta. Trong VD này bạn hãy mò vào thư mục game, vào data\global\excel copy 4 file weapons.txt, weapon.bin, cubemain.txt, cubemain.bin vào thư mục chứa MPQ 2K v2.
- Mở file install.txt tôi vừa đề cập ở trên. Đừng quen tay mở bằng Excel nhá :'>. Mở bằng WordPad hoặc NotePad và gõ nội dung như sau:

O Patch_D2.mpq
A Cubemain.txt data\global\excel\Cubemain.txt
A Cubemain.bin data\global\excel\Cubemain.bin
A Weapons.txt data\global\excel\Weapons.txt
A Weapons.bin data\global\excel\Weapons.bin
C Patch_D2.mpq

- Save lại file này. Tiếp đó copy file patch_D2.mpq vào thư mục MPQ 2K này và double click vào file install.bat, chương trình sẽ patch 4 file con vào file pack patch_d2.mpq.
- Copy lại file patch_D2 mới patch về lại vị trí cũ. Tốt nhất bạn tạo thêm 1 shortcut nữa hoặc bỏ dòng -direct -txt trong phần target đi.
- Vào game chơi và hưởng thụ thành quả của mình. Nếu có lỗi thì :o :o. Nhớ backup không lại kêu. Hãy nhớ là bạn có thể chèn vô số lần vẫn OK.

6.4. Mở rộng: Mod lại các bản Mod
Lúc này thì trình của bạn cũng đã kha khá rồi, hãy mổ tung các file patch_D2.mpq của các tác giả mà xem xét các đoạn mã, code, vv... chỉnh sửa theo ý của mình và patch lại file của tác giả.