Stránka 1 z 1

Vytvoření nové unikátní věci

Napsal: 14.05.2009, 18:06 hod.
od Javurek
V této lekci se už podíváme na to, jak si přidat svou unikátní věc. Z patch_d2.mpq\data\global\excel si vyextrahujte UniqueItems.txt a také data\local\lng\eng\Patchstring.tbl.

Otevřete v AFJS uniqueitems.txt. Uvidíte všechny unikátní věci, které vůbec v D2 jsou. Zde ve většině případů "name" jejich jménu ve hře odpovídá, ale je to spíše kvůli přehlednosti, klidně by ta jména tady mohla být jiná.
Klikněte kamkoliv do souboru pravým tlačítkem a vyberte Row operations > add rows a zadejte 1. Přibyde jeden nový řádek. Do "name" napište co chcete, můžete klidně napsat název, který pak bude vidět ve hře. Pole version určuje, jestli bude věc v obyčejném D2 (hodnota 0) nebo LODu (hodnota 100). To zálěží na vás. V enabled musí být 1, jinak by věc byla deaktivovaná. Ladder: 0, rarity: 1. Lvl a lvl req jsou levely věci, dejte 1 (později vysvětlím, proč). Vytváříme unikátní prsten, takže do "code" napište "rin". Do "*type" nemusíte dávat nic, do cost mult a cost add dejte to, co mají ostatní věci (smysl těchto sloupců není důležitý). Pak už nás zajímají jen pole propx. To jsou konečně pole, která definují vlastnosti věci.

Asi vás nepřekvapí, že do polí propx nemůžete psát třeba "+x to life", "x life stolen per hit". Takové zápisy by byly dost dlouhé, a proto má každá vlastnost svůj kód. Jejich kompletní seznam si můžete stáhnout v sekci ODKAZY.
Řekněmě, že chceme, aby věc dávala +40 do life, +20% do maximum many a 1 do všech skillů (v reálu by byl takový dost ring dost overpowered, ale to je teď jedno). Kód pro + life je hp, takže do prop1 napište "hp" a do min1+max1 "40". Min a max je rozmezí hodnot dané vlastnosti, takže třeba 40 v min1 a 60 v max1 znamená, že se bude náhodně vybírat mezi 40-60. X % do maxima many je "mana%", to bude v prop2, min2+max2 = 20. +all skills je překvapivě "allskills", v min3+max3 bude 1. A hlavně, nezapomeňte napsat 0 ve sloupci eol, v lepším případě by to tenhle nový řádek ignorovalo, v horším by hra spadnula. Teď už náš prsten existuje (a dokonce funguje), ale nemá žádný nápis. Takže se konečně podíváme, jak fungují tbl soubory.


Většina textů v Diablu je uložena v *.tbl souborech. Do toho patří věci a jejich vlastnosti, monstra, jména NPC, logování do BN, chybové hlášky na BN, a všechen scrolovací text, když kecáte s nějakým NPC. Pro každý jazyk jsou 3 .tbl soubory; ten nejstarší z nich, String.tbl, je uložen v d2data.mpq a obsahuje veškeré nápisy originální hry D2. Nápisy datadisku jsou v ExpansionString.tbl, který je v d2xp.mpq.
A ty nejnovější změny přinesené patchem (tedy v Patch_d2.mpq), jsou v Patchstring.tbl.
Tyto tabulky s nápisy (string tables) mají vždy dva sloupce; ten levý tzv. string key a napravo je to, co se skutečně ukazuje ve hře. String key musí přesně odpovídat názvu v tom kterém txt souboru. V souboru UniqueItems.txt jsou string keye ve sloupci "name". Např. ring Manald Heal má stejný string key jako pravý string, ale pro běžné věci to neplatí, třeba Hand Axe je "hax".

