Guest Diegtiariow Posted April 30, 2023 Report Share Posted April 30, 2023 NAZWA: Tworzenie zadania na zabójstwo NPC [SoC] TWÓRCA: LaRento WYMAGANE NASTĘPUJĄCE PLIKI: Spoiler - character_desc_escape.xml - npc_profile.xml - all.spawn - tasks_escape.xml - game_story_ids.ltx - dialogs_escape.xml - stable_dialogs_escape.xml - info_l01escape.xml - stable_bio_name.xml 1. TWORZENIE POSTACI: Spoiler Korzystając z przykładu, postanowiono stworzyć postać, którą musimy zabić na lokacji Kordon. Otwieramy plik character_desc_escape.xml z folderu config/gameplay. Tworzymy tam naszą sekcję postaci, pisząc to: <visual>actors\novice\green_stalker_1</visual> <supplies> [spawn] \n wpn_mp5 \n ammo_9x19_fmj = 1 \n #include "gameplay\character_food.xml" </supplies> #include "gameplay\character_criticals_5.xml" #include "gameplay\character_dialogs.xml" <start_dialog>hello_dialog</start_dialog> </specific_character> Chyba wszystko jest tutaj jasne. Poza tym po wierszu <actor_dialog>tm_wolf_reward</actor_dialog> w sekcji profilu Wilka poniżej wpisz <actor_dialog>esc_kill_danila_dialog</actor_dialog>. W ten sposób dodaliśmy dialog Wilkowi, po którym zostanie wydane zadanie. Otwieramy npc_profile.xml z tego samego folderu i piszemy na końcu: <character id="esc_danila"> <class>esc_danila</class> ; nazwa profilu <specific_character>esc_danila</specific_character> ;nazwa profilu </character> 2. SPAWNUJEMY POSTAĆ NA LOKACJI: Spoiler Rozpakuj all.spawn z folderu spawns. Pobieramy ACDC dla Shadow of Chernobyl, wrzucamy pliki, które pobraliśmy do folderu spawns. Dekompilujemy all.spawn. Po tym będzie wiele plików. W naszym przypadku otwieramy plik alife_l01_escape.ltx i wklejamy następujące elementy: [20000] ; unikalny numer sekcji ; cse_abstract properties section_name = stalker name = esc_danila ; nazwa naszej postaci position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; координаты спавна нашего персонажа direction = 0.00115116173401475,-5.07207296323031e-005,0.0440320037305355 ; cse_alife_trader_abstract properties money = 5000 character_profile = esc_danila ; profil naszej postaci, stworzonej w character_desc_escape ; cse_alife_object properties game_vertex_id = 76 distance = 9.09999942779541 level_vertex_id = 186578 object_flags = 0xffffffbb custom_data = <<END [spawner] cond = {+esc_kill_danila_quest_started} ; warunek spawnu NPC. Powinien zostać wydany ten infoportion. [logic] active = walker on_death = death ; pozwala na instalację schematu ustawienia śmierci NPC. [death] on_info = %+esc_danila_dead% ; wskazuje infoportion, który zostanie wydany po śmierci NPC i zakończy zadanie. [walker] path_walk = esc_danila_walk ; nazwa punktu ścieżki naszej postaci path_look = esc_danila_look ; nazwa punktu , gdzie nasza postać będzie patrzeć END story_id = 20000 ; story id, przyda sie dla zadania ; cse_visual properties visual_name = actors\soldier\soldier_beret_1 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 1 g_group = 1 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0x75646f6d upd:creature_flags = 0x6c upd:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 ; koordynaty, obowiązkowo pisać je tutaj upd:o_model = 0 upd:o_torso = -5.07207296323031e-005,0.00115116173401475,0 upd:g_team = 0 upd:g_squad = 1 upd:g_group = 1 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 0,1,1,1,2 predicate4 = 2,0,1,0 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties Pozostaje przypisać ścieżkę do naszej postaci. Damy mu jeden punkt, aby nie odszedł daleko i abyśmy nie szukał go po lokacji. Aby to zrobić, otwieramy plik way_l01_escape.ltx w tym samym folderze. Piszemy tam na końcu: [esc_danila_walk] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = -81.8000030517578,-4.98000001907349,-72.7399978637695 p0:game_vertex_id = 76 p0:level_vertex_id = 186578 [esc_danila_look] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = -79.6699981689453,-5.05999994277954,-72.8099975585938 p0:game_vertex_id = 76 p0:level_vertex_id = 188614 Gotowe, tylko pamiętaj o skompilowaniu nowego all.spawn. Teraz nasza postać stanie w samochodzie, w którym leżał ranny Tolik. 3. TWORZYMY SAMO ZADANIE: Spoiler Otwieramy plik task_escape.xml z config/gameplay i dodajemy naszą sekcję zadania: <game_task id="esc_kill_danila_quest"> ; ID-nazwa zadania <title>Zabić stalkera</title> <objective> <text>Zabić stalkera</text> <icon>ui_iconsTotal_esc_dinamit_to_volk</icon> <infoportion_complete>esc_danila_dead</infoportion_complete> ; wskazujemy infoportion, przy którym zadanie jest zaliczane jako wykonane. </objective> <objective> <text>Zabić Daniłę</text> <map_location_type hint="esc_danila">blue_location</map_location_type> ; nazwa znacznika naszego NPC na mapie <object_story_id>esc_danila</object_story_id> ; znacznik naszego NPC na mapie <infoportion_complete>esc_danila_dead</infoportion_complete> ; wskazujemy infoportion, przy którym zadanie jest zaliczane jako wykonane. </objective> </game_task> 4. TWORZENIE DIALOGU: Spoiler Tworzymy dialog z Wilkiem, po którym zostanie wydane zadanie. Otwieramy dialogs_escape.xml z tego samego folderu i piszemy poniżej: <dialog id="esc_kill_danila_dialog"> ; ID-nazwa dialogu <dont_has_info>esc_kill_danila_quest_started</dont_has_info> ; wskazujemy infoportion, przy którego wydaniu dialog więcej się nie pojawi. <phrase_list> <phrase id="0"> <text>esc_danila_dialog_1</text> <next>1</next> </phrase> <phrase id="1"> <text>esc_danila_dialog_2</text> <next>2</next> </phrase> <phrase id="2"> <text>esc_danila_dialog_3</text> <give_info>esc_kill_danila_quest_started</give_info> ; wydanie infoportion, zawierającego zadanie; również gra rolę, aby dialog więcej się nie powtórzył. </phrase> </phrase_list> </dialog> 5. REJESTRACJA TEKSTU DIALOGU: Spoiler Otwieramy plik stable_dialogs_escape.xml i piszemy: <string id="esc_danila_dialog_1"> <text>Jest dodatkowa praca?</text> </string> <string id="esc_danila_dialog_2"> <text>Tak, pojawił się zdrajca, nazywa się Daniła. Zabij go, miejsce pobytu prześlę.</text> </string> <string id="esc_danila_dialog_3"> <text>Dobrze.</text> </string> Gotowe, teraz dialog jest zakończony. 6. TWORZYMY INFOPORTION: Spoiler Otwieramy plik info_l01_escape.xml w tym samym folderze i dodajemy następujące elementy: <info_portion id="esc_kill_danila_quest_started"> ; infoportion, odpowiadający za wydanie zadania. <task>esc_kill_danila_quest</task> ; wskazujemy ID-nazwę zadania. </info_portion> <info_portion id="esc_danila_dead"></info_portion> ; infoportion o śmierci naszego NPC. <info_portion id="esc_kill_danila_quest_complete"></info_portion> ; infoportion o wykonaniu zadania. 7. TWORZYMY ZNACZEK NASZEGO NPC NA MAPIE: Spoiler Otwieramy plik stable_bio_name.xml z folderu config/text/rus i piszemy tam na końcu: <string id="esc_danila"> <text>Daniła</text> </string> Utwórzmy Game Story ID. W tym celu otwieramy plik game_story_ids.ltx z folderu config i piszemy na końcu: 20000 = "esc_danila" Idziemy więc do Wilka, rozmawiamy, dostajemy zadanie, zabijamy postać i git. ŹRÓDŁO: https://ap-pro.ru/forums/topic/1034-soc-sozdanie-kvesta-na-ubiystvo-npc/ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.