Jump to content

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


Guest Diegtiariow

Recommended Posts

Guest Diegtiariow

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/

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.