Dnešní díl budeme věnovat vytvoření vlastní postranní mise. Nejde o žádnou komplikovanou věc, jak by se mohlo na první pohled zdát. Pro příklad si ukážeme, jak donutit Sidoroviče k tomu, aby nám nabídnul úkol spočívající v nalezení... třeba pušky SIG SG.550.
config/misc/task_manager.ltxHned na začátku souboru si všimneme výpisu názvů úkolů. Vzhledem k tomu, že náš příklad se týká nálezu zbraně, budeme upravovat oddíl
Find Item. Názvy úkolů jdou popořadě a nesmíme proto dva úkoly pojmenovat stejně. V našem příkladu si tudíž postranní misi pojmenujeme jako
tm_find_item_2.
Srolujeme na konec souboru a dopíšeme do něj potřebnou sekci s obsahem úkolu. Příklad:
Kód:
[tm_find_item_2]
type = find_item
community = actor
text = tm_find_item_2_text
description = tm_find_item_2_descr
parent = trader
target = wpn_sig550
reward_money = 1000
reward_reputation = +5
reward_rank = 3
prior = 1
idle_time = 648000
Co ale všechny ty řádky můžou ovlivnit a k čemu jsou?
Kód:
[tm_find_item_2] - název úkolu
type = find_item - druh úkolu:
find_item - nález zbraně nebo obleku
eliminate_lager - zlikvidování nepřátel
artefact - nález artefaktu
kill_stalker - zabití konkrétního stalkera
community = actor
text = tm_find_item_2_text - nadpis úkolu, navazuje na název stringu v stable_task:manager.xml
description = tm_find_item_2_descr - popis k úkolu, platí předchozí poučka
parent = trader - zadavatel
target = wpn_sig550 - předmět k nalezení
reward_money = 1000 - odměna za splnění mise
reward_reputation = +5 - nárůst reputace za splnění mise
reward_rank = 3 - rank konkrétní odměny, netřeba měnit
prior = 1 - priorita úkolu (od jedničky až dál, systém jako ve škole - jednička je nejvyšší priorita a úkol se zobrazí jako první)
idle_time = 648000 - čas, za jak dlouho se úkol znovu objeví v nabídce zadavatele. Jedna herní hodina je šest neherních minut, jeden neherní den je 86400 sekund. Hodnota 648000 tudíž bude odpovídat zhruba sedmi a půl neherním dnům.
Jakmile budeme mít z krku task_manager.ltx, změny uložíme a přejdeme k popiskům. Ty najdeme v
gamedata/config/text/cze/stable_task_manager.xml a podle toho, jak jsme si pojmenovali náš úkol, musíme pojmenovat i adekvátní stringy s textem. V našem případě to bude vypadat následovně:
Kód:
<string id="tm_find_item_2">
<text>Najdi SIG SG.550</text>
</string>
<string id="tm_find_item_2_descr">
<text>Je potřeba získat pušku SIG SG.550</text>
</string>
<string id="tm_find_item_2_text">
<text>Sem si dodejte svůj vlastní popis včetně detailů - proč chce postava pušku získat, co za to hráč dostane, jak se ztratila a podobně.</text>
Popisek u stringu tm_find_item_2 se objeví v hlavní dialog nabídce u překupníka, string tm_find_item_2_descr pak v PDA po najetí na ikonku s pozicí předmětu a tm_find_item_2_text slouží k vlastnímu textu.
Změny stejně jako minule uložte. Ještě se ale neradujte, jelikož jenom po těhle dvou změnách byste se dočkali akorát tak pádu. Nejdůležitějším krokem teď je zajistit, aby hra úkol vůbec evidovala. Na to budeme potřebovat soubor
storyline_info_taskmanager.xml, který najdeme v adresáři
gamedata/config/gameplay.
V tomhle souboru najdeme seznam všech postranních úkolů podle druhu. Nejdřív je obrana táborů (
Defend Lager), likvidace táborů (
Eliminate Lager), hledání artefaktů (
Artefact), zabití konkrétních stalkerů (
Kill Stalker), pak konečně námi potřebná část s nálezem výbavy (
Find Item) a nakonec už jenom části těl mutantů (
Monster Part). Do sekce Find Item si tudíž dopíšeme následující řádky, díky nimž hra úkol rozpozná a my ho tak budeme moci splnit:
Kód:
<article id="tm_find_item_2_descr" name="find_item" article_type="task">
<text>tm_find_item_2_descr</text>
</article>
Nezapomeňte na zachování vlastních názvů úkolu, aby je hra mohla najít a vy neměli v jednu chvíli název úkolu
tm_find_item_2 a hned nato třeba
omg_najdi_pusku_a_to_hned.
Změny uložte a začněte hrát. Pokud jste dodrželi všechny instrukce, hra by měla úkol nabídnout bez větších potíží. Jenom ještě dodám, že stávající postup jde použít
jedině ve Stínu Černobylu.