Nápis klidně může být definován ve více souborech najednou. Pokud to tak je, definice v Expansionstring přepíše tu ve string, a definice v patchstring přepíše tu v expansionstring. Při dělání módů si můžete vybrat, který soubor používat (nebo klidně všechny tři a rozdělit si to), ale pozor na jednu věc: jestliže byste do string.tbl zadali nový string key "hax", který už tam je, hra by pak neukazovala žádný nápis (leda že by byl "hax" i v expansionstring/patchstring).
Nový string
OK, tak jdeme vložit nápis pro náš nový ring. Budeme používat String.tbl.

Doporučoval bych vám, abyste string keye pro vaše nové unikáty pojmenovávali ve stylu "ui-jméno" (např. ui-Big Crusher - ui jako unique item), budete pak mít jistotu, že ještě takový string key neexistuje. Našemu ringu dejte v uniqueitems.txt "name" třeba "ui-first-ring".
Otevřete si v AFJ Tbl Edit string.tbl (v d2data.mpq). Klikněte na to plus (při nájezdu myší se ukáže "Add key"). Ujistěte se, že je zakšrtnuto Append to End a napište "ui-first-ring". V pravé části programu teď napište název věci. Já budu mít třeba "d2lod-mody.wz.cz" :-).
Testování prstenu
Náš nový prsten má teď už i nápis, ale ještě potřebujeme způsob, jak otestovat, že skutečně funguje. Jsou 2 způsoby, jak se o tom přesvědčit docela rychle: za 1) nechat si ho vypadnout z quill rata, nebo za 2) nechat ho vyrobit v horadrické kostce (což je ještě lehčí). Podíváme se teď na ten druhý způsob.
Z patch_d2.mpq si vytáhněte cubemain.txt. Pravé myšítko > row operations > add rows > 1.
Pole description je jen stručný popis receptu, napište tam třeba "test recept". Enabled=1 (aby byl recept akrivní), version=100 (že půjde jen v LODu). "numinputs" je počet ingrediencí, dáme si jen jednu. Do input1 už se píše 1. věc potřebná k vytvoření věci. Sem se zadává kód věci z "code" sloupce v misc.txt (nebo "name" z uniqueitems.txt; tam name slouží zároveň jako kód věci i string key). Napište "key" (BEZ uvozovek). A v output1 bude to, co má vzniknout, tedy "ui-first-ring" (opět raději bez uvozovek). Nakonec už jen 0 v "eol". Jde se testovat.

UniqueItems.txt a CubeMain.txt nahrajte do své Data\global\excel. String.tbl dejte do složky data\local\lng\eng (tak, jak to bylo v mpq). Vyšlete nějaký char a v kostce transumutujte obyčejný klíč. Měl by vám vylézt váš nový ring.

Autor: Ass

Re: Vytvoření nové unikátní věci

Napsal: 03.10.2009, 08:18 hod.
od Lykantrop
Ještě bych doplnil, že pro ty, kteří toto budou zkoušet s novou postavu je vhodné, aby do dalšího políčka v charstats.txt přidali do itemx "key" a do itemx count "1". Jinak si nebudete moct za co koupit klíč a nevyzkoušíte si recept;)

Re: Vytvoření nové unikátní věci

Napsal: 03.10.2009, 09:34 hod.
od negris
neni problem snizit v misc cenu klice na 1zlatak a pak akorat prodat treba zbran :D

Re: Vytvoření nové unikátní věci

Napsal: 03.10.2009, 09:44 hod.
od Lykantrop
To je taky možnost ;)...

Re: Vytvoření nové unikátní věci

Napsal: 26.06.2012, 17:25 hod.
od Joko
Mám malý problém nemohu najít ten soubot patchstring.tbl

Re: Vytvoření nové unikátní věci

Napsal: 26.06.2012, 17:46 hod.
od ZOMB
použij na to program MPQView, otevři soubor patch_d2.mpq, cesta data\local\lng\eng\Patchstring.tbl
jestli s tím budeš mít pořád problém, můžu ten soubor někam postnout, nebo napiš PM, rád ti s čímkoliv poradím ;)