ФРПГ На форум Мой ПДА
Меню зоны
Вход в зону
Турист



СТАЛКЕР!
Я всегда рад видеть
еще одну живую душу!
Но я нез наю кто ты?



---

Список Сталкеров
У Костра




Stalker Shadow Chernobyl
Дата: 30/07/2018
War Groups
Дата: 08/01/2017
Call of Misery
Дата: 08/01/2017
S.T.A.L.K.E.R. Unpacker 1...
Дата: 11/07/2014
Вариант Омега
Дата: 14/11/2013
Shadows of Oblivion 3: Re...
Дата: 14/11/2013
Звездочет (Дозор Зоны)
Постов: 3676 | Репутации: 1098
Квартет (Дозор Зоны)
Постов: 2937 | Репутации: 5239
Джагер (Дозор ZONE)
Постов: 2690 | Репутации: 3965
Miami_Killer (Глава группировки)
Постов: 2127 | Репутации: 973
gromgold (Создатель Зоны)
Постов: 2029 | Репутации: 10092
Street (Житель)
Постов: 1958 | Репутации: 503
Пакет (Дозор Зоны)
Постов: 1731 | Репутации: 872
ST1TCH (Дозор Зоны)
Постов: 1404 | Репутации: 507

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » База по Модостроению » Модостроение от А до Я » Синтаксис скрипта Logic (Настройка логики)
Синтаксис скрипта Logic
gromgoldДата: Четверг, 11/05/2017, 12:32:04 | Сообщение # 1
Глава ЧН [Гл.Администратор]
Группа: Создатель Зоны
Сообщений: 2029
Статус:
Пример: для того, чтобы персонажходил по пути walk1, а при приближении игрока на дистанцию 5 метров,
переключался на путь walk2 (но только при условии, что он видит игрока), нужно
написать следующее:

[logic]active = walker1

[walker1]
path_walk = walk1
path_look = look1
on_actor_dist_le = 5 | walker2

[walker2]
path_walk = walk2
path_look = look2

Выше рассмотрено безусловное
переключение секций. Перед именем секции в фигурных скобках {} можно задавать
дополнительные условия, а после имени секции - так называемые
"эффекты", которые заключить в знаки процента: %%. Эффекты будут
применены только в случае активации секции. Можно не задавать имя секции, а
задать только условия и/или эффекты. Тогда активной останется старая секция, но
условия и эффекты будут все равно обработаны. Если все условия в фигурных
скобках не выполняются, секция активирована не будет.

Пример:

on_actor_dist_le = 5 | {условие} walker2 %эффекты%

Условия могут быть следующими:

+infoportion  - требуется присутствие infoportion у actor
-infoportion  - требуется отсутствие infoportion у actor
=func  - требуется, чтобы func вернула true
!func  - требуется, чтобы func вернулся false

Эффекты могут быть следующими:

+infoportion  - в случае включения секции у actor будет
установлен infoportion
-infoportion  - в случае включения секции у actor будет
убран infoportion
=func  - в случае включения секции стартует функция
func

Несколько условия или эффектов
разделяются проблемами:

on_actor_dist_le = 5 | {+info1 -info2 +info3}
walker2 %+info4 =func%

Можно задавать сразу несколько
секций, разделенных запятыми. Порядок обхода при этом - слева направо. После
срабатывания первого из условий, обход прекращается. В примере ниже, если
установлен info1, будет включена схема walker2, иначе, если установлен info2,
будет включена схема walker3, иначе будет включен walker4:

on_actor_dist_le = 5 | {+info1} walker2,
{+info2} walker3, walker4

В описанном выше поле active
секции logic, можно также задавать условия, например:

[logic]active = {=actor_friend} walker@friendly,
walker@enemy
В логических условияхтеперь принимается ключевое слово never, которое означает, что условиеложно. Например:combat_ignore_cond = {=actor_enemy
=actor_has_suit} always, {=actor_enemy} never %...эффекты...%

Вышеприведенная конструкция
включает игнорирование боя, если у NPC враг - игрок в костюме, но отключит его,
если врагом является игрок, но без костюма, при этом сработают эффекты (%%)
секции never. Таким образом, выбор секции never равносилен отсутствию секции (несрабатыванию условия), но
эффекты в знаках процента при этом срабатывают.

Пример
работы с секцией nil. Секция nil
выводит из-под скриптовых схем персонажа, монстра или объект и отпускает его
под управление движка. Это надо если какое-либо условие выполнившись 1 раз
больше не нуждается в проверке, при этом экономятся ресурсы машины, которые на
каждом апдейте проверяют это условие.

[logic]active =
sr_idle

[sr_idle]
on_actor_inside
= nil %+esc_actor_inside%
То есть, при входе актера в
рестриктор выдается инфопоршн и рестриктор уходит в секцию nil, больше не
проверяя наличие игрока.
NB: Обратно из секции nil под скрипты
объект вернуть уже невозможно! Учитывайте это, используя
ее.

Материал взят с сайта gsc-mod.ucoz.ru
 
Форум » База по Модостроению » Модостроение от А до Я » Синтаксис скрипта Logic (Настройка логики)
  • Страница 1 из 1
  • 1
Поиск: