Skocz do zawartości

Wydajemy quest GG po wejściu do określonej strefy


Rekomendowane odpowiedzi

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/

  • Ważne 2
Odnośnik do komentarza
Udostępnij na innych stronach

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.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.