Mantis

< Прошлое обращение (0003348) Следующее обращение (0003350) >
ID Категория Критичность Воспроизводимость Дата добавления Обновлено
0003349 [S.T.A.L.K.E.R.: Тень Чернобыля] незначительный всегда 11 мая 2005 12:31 16 мая 2005 15:26
Автор Zmey Режим доступа общедоступный
Приоритет нормальный Решение исправлен Платформа
Статус закрыт OS
Прогноз нет Версия OS
ETA 19 января 2038 05:14 Подверсия продукта
Сводка 0003349: Установка персональных out-restrictor-ов
Описание Подводя итоги разговора:
- Персонаж, которому установили персональный out рестриктор, должен прекратить выполнять задания и начать произвольно перемещаться в пределах этого рестриктора.
- Персонаж, находящийся за пределами персонального out рестриктора, должен, в зависимости от расстояния (настройки сделать в ltx, чтобы и скрипты могли их использовать при выборе состояний):
1) Идти в его сторону
2) Бежать в его сторону
3) Спринт в его сторону

Шаги по воспроизведению
Дополнительная информация
Присоединенные файлы

- Связи


Нет полльзователей, отслеживающих обращение.


- Комментарии
(0003422)
Zmey
11 мая 2005 12:32

Какой тип анимации выбрать - free или danger?

Я думаю что при обычном перемещении можно использовать free, т.к. в danger он перейдет если увидит врага.
(0003423)
Stohe
11 мая 2005 12:37

Я думаю еще следует решить вопрос, когда персонаж по каким либо причинам не может дойти до места, куда у него выдано задание. Например по гейм графу не найден путь либо единственный проход загораживает in-restrictor
(0003424)
Zmey
11 мая 2005 12:41

Текущие настройки скриптового move manager-а (при возвращении на стартовую точку пути, если персонажа отвлекли):

-- Если расстояние меньше <= 10 м, идем пешком
local dist_walk = 10 -- < dist_run

-- Если расстояние <= 2500 м, то бежим
local dist_run = 2500 -- было 25, но sprint по просьбе Профа отключили

-- Иначе бежим в спринте.

-- Идти не менее трех секунд, прежде чем перейти на бег (т.н. разгон)
local walk_min_time = 3000

-- Бежать не менее двух секунд, прежде чем перейти на спринт
local run_min_time = 2000

-- Переключившись в состояние (бег, ходьба, спринт),
-- не переключаться в другое состояние 1500 ms
local keep_state_min_time = 1500
(0003425)
Zmey
11 мая 2005 12:44

Разгон нужен для того, чтобы не было казусных ситуаций когда, например, сталкер убивает своего последнего врага и в то же мгновение поспринтовал куда-то.

Инерция переключения (keep_state_min_time) нужна для того, чтобы сталкер только только разогнавшись не переходил через долю секунлы на шаг из-за того, что уже подбежал близко к цели - пусть лучше подбежит почти к самой цели и остановится.

Спринт не очень хорошо смотрелся при переключении должностей гулага (например охранник с вышки решает пойти на ворота, т.к. они далеко, он начинал в спринте бежать, разнося физику), поэтому его зарубили. Но при возвращении в рестриктор можно спринт вернуть, там я думаю с ним проблем не будет.
(0003426)
Dima
11 мая 2005 12:55

значит так.

идти/бежать к доступной позиции вы можете сделать сами, вставив action с соответсвующим precondition перед alife_planner-ом для _всех_ персонажей

а с графом - да, буду решать, но надо подумать, как бы попроще и поэффективнее
(0003427)
Stohe
11 мая 2005 12:57

Дима, а есть ли механизм проверки - стоит ли у персонажа локальный АУТ рестриктор? Мы можем просить только npc:out_restrictions(), и оно вернет все рестрикторы, и дефолтные и недефолтные.
(0003432)
Dima
11 мая 2005 16:29

сделано :

base_in_restrictions()
base_out_restrictions()

- История
Дата изменения Имя пользователя Поле Изменение
11 мая 2005 12:31 Zmey Новое обращение
11 мая 2005 12:32 Zmey Комментарий добавлен: 3422
11 мая 2005 12:37 Stohe Комментарий добавлен: 3423
11 мая 2005 12:41 Zmey Комментарий добавлен: 3424
11 мая 2005 12:44 Zmey Комментарий добавлен: 3425
11 мая 2005 12:55 Dima Комментарий добавлен: 3426
11 мая 2005 12:57 Stohe Комментарий добавлен: 3427
11 мая 2005 16:29 Dima Комментарий добавлен: 3432
11 мая 2005 16:29 Dima Статус назначен => признан
11 мая 2005 16:29 Dima Описание обновлено
16 мая 2005 15:26 Dima Статус признан => решен
16 мая 2005 15:26 Dima Решение открыт => исправлен