Повернутися на сторінку уроків

Стаття: Функції рестріктора actor_in_zone

Функції рестриктора actor_in_zone

Приклад1

[logic]
active = sr_idle@urok01

[sr_idle@urok01]
on_info = {=actor_in_zone(zat_urok_restr)} sr_idle@nill %+actor_in_restr_info%

[sr_idle@nill]

В данній фунції sr_idle@urok01 коли ГГ (він же актор) зайде в зону actor_in_zone спейс рестріктора zat_urok_restr ми перейдими в завершаючу фенкцію sr_idle@nill, це для того щоб не була зациклена логіка. І отримаємо інфопоршень actor_in_restr_info


[logic]
active = sr_idle@urok01

[sr_idle@urok01]
on_info = {=actor_in_zone(zat_urok_restr)} sr_idle@nill %give_task(urok_test_tm)%

[sr_idle@nill]

В данній фунції sr_idle@urok01 коли ГГ (він же актор) зайде в зону actor_in_zone спейс рестріктора zat_urok_restr ми перейдими в завершаючу фенкцію sr_idle@nill, це для того щоб не була зациклина логіка. Де give_task це функція видачі завдання і urok_test_tm це назва нашого квеста в таск менеджжері

[logic]
active = sr_idle@urok01

[sr_idle@urok01]
on_info = {=actor_in_zone(zat_urok_restr)} sr_idle@nill %=send_tip(st_zat_test_messg)%

[sr_idle@nill]

В данній фунції sr_idle@urok01 коли ГГ (він же актор) зайде в зону actor_in_zone спейс рестріктора zat_urok_restr ми перейдими в завершаючу фенкцію sr_idle@nill, це для того щоб не була зациклина логіка. Де send_tip це функція видачі повідомлення і st_zat_test_messg це текст повідомлення яке буде виводитись на екран

[logic]

active = sr_idle@urok01

on_info = {=actor_in_zone(zat_urok_restr)} -actor_in_restr_info !has_active_tutorial} sr_idle@urok02 %=run_tutorial(zat_urok_run_tutor)%
on_info2 = {+actor_in_restr_info} sr_idle@nill

[sr_idle@urok02]
on_info = {!actor_in_zone(zat_urok_restr)} sr_idle@urok01 %=stop_tutorial%
on_info2 = {!has_active_tutorial} sr_idle@urok01

[sr_idle@nill]

В данній фунції sr_idle@urok01 коли ГГ (він же актор) зайде в зону actor_in_zone спейс рестріктора zat_urok_restr і у нас відсутній інфопоршень -actor_in_restr_info а також не активований туторіал !has_active_tutorial (знак ! означає протележність тексту, тобто ми маємо, коли перед функцією стоїть ! значить ми не маємо). Далі при воконуванні всіх цих умов ми переходим функцію sr_idle@urok02 і запускаємо на екрані туторіал =run_tutorial, назва туторіалу (zat_urok_run_tutor) як приклад туторіал ми бачили біля упавших гелікоптерів на затоні, Юпітеру.

on_info2 = {+actor_in_restr_info} sr_idle@nill
якщо ГГ (він же актор) має інфопоршень actor_in_restr_info то ми переходимо в останню фунцію [sr_idle@nill] для того щоб логіка більше спрацьовувала

в [sr_idle@urok02] ми превіряємо когли ГГ (він же актор) вийде із зони !actor_in_zone спейс рестріктора zat_urok_restr(знак ! це протилежність текста) ми повертаємося в першу функцію sr_idle@urok01 до виконання і отримання інфопоршня і переходу в нілл функцію
=stop_tutorial ця функція означає вимкнути туторіал на екрані
on_info2 = {!has_active_tutorial} sr_idle@urok01 так як туторіал не активний ми також повертаємося в [sr_idle@urok01] до виконання і отримання інфопоршня і переходу в нілл функцію

[logic]
active = sr_idle@urok01

[sr_idle@urok01]
on_info = {=actor_in_zone(zat_urok_restr)} sr_idle@nill %=create_squad (zat_urok_test:zat_test_smart)% %=remove_squad (zat_urok_test)%

[sr_idle@nill]

В данній фунції sr_idle@urok01 коли ГГ (він же актор) зайде в зону actor_in_zone спейс рестріктора zat_urok_restr ми перейдими в завершаючу фенкцію sr_idle@nill, це для того щоб не була зациклина логіка.
=create_squad фунція яка спавне сквад, remove_squad фунція прибирає сквад, zat_urok_test назва нашого сквада, zat_test_smart назва сарт терейна якому належить сквад.

[logic]
active = sr_idle@urok01

[sr_idle@urok01]
on_info = {=actor_in_zone(zat_urok_restr)} sr_idle@nill %=set_weather(sun_shafts:true)%

[sr_idle@nill]

В данній фунції sr_idle@urok01 коли ГГ (він же актор) зайде в зону actor_in_zone спейс рестріктора zat_urok_restr ми перейдими в завершаючу фенкцію sr_idle@nill, це для того щоб не була зациклина логіка.
=set_weather встановити погодний ефект. sun_shaftsназва погодного ефекта.