Pokračování MagiePotřeboval jsem se nějakým elegantním způsobem dostat k možnosti učit se kouzla Magie temnoty a podívat se i na bonusy dovednosti Válečnictví, které se chovají taktéž jako kouzla. Jenomže v družině jsem neměl nikoho, kdo by to dokázal. Měl jsem proto dvě možnosti, buďto si sehnat save s patřičnými povoláními (případně hru rozehrát znovu s nimi), nebo to zkusit vyřešit předefinováním chování kouzel vs dovednosti. Asi nemusím dodávat, že jsem se rozhodl pro druhou možnost
.
Rozhodně nejsem první, kdo se zkoumáním datových souborů hry zabývá a na oficiálním fóru jsem našel odkaz na Wiki jedné skupinky, kde byla popsána jednoduchá úprava bez známých vedlejších efektů. Když jsem seděl nad svým problémem, tak jsem si na to vzpomněl a rozhodl se zkusit podobný postup aplikovat i na bonusy Válečnictví, což představuje o stupeň více závislostí. Začnu ovšem od toho jednoduššího.
V principu se nejedná o nic převratného, opět platí, že i jednoduchý zásah může mít značný vliv. Vezmu jako příklad kouzlo Jiskry. V souboru
CharacterSpellsStaticData.csv najdeme:
22,SPELL_AIR_SPARKS,SPELL_AIR_SPARKS_DESCRIPTION,
NONE,NONE,NONE,
SKILL_AIR_MAGIC,
NOVICE,SPL_air_Sparks,"AIR,10,20",1,ALL_ADJACENT_MONSTERS,0,FX/Spark s,15,350,NONE
Podstatný je pro nás modře zvýrazněný klíč
SKILL_AIR_MAGIC, který definuje příslušnost kouzla ke konkrétní škole magie. Pokud ho změním např. na
SKILL_FIRE_MAGIC, bude se kouzlo Jiskry schopné naučit postava s patřičnou úrovní (NOVICE = normální) dovednosti
Magie ohně. Kouzlo tak úplně vypadne ze školy Magie vzduchu.
Samozřejmě by šlo také pomocí nového StaticID kouzlo naklonovat a obě ID by se lišily akorát školou magie. Jen byste narazili na problém, že by kouzlo nebylo ve hře normálně dostupné - nenabízel by ho např. žádný učitel kouzel (pokud byste kouzlo nenadefinovaly rovnou jako bonus k odemčení školy magie). V takovém případě totiž musíte sáhnout i do souboru
SpellOffers.csv, kde některému z učitelů doplníte do seznamu SaticID svého "nového" kouzla. Jak vidno, úprava jako taková je celkem triviální, ale zbytek kolem už je komplikovanější
Poznámka: Teď si uvědomuju, že jsem celou dobu zamlčel jedno upozornění. Mě to přišlo jako samozřejmost, ale pro ty z vás, kdo se v databázích a spol. moc neorientují - "
Každý datový soubor smí mít jen jedno unikátní StaticID!" Nelze mít vedle sebe dvě stejné hodnoty, protože by je hra nedokázala od sebe rozlišit a vedlo by to k problémům. Řádky, které začínají znakem
# se berou jako komentáře a hra je nenačítá.
Přemapování VálečnictvíPokud si budeme chtít troufnout i na takovou změnu, jako je přemapování bonusů Válečnictví na jinou dovednost, třeba právě jinou školu magie, pak musíme v první řadě předefinovat příslušnost všech bonusů do nově vybrané školy. Jedná se o následující položky ze souboru
CharacterSpellsStaticData.csv:
71,WARFARE_CHALLENGE,WARFARE_CHALLENGE_DESCRIPTION,
NONE,NONE,PROVOKE,
SKILL_WARFARE,
NOVICE,SPL_warfare_Challenge,,1,SINGLE_MONSTER,0,FX/NoEffect,5,0,NONE
72,WARFARE_SKULL_CRACK,WARFARE_SKULL_CRACK_DESCRIPTION,NONE,NONE,MEMORYGAP,
SKILL_WARFARE,EXPERT,
SPL_warfare_SkullCrack,,1,SINGLE_MONSTER,0,FX/NoEffect,10,0,NONE
73,WARFARE_UNSTOPPABLE_ASSAULT,WARFARE_UNSTOPPABLE_ASSAULT_DESCRIPTION,NONE,NONE,NONE ,
SKILL_WARFARE,EXPERT,SPL_warfare_UnstoppableAssault,,1,SINGLE_MONSTER,0,FX/NoEffect, 10,0,NONE
74,WARFARE_INTERCEPT,WARFARE_INTERCEPT_DESCRIPTION,NONE,NONE,NONE,
SKILL_WARFARE,MASTER,SPL_warfare_Intercept,,1,SINGLE_PARTY_MEMBER,0,FX/NoEffect,15,0 ,NONE
75,WARFARE_FURIOUS_BLOW,WARFARE_FURIOUS_BLOW_DESCRIPTION,NONE,NONE,NONE,
SKILL_WARFARE,MASTER,SPL_warfare_FuriousBlow,,1,SINGLE_MONSTER,0,FX/NoEffect,0,0,NON E
76,WARFARE_TAUNT,WARFARE_TAUNT_DESCRIPTION,NONE,NONE,PROVOKE,
SKILL_WARFARE,GRAND_MASTER,SPL_warfare_Taunt,,1,ALL_MONSTERS,0,FX/NoEffect,45,0,NONE
77,WARFARE_FLAWLESS_ASSAULT,WARFARE_FLAWLESS_ASSAULT_DESCRIPTION,NONE,NONE,NONE,
SKILL_WARFARE,GRAND_MASTER,SPL_warfare_FlawlessAssault,,1,SINGLE_MONSTER,0,FX/NoEffe ct,25,0,NONE90,WARFARE_SHATTER,WARFARE_SHATTER_DESCRIPTION,NONE,NONE,SUNDERING,
SKILL_WARFARE,NOVICE,SPL_warfare_Shatter,,1,SINGLE_MONSTER,0,FX/NoEffect,5,0,NONE
kde všechny klíče
SKILL_WARFARE zaměníme např. za klíč
SKILL_LIGHT_MAGIC. Tím určíme příslušnost těchto bonusů k Magii světla. Nyní už stačí jen provést přemapování hodnot Tier1Effects až Tier4Effects v souboru
Skills.csv:
originální položky Válečnictví a Magie světla -
11,SKILL_NAME_WARFARE,SKILL_DESC_WARFARE,SPL_skill_misc_Warfare,
"135,136,172","137,138","139,140","141,142",0,MISC
23,SKILL_NAME_LIGHT_MAGIC,SKILL_DESC_LIGHT_MAGIC,SPL_skill_magic_Light,
"53,164",54,55,"110,56",1,MAGIC
Prostě jen vezmeme zeleně zvýrazněnou část a přepíšeme s ní tu modře zvýrazněnou. Tím hře řekneme, že k dovednosti Magie světla se vážnou válečnické bonusy
23,SKILL_NAME_LIGHT_MAGIC,SKILL_DESC_LIGHT_MAGIC,SPL_skill_magic_Light,
"135,136,172","137,138","139,140","141,142",1,MAGIC
... tedy následující řádky ze souboru
SkillEffects.csv se přiřadí k Magii světla:
135,SKILL_EFFECT_WARFARE_MANA,SKILL_EFFECT_WARFARE_CURRENT_MANA,
FALSE,TRUE,NONE,INCR EASE_MAXIMUM_MANA,2,PER_SKILL_LEVEL
136,SKILL_EFFECT_WARFARE_LEARN_CHALLENGE,,FALSE,TRUE,NONE,LEARN_SPELL,
71,NONE
137,SKILL_EFFECT_WARFARE_LEARN_SKULL_CRACK,,FALSE,TRUE,NONE,LEARN_SPELL,
72,NONE
138,SKILL_EFFECT_WARFARE_LEARN_UNSTOPPABLE_ASSAULT,,FALSE,TRUE,NONE,LEARN_SPELL,
73,NONE
139,SKILL_EFFECT_WARFARE_LEARN_INTERCEPT,,FALSE,TRUE,NONE,LEARN_SPELL,
74,NONE
140,SKILL_EFFECT_WARFARE_LEARN_FURIOUS_BLOW,,FALSE,TRUE,NONE,LEARN_SPELL,
75,NONE
141,SKILL_EFFECT_WARFARE_LEARN_TAUNT,,FALSE,TRUE,NONE,LEARN_SPELL,
76,NONE
142,SKILL_EFFECT_WARFARE_LEARN_FLAWLESS_ASSAULT,,FALSE,TRUE,NONE,LEARN_SPELL,
77,NONE
172,SKILL_EFFECT_WARFARE_LEARN_SHATTER,,FALSE,TRUE,NONE,LEARN_SPELL,
90,NONE
Červeně jsou zvýrazněny StaticID pro svázání s konkrétním bonusem ze souboru
CharacterSpellsStaticData.csv. Pokud bychom bývali nepředefinovali dovednosti (školy magie) u jednotlivých bonusů v
CharacterSpellsStaticData.csv, hra by nám sice pod Magií světla hlásila navázané bonusy, ale postava by je nedokázala odemknout, protože by nesouhlasila škola magie! (Prostě bychom na to neměli odbornost.) Ovšem takhle nám přiřazení bonusů k úrovni dovednosti Magie světla bude fungovat v pořádku. Např. odemčením Magie světla se postava automaticky naučí bonusy Výzva (StaticID
71) a Roztříštění (StaticID
90).
Edit: Samozřejmě nemusíte kvůli tomu hned rušit původní definici Magie světla, klidně je možné ji nechat v základu stejnou a jen ji o bonusy doplnit, např.
23,SKILL_NAME_LIGHT_MAGIC,SKILL_DESC_LIGHT_MAGIC,SPL_skill_magic_Light,
"53,164,
136,172","54,
137,138","55,
139,140","110,56,
141,142",1,MAGIC
zachová původní koncept, ale za každou úroveň postava ještě získá
2 válečnické bonusy. Samozřejmě stále platí, že všechny načítané válečnické bonusy musí být předefinované pro Magii světla.
Předefinování defaultního kouzlaPodobně funguje i provázání školy magie s defaultním kouzlem. Např. pro Magii vody najdeme ve
Skills.csv záznam:
20,SKILL_NAME_WATER_MAGIC,SKILL_DESC_WATER_MAGIC,SPL_skill_magic_Water,
"41,153",42,43,"107,44",1,MAGIC
Zajímá nás v principu jen
Tier1Effects, kde podle něj v souboru
SkillEffects.csv najdeme řádek, který defijuje defaultní kouzlo:
153,SKILL_EFFECT_WATER_LEARN_SPELL_4,,FALSE,TRUE,NONE,
LEARN_SPELL,34,NONE
... 34 je StaticID pro kouzlo Ledový šíp (
CharacterSpellsStaticData.csv).
Pokud ho budeme chtít jen zaměnit např. za defaultní kouzlo Magie temnoty (Stínový plášť), pak jen změníme propojení v Tier1Effects, kde hodnotu 153 zaměníme za 168:
20,SKILL_NAME_WATER_MAGIC,SKILL_DESC_WATER_MAGIC,SPL_skill_magic_Water,
"41,168",42,43,"107,44",1,MAGIC
Ovšem aby to fungovalo, musíme zároveň u kouzla Stínový plášť změnit dovednost z Magie temnoty na Magii vody. Anebo to prostě celé provázat přes nové definice ID.