Jump to content

Tworzenie zadań


The Witcher
 Share

Recommended Posts

Autor: Barin

Są dwa rodzaje zadań w stalkerze: takie które można otrzymać tylko poprzez dialog (zabij kogoś, znajdź artefakt/broń, obroń stalkerów itd i wróć po nagrodę) oraz takie, które kontrolowane są przez infoportion (wszystkie zadania typu storyline są tego typu).

Opiszę pierwszy typ zadań, ponieważ z drugim typem jest znaczenie więcej roboty (jeśli ktoś na prawde będzie chciał to mogę również opisać drugi sposó:).

Zadania pierwszego typu dotyczą właściwie tylko trzech plików:

- config\text\eng\stable_task_manager.xml

zawiera tytuły i opisy zadań

- scripts\task_manager.script

skrypt, który daje zadanie, sprawdza czy zadanie zostało wykonane, daje nagrode itd. Generalnie jeśli nie macie jakiegoś ważnego powodu to nie musicie tego skryptu edytować

- config\misc\task_manager.ltx

jest to plik zawierający definicje zadań, myśle że najprościej będzie jeśli omówię to na przykładzie:

[barmen_kill_stalker_3]
type = kill_stalker
community = actor
init_condition = {=actor_on_level(l10_radar) +yan_kill_brain_done}
need_return = false
text = barmen_kill_stalker_3_text
description = barmen_kill_stalker_3_descr
parent = barman
target = rad_monolith_master
reward_money = 10000
reward_reputation = +200
reward_rank = 20
time = 86400

type to typ zadania, może to być: przynieś artefakt (type = artefact), znajdź przedmiot/broń (type = find_item), przynieś fragment ciała jakiegoś mutanta (type = monster_part), zabij stalkera (type = kill_stalker), obroń obóz stalkerów (type = defend_lager), zabij stalkerów (type = eliminate_lager), storyline

community = actor - jako wartość zawsze jest actor, co oznacza, że to właśnie gracz powinien wykonać to zadanie (kiedyś w stalkerze zadania mogły być wykonywane również przez stalkerów - np. stalker przychodzi to Sidorovitcha i bierze zadanie żeby znaleźć artefakt, szuka, znajduje i odnosi do Sida - szkodza że to wycieli z gry :lol:

init_condition - niektóre zadania są typu "random" (czyli takie które dostajesz co jakiś czas, jak na przykład to od Woronina żeby zabić zombi w Jantarze); jeśli zadanie ma być typu "random" to wtedy w definicji zadania musi pojawić się taka właśnie linijka. Po prawej stronie znaku = jest warunek, który musi być spełniony żebyś dostał zadanie. W tym przypadku musisz znajdować się na mapie radar (red forest) i musisz mieć infoportion yan_kill_brain_done (które dostajesz gdy wyłączysz mózg w x16). Jeśli zadanie ma być dostępne przez dialog (czyli nie "random") to ta linijka nie powinna się znaleźć w definicji zadania

need_return = false - określa czy musisz wrócić do osoby która dała Ci to zadanie. Jako domyślne jest need_return = true czyli za każdym razem musisz wrócić po nagrode. Jeśli nie chcesz zmuszać gracza do powrotu do osoby która zleciła zadanie to umieszczasz w definicji zadania need_return = false (ale w takim przypadku gracz nie otrzyma nagrody, czyli zrobi zadanie za friko)

text = barmen_kill_stalker_3_text - określna nazwe tekstu wyświetlanego jako opis zadania (config\text\eng\stable_task_manager.xml)

description = barmen_kill_stalker_3_descr - określna nazwe tekstu wyświetlanego jako tytuł zadania (config\text\eng\stable_task_manager.xml)

parent = - osoba która zleca zadanie, oczywiście można utworzyć nowego "zleceniodawce"

parent = trader (Sidorovitch)

parent = barmen (Barkeep)

parent = ecolog (Professor Sakharov)

parent = dolg (General Voronin)

parent = freedom (Lukash)

parent = zastava_commander (Sergeant Kitsenko)

parent = wolf (Wolf)

parent = petrenko (Colonel Petrenko)

parent = hunter (Hunter)

parent = lisiy (Baldy)

parent = drunk_dolg (Brome)

parent = shustriy (Nimble)

parent = mercenary (Snitch)

target = - cel zadania; w zależności od typu zadania:

type = artefact :: target = nazwa_artefaktu

type = find_item :: target = nazwa_przedmiotu

type = monster_part :: target = nazwa_przedmiotu

type = kill_stalker :: target = nazwa_klasy_stalkera (config\gameplay\character_desc_*.xml)

type = defend_lager :: target = nazwa_smart_terrain

type = eliminate_lager :: target = nazwa_smart_terrain

reward_money = - nagroda w postaci rubli

reward_reputation = - nagroda w postaci reputacji (raczej średnio działa w stalkerze, ale dzięki temu można na przykład zostać członkiem Freedom w oryginalnej grze :))

reward_item = - lista przedmiotów, które stanowią nagrodę

reward_rank = - nagroda w postaci ranku

time = - ile czasu na wykonanie zadania (w sekundach); 1 godzina = 3600 sekund, czyli jeden dzień = 3600 x 24 = 86400 sekund

Zmienna description działa jak pewnego rodzaju link. Gra odczytująć wartość tej zmiennej szuka w pliku config\gameplay\storyline_info_taskmanager.xml tzw. artykułu. Artykuł opisuje w jaki sposób i gdzie dodać informacje do pda. Definicja wygląda następująco:

tm_find_item_4_descr

- id - jest to to samo co wpisaliście w zmiennej description w definicji zadania

-name - typ zadania (to samo co type w definicji zadania)

-article_type - typ artukułu, w tym przypadku task ponieważ jest to zadanie (dzięki temu gra będzie wiedziała że ten artykuł powinien zostać wyświetlony w sekcji pda odpowiedzialnej za zadania)

text - link do opisu zadania (config\text\eng\stable_task_manager.xml)

Link to comment
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.

Comunity