Guest Diegtiariow Posted September 29, 2023 Report Share Posted September 29, 2023 NAZWA: Wydajemy quest GG po wejściu do określonej strefy AUTOR: LaRento WSTĘP: Spoiler Często gracze chcą wydać misję lub ukończyć swoje mini-zadania, lub nawet siebie po wejściu do jakiegoś miejsca. Ale niewiele osób wie o czymś takim jak Space Restryktor. Jest to specyficzny obiekt, który po wejściu do strefy wydaje infoportion, wywołuje funkcje ze skryptów. Można to zrobić również z opóźnieniem czasowym. OPIS DZIAŁAŃ: Spoiler 1. Rozpakowujemy all.spawn i otwieramy alife_lokacja.ltx. Zapisujemy tam następującą sekcję Space Restryktora: [20000] ; numer sekcji ; cse_abstract properties section_name = space_restrictor ; typ sekcji spawnu - space restryktor name = quest_start ; nazwa sekcji position = 27.9391098022461,-11.7167835235596,-288.380462646484 ; współrzędne miejsce, gdzie zostanie wydany quest direction = -0.000350999995134771,-0.0109850000590086,0.0319279991090298 ; cse_alife_object properties game_vertex_id = 1229 ; game vertex tego miejsca distance = 0 level_vertex_id = 72763 ; level vertex tego miejsca object_flags = 0xffffff3e custom_data = <<END [logic] ; logika(można określić bezpośrednio w sekcji) active = sr_idle@one ; wskazanie aktywnej logiki [sr_idle@one] ; ta logika on_actor_inside = nil %+quest_start% ; wydanie infoportion początku questu po wejściu do strefy (tutaj nil oznacza, że infoportion zostanie wydany jeden raz) END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 36.9949264526367 ; zasięg strefy ; cse_alife_space_restrictor properties restrictor_type = 3 2. Otwieramy info_lokacja.xml i piszemy: <info_portion id="quest_start"> ; infoportion dla restryktora <task>yan_help_quest</task>; nazwa zadania, które zostanie wydane </info_portion> W restryktorze można określić dowolny portion: początek zadania, zakończenie podzadania, zakończenie samego zadania. Wydanie zadania z opóźnieniem czasowym: Aby to zrobić wystarczy zmienić logikę: [logic] ; logika(można wskazywać od razu w sekcji) active = sr_idle@one ; wskazanie aktywnej logiki [sr_idle@one] ; ta logika on_actor_inside = sr_idle@two ; kiedy GG w zonie, logika zmienia się na sr_idle@two [sr_idle@two] on_timer = 10000 | nil %+quest_start% ; po 10 sekundach (10000 - milisekundy) zostanie wydany nasz infoportion Wywołujemy funkcję: Warto zmienić logikę i wpisać waszą funkcję w xr_effects.script: 1. Otwieramy ten skrypt i piszemy swoją funkcję. 2. Zmieniamy logikę: [logic] ; logika(można wskazywać od razu w sekcji) active = sr_idle@one ; wskazanie aktywnej logiki [sr_idle@one] ; ta logika on_actor_inside = nil %=nazwa_funkcji% Odtwarzanie dźwięku: To samo tyczy się logiki: [logic] ; logika(można wskazywać od razu w sekcji) active = sr_idle@one ; wskazanie aktywnej logiki [sr_idle@one] ; ta logika on_actor_inside = nil %=play_snd(np. character_voice\dźwięk.ogg)% ; wskazujemy folder w folderze sounds a później sam dźwięk ŹRÓDŁO: https://ap-pro.ru/forums/topic/1191-dayom-kvest-gg-pri-vhode-v-opredelyonnuyu-zonu/ 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.