Gość Diegtiariow Opublikowano 3 Maja 2023 Zgłoś Udostępnij Opublikowano 3 Maja 2023 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/ Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.