Jump to content

Tworzenie typowych zadań w Zewie Prypeci [CoP]


Recommended Posts

Co-P.jpg

NAZWA: Tworzenie typowych zadań w Zewie Prypeci [CoP]
TWÓRCA: Xmk

 

Analiza systemu zadań w S.T.A.L.K.E.R. Zew Prypeci.

 

ANALIZA PARAMETRÓW:

Spoiler

icon - ikonka zadania
Przykład: icon = ui_inGame2_Put_v_pripyat

prior - priorytet zadania
Przykład: prior = 112

storyline - flaga zadania (true - fabularne, false - poboczne)
Przykład: storyline = true

title - nazwa zadania (id z xml) - jeśli bierzemy nazwę nie z xml, to w grze zostanie wyświetlone bez spacji
Przykład: title = zat_a9_way_gates_check_transport_workshop_name

descr - opis zadania (id из xml) - jeśli bierzemy nazwę nie z xml, to w grze zostanie wyświetlone bez spacji
Przykład: descr = zat_a9_way_gates_check_transport_workshop_text

target - cel na mapie (znaczek)

Przykłady:
target =zat_a2_stalker_barmen (ID NPC, na którego został postawiony znaczek)
target = {+nazwa_infoportion}zat_a2_stalker_barmen -- sprawdzanie infoportion, po którym znaczek będzie postawiona na NPC

on_init - infoportion, który "uruchamia" zadanie
Przykład: on_init = %+nazwa_infoportion%

condlist_x -- blok warunków. Możliwe wartości to complete, reversed, fail

Przykłady:
condlist_0 = {+nazwa_infoportion} complete - jeśli infoportion jest, to zadanie zostało wykonane
condlist_1 = {+nazwa_infoportion} reversed - jeśli infoportion jest, to zadanie można powtórzyć
condlist_2 = {+nazwa_infoportion} fail - jeśli infoportion jest, to zadanie nie powiodło się/zostało zawalone

on_complete - działania, które są wykonywane, jeśli zadanie zostało wykonane
on_reversed - działania, które są wykonywane, jeśli zadanie nie powiodło się/zostało zawalone

Przykłady:
on_complete = %=inc_faction_goodwill_to_actor(stalker:200)% -- zwiększamy reputację u stalkerów (funkcja jest używana z xr_effect)
on_reversed = {+nazwa_infoportion} %=inc_faction_goodwill_to_actor(stalker:200)% -- zwiększamy reputację u stalkerów, tylko, jeśli jest okr. infoportion
on_complete = %+nazwa_infoportion% -- wydajemy infoportion

reward_money - nagroda pieniężna

Przykład: reward_money = 5000

 

TWORZYMY PRYMITYWNE ZADANIE:

Spoiler

Wykorzystywane pliki:

  • configs\gameplay\dialogs_zaton.xml
  • configs\gameplay\info_zaton.xml
  • configs\gameplay\character_desc_zaton.xml
  • configs\text\rus\st_ quests_zaton.xml
  • configs\misc\tm_zaton.ltx
  • scripts\dialogs_zaton.script

Tworzenie dialogu:

Otwieramy plik dialogs_zaton.xml i dodajemy przed </game_dialogs>:

<dialog id="vodka_quest_dialog">
<dont_has_info>quest_vodka_done</dont_has_info>
<dont_has_info>quest_vodka_give</dont_has_info>
<phrase_list>
<phrase id="1">
<text>Przynieś butelkę</text>
<give_info>quest_vodka_give</give_info>
<action>dialogs_zaton.give_vodka_quest</action>
</phrase>
<phrase id="0">
<text>Cześć, nie potrzeba ci wódki?</text>
<next>1</next>
</phrase>
</phrase_list>
</dialog>

<dialog id="vodka_quest_prines">
<has_info>quest_vodka_give</has_info>
<precondition>dialogs_zaton.is_has_vodka_borode</precondition>
<phrase_list>
<phrase id="1">
<text>Dzięki, stary.</text>
<give_info>quest_vodka_done</give_info>
</phrase>
<phrase id="0">
<has_info>quest_has_vodka</has_info>
<text>Trzymaj.</text>
<action>dialogs_zaton.transfer_vodka_to_boroda</action>
<next>1</next>
</phrase>
</phrase_list>
</dialog>

 

Następnie dodajemy nasze dialogi Brodaczowi:

Otwieramy plik character_desc_zaton.xml i szukamy linijki <actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog>. Pod nią piszemy:

<actor_dialog>vodka_quest_dialog</actor_dialog>
<actor_dialog>vodka_quest_prines</actor_dialog>

Zapisujemy.

Infoportion'y i skryptowe funkcje:

Otwieramy plik info_zaton.xml i dodajemy przed </game_information_portions>:

<info_portion id="quest_vodka_give"></info_portion>
<info_portion id="quest_has_vodka"></info_portion>
<info_portion id="quest_vodka_done"></info_portion>

Otwieramy plik dialogs_zaton.script i na początku dopisujemy:

function give_vodka_quest()
task_manager.get_task_manager():give_task("quest_vodka_give")
end
function is_has_vodka_borode()
if db.actor:object("vodka") then
return true
end
return false
end
function transfer_vodka_to_boroda(first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "vodka")
end

Zapisujemy.

Samo zadanie:

Otwieramy plik tm_zaton.ltx i na końcu piszemy:

[quest_vodka_give]
icon = ui_inGame2_Put_v_pripyat
prior = 2
storyline = false
title = {=actor_has_item(vodka)}vodka_barmen_prinesti_name, vodka_barmen_naiti_name
descr = vodka_barmen_descr
target = {=actor_has_item(vodka)}zat_a2_stalker_barmen
condlist_0 = {+quest_vodka_done} complete

Otwieramy plik st_quests_zaton.xml i dodajemy po <string_table>

<string id="vodka_barmen_naiti_name">
<text>Znajdź wódkę dla barmana</text>
</string>
<string id="vodka_barmen_prinesti_name">
<text>Przynieś wódkę barmanowi</text>
</string>
<string id="vodka_barmen_descr">
<text>Barman w celach testowych poprosił o znalezienie i przyniesienie mu 2 butelek wódki</text>
</string>

Zapisujemy.

 

ŹRÓDŁO:

https://ap-pro.ru/forums/topic/1024-cop-sozdanie-tipovyh-kvestov-v-zove-pripyati/

  • Positive 1
  • Important 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. 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.

×
×
  • Create New...

Important Information

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

Comunity