Gość Diegtiariow Opublikowano 29 Września 2023 Zgłoś Udostępnij Opublikowano 29 Września 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/ 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.