Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
− | ==Именование точек пути== | + | = Система расстановки путей = |
− | Имя вейпоинта должно иметь следующий вид:<br />
| + | В точках путей можно задавать флаги, изменяющие поведение персонажа. Флаги задаются прямо в имени waypoint-а, например, для точки с именем '''wp00''':<br /> |
− | <code>имя|поле=значение|поле=значение|…</code><br />
| + | '''wp00|flag1|flag2''' |
− | Первое слово является именем и игнорируется парсером. Остальные фразы, разделенные символом <code>|</code> будут обработаны.
| |
| | | |
− | Примеры имён:<br />
| |
− | <code>wp00|a=hide</code><br />
| |
− | <code>wp01</code><br />
| |
− | <code>wp02|a=hide|s=weather</code><br />
| |
− | и т.д.
| |
| | | |
− | Если задано имя поля, но не задано значение, то парсер автоматически подставит true.<br />
| + | == Флаги точек пути path_walk == |
− | Т.е. не надо писать <code>wp0|r=true|d=true</code>, достаточно просто написать <code>wp0|r|d</code>
| + | * '''a=state'''<br /> Выбирает состояние тела при перемещении (только из раздела "Ходячие состояния"). Список состояний можно найти в <code>gamedata\scripts\state_lib.script</code> |
| + | * '''p=percent'''<br /> Вероятность остановиться в точке в процентах (0-100). По умолчанию 100, т.е. сталкер никогда не проходит мимо точек остановки. |
| + | * '''sig=name'''<br /> Установить сигнал с именем '''name''' сразу по прибытию в точку (до поворота) для последующей его проверки с помощью поля '''on_signal''' логической схемы. Если нужно установить сигнал после поворота – используйте соответствующий флажок пути '''path_look'''. |
| | | |
− | == Система расстановки путей ==
| |
− | Пути можно делить на два типа: '''path_walk''' и '''path_look'''. Как можно понять из названия, по первым сталкеры ходят, а во вторые смотрят при ходьбе.
| |
− |
| |
− | Как взаимодействуют между собой '''path_walk''' и '''path_look'''? Придя на точку '''path_walk''', где установлена какая-то комбинация флажков, сталкер найдёт такую же комбинацию флажков в '''path_look''' и посмотрит в эту точку. Если же ни один флажок не установлен, сталкер пойдёт дальше не останавливаясь.
| |
− |
| |
− | В точках путей можно задавать флаги, изменяющие поведение персонажа. Флаги задаются прямо в имени waypoint-а, например, для точки с именем '''wp00''':<br />
| |
− | <code>wp00|flag1|flag2</code>
| |
− |
| |
− | == Флаги точек пути path_walk ==
| |
− | <!-- работоспособность не проверена! скопировано из дорелизных доков ТЧ -->
| |
− | * '''n = 0 .. 9999'''<br />Номер точки синхронизации. Рекомендуется первой точке задавать значение '''0''', остальным – числа по возрастанию с произвольным шагом. Прийдя в точку с большим '''n''', сталкер будет ждать отстающих напарников. Примечание: сталкер дожидается опаздывающих напарников '''только''' в точках остановки (т.е. только в тех местах, где точка '''path_walk''' имеет общие флаги с одной из точек '''path_look''').<br />
| |
− | Внимание – для поддержки зацикленных маршрутов, сталкеры на точке с '''минимальным n''' дожидаются сталкеров на точке с '''максимальным n'''. Поэтому минимальное количество точек синхронизации для корректной работы схемы должно составлять 3 точки или больше!
| |
− | * '''s = имя_звуковой_схемы'''<br />Пробегая через эту точку, сталкер включит указанную звуковую схему. Звук стартует ДО начала поворота и старта анимации. Для того, чтобы звук стартовал синхронно с анимацией – задавайте его в '''path_look''' соответствующей точки, а не в '''path_walk'''. Если нужно стартовать звук одновременно с ЛЮБОЙ из анимаций в этой точке, можно воспользоваться параметром '''sa'''.
| |
− | * '''sp =''' <br />С какой вероятностью будет проигран звук (по умолчанию 100)
| |
− | *'''sa = true'''<br />Ждать начала анимации в точке, прежде чем стартовать проигрывание звука (по умолчанию false).
| |
− | *'''sc = true'''<br />Разрешить проигрывать звуки схемы неоднократно (по умолчанию false).
| |
− | *'''sf, st'''<br />Временной интервал повторения фраз из выбранной звуковой схемы в секундах (по умолчанию от 5 до 10 сек).
| |
− | *'''p = 0...100'''<br />При наличии в точке флажка, общего с одной из точек '''path_look''', задает вероятность того, что персонаж остановится в точке (по умолчанию 100).
| |
− | *'''c = true'''<br />Дальше перемещаться в присяде (по умолчанию false)
| |
− | *'''r = true'''<br />Дальше перемещаться бегом (по умолчанию false)
| |
− | *'''d = true'''<br />Перемещаться в состоянии danger (по умолчанию false)
| |
− | *'''ds = имена_диалогов'''<br />Имена диалогов, которые разрешено стартовать начиная с этой точки (разрешение действует до следующей точки). Имена задаются в виде текстовой строки, разделенной запятыми: <code>ds=bandits_talk,weather_talk</code> и т.д.
| |
− | *'''ret = число'''<br />Сразу же по прибытии в точку вызывает зарегистрированный при инициализации movement manager-а callback с этим числом в качестве второго аргумента.
| |
− | *'''rel = name,name,…'''<br />Меняет отношение других персонажей к себе. Используется вместе с параметром ret. Вызывается менеджером перемещения подобно пользовательской callback-функции, при этом в rel перечисляются через запятую персонажи, у которых нужно сменить отношение к себе, а в ret задается, какое именно отношение нужно установить: '''1''' – хорошее, '''0''' – плохое. Пример: <code>ret=0|rel=bandit1,bandit2</code> установит у бандитов плохое отношение к персонажу, который пришел в данную точку пути.
| |
− | *'''w = имя_walk_пути'''<br />Переводит схему на новый '''path_walk'''. Рекомендуется также задать новый '''path_look''' с помощью параметра '''l''', иначе текущий '''path_look''' будет сброшен. Персонаж идет на стартовую точку с режимом перемещения, заданным в точке с параметром '''w'''. Настройки функции коллбека при переключении пути сохраняются.
| |
− | *'''l = имя_look_пути'''<br />Сбросит схему на новый '''path_look'''. Задавать параметр '''l''' нужно вместе с параметром '''w''', иначе '''l''' будет проигнорирован. По умолчанию '''path_look''' при смене '''path_walk''' будет сброшен.
| |
− | <!-- далее скопировано из релизных доков ЗП вроде бы -->
| |
− | * '''a = state'''<br /> Выбирает состояние тела при перемещении (только из раздела "Ходячие состояния"). Список состояний можно найти в <code>gamedata\scripts\state_lib.script</code>
| |
− | * '''sig = name'''<br /> Установить сигнал с именем '''name''' сразу по прибытию в точку (до поворота) для последующей его проверки с помощью поля '''on_signal''' логической схемы. Если нужно установить сигнал после поворота – используйте соответствующий флажок пути '''path_look'''.
| |
| | | |
| == Флаги точек пути path_look == | | == Флаги точек пути path_look == |
− | <!-- работоспособность не проверена! скопировано из дорелизных доков ТЧ -->
| + | * '''a=state'''<br /> Выбирает состояние тела при стоянии (или сидении) на месте (из разделов "Стоячие и сидячие состояния"). Список состояний можно взять в <code>gamedata\scripts\state_lib.script</code> |
− | *'''p = 100'''<br />Вероятность, с которой персонаж посмотрит именно в эту точку. Значения '''p''' всех возможных точек суммируются, т.е. если у одной точки '''p = 100''', а у другой '''300''', то персонаж посмотрит в первую с вероятностью 25%! (т.е. 100 из 400).<br />
| + | * '''t=msec''' <br />Время в миллисекундах, которое персонаж должен смотреть в заданную точку. '''*''' — бесконечное время. Допустимы значения в диапазоне [1000, 30000], по умолчанию — 5000. Для конечных (терминальных) вершин пути '''path_walk''', у которых не более 1-й соответствующей точки '''path_look''', значение '''t''' всегда считается бесконечным и его явно задавать не нужно. |
− | Рекомендуется задавать '''p''' так, чтобы их сумма составляла 100.<br />
| + | * '''sig=name'''<br /> После поворота в точку '''path_look''' установить сигнал с именем '''name'''. |
− | По умолчанию у всех точек '''p = 100'''
| |
− | *'''nowpn = true'''<br />Если персонаж должен спрятать оружие.
| |
− | *'''c = true'''<br />Смотреть в точку в присяде (по умолчанию используется значение одноименного поля из '''path_walk''') | |
− | *'''d = true'''<br />Смотреть в точку в состоянии danger (по умолчанию используется значение одноименного поля из '''path_walk''')
| |
− | *'''att = 1 или 2'''<br />Номер атаки (основная, вспомогательная). Можно использовать вместо анимации, например: <code>a=nil|att=1</code>), а можно вместе с анимацией: <code>a=стреляем_в_потолок|att=1</code>
| |
− | *'''t = число'''<br />Время, которое персонаж будет ждать, играя анимацию или стреляя (по умолчанию 5000). Если требуется ждать бесконечно долго (например, это финальная точка пути), нужно задать '''t''' равным '''-1'''
| |
− | Примечание: если персонаж ждет синхронизации в точке, то он будет играть анимацию столько времени, сколько нужно для того, чтобы дождаться напарников, но только по прибытию всех напарников на точки засечет заданное в '''t''' время. Исключение составляет стрельба – персонаж не станет стрелять сразу по прибытию в точку, а сперва дождется напарников, а потом уже начнет стрелять в течение заданного времени.
| |
− | *'''s = имя'''<br />Звук, который персонаж разово проиграет, посмотрев в эту точку.
| |
− | *'''sp = число'''<br />С какой вероятностью будет проигран звук (по умолчанию 100)
| |
− | *'''sl = имя_прожектора'''<br />Если задано, то при повороте в указанную точку персонаж также повернёт и прожектор в неё.
| |
− | *'''ret = число'''<br />После поворота в целевую точку вызывает зарегистрированный при инициализации movement manager-а callback с числом '''ret''' в качестве второго аргумента. При этом время ожидания (поле '''t''') игнорируется, т.е. после того как callback вызовет update_movement_state, персонаж сразу же пойдёт дальше.
| |
− | <!-- далее скопировано из релизных доков ЗП вроде бы -->
| |
− | * '''a = state'''<br /> Анимация, которую проиграет персонаж, стоя или сидя на месте (из разделов "Стоячие и сидячие состояния"), по умолчанию idle. Для того, чтобы персонаж стоял в точке без анимации, задайте значение nil: <code>a=nil</code> Список состояний можно взять в <code>gamedata\scripts\state_lib.script</code>
| |
− | * '''t = msec''' <br />Время в миллисекундах, которое персонаж должен смотреть в заданную точку. '''*''' — бесконечное время. Допустимы значения в диапазоне [1000, 30000], по умолчанию — 5000. Для конечных (терминальных) вершин пути '''path_walk''', у которых не более 1-й соответствующей точки '''path_look''', значение '''t''' всегда считается бесконечным и его явно задавать не нужно. | |
− | * '''sig = name'''<br /> После поворота в точку '''path_look''' установить сигнал с именем '''name'''. | |
| * '''syn'''<br /> Наличие флажка задержит установку сигнала до тех пор, пока в точку с флажком '''syn''' не прибудут все персонажи данной '''team''' ('''team''' задается в виде текстовой строки в '''customdata'''). До тех пор, пока остальные персонажи не прибудут, ожидающей персонаж будет отыгрывать свою idle-анимацию. | | * '''syn'''<br /> Наличие флажка задержит установку сигнала до тех пор, пока в точку с флажком '''syn''' не прибудут все персонажи данной '''team''' ('''team''' задается в виде текстовой строки в '''customdata'''). До тех пор, пока остальные персонажи не прибудут, ожидающей персонаж будет отыгрывать свою idle-анимацию. |
− | * '''sigtm = signal'''<br /> Устанавливает сигнал при вызове '''time_callback'''-а '''state manager'''-ом. Соответственно, если '''t=0''', то сигнал будет установлен после отыгрывания init-анимации. Это используется, например, с анимацией press, которая состоит из двух частей: 1 — нажимаем на кнопку, 2 — опускаем руку. В пути '''path_look''' можно сделать так: <code>wp00|a=press|t=0|sigtm=pressed</code>, а затем переключить схему: <code>on_signal = pressed | другая_схема</code> | + | * '''sigtm=signal'''<br /> Устанавливает сигнал при вызове '''time_callback'''-а '''state manager'''-ом. Соответственно, если '''t=0''', то сигнал будет установлен после отыгрывания init-анимации. Это используется, например, с анимацией press, которая состоит из двух частей: 1 — нажимаем на кнопку, 2 — опускаем руку. В пути '''path_look''' можно сделать так:<br />'''wp00|a=press|t=0|sigtm=pressed'''<br />А затем переключить схему: <br />'''on_signal = pressed | другая_схема''' |
| + | |
| | | |
| == Более подробное описание путей на примере логики walker == | | == Более подробное описание путей на примере логики walker == |
Строка 132: |
Строка 85: |
| * '''a = имя_анимации''' (по умолчанию idle).<br /> Если мы напишем '''a=hide''', то персонаж сядет в состоянии '''danger''', если '''a=guard''', то встанет с оружием наизготовку и т.д. | | * '''a = имя_анимации''' (по умолчанию idle).<br /> Если мы напишем '''a=hide''', то персонаж сядет в состоянии '''danger''', если '''a=guard''', то встанет с оружием наизготовку и т.д. |
| | | |
− | Внимание: в точках пути '''path_look''' используются анимации только из раздела «Стоячие и сидячие состояния»!
| + | {| style="background-color: #fffdee;" width="100%" |
| + | |<span style="color:#172172;">'''Заметка'''</span><br /> |
| + | ---- |
| + | В точках пути '''path_look''' используются анимации только из раздела «Стоячие и сидячие состояния»! |
| + | |} |
| + | |
| | | |
− | [[Категория:Level Editor]][[Категория:A-Life]] | + | [[Категория:Level Editor]] |