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

Принятый ответ

Ну это триггерно все делается. Это система приказов.
смотреть
  1. В РО на карте: Создаешь кучу мини-областей. Все эти области лучше в массивы все загнать, то есть при инициализации. Потом будешь рандомнить число/массив.
  2. Создаешь нейтрального жителя, даешь приказ двигаться в рандомную точку (а точнее в центр рандомной области).
  3. Как только он дойдет до области. Ловим по событию "юнит вошел в область". Проверяем является ли он нейтральным, точнее его владельца. тогда двигаем поближе к барной стойке, и спиной заставляем повернуться к столу (лицом можешь подвигаться. как это см. в faq на сайте). Ты понимаешь, как только вошел в область, на юнита повешен таймер с 10 сек. Обычно на GUI вешают события с запусками таймеров, а вот на jass можно без события.
  4. После того, как событие завершилось, таймер истек. Заставляем снова гулять (те же самые действия) или отправляем домой. У каждого юнита должна быть своя отправная точка, чтобы вернулся домой (запоминаешь при создании/при выходе из дома). Если это совсем безымянный юнит, которого мы не знаем. То можно не запоминать, а отправлять в любой попавшийся дом (хотя хаос будет. если кто-то вошел в чужой дом, и лег спать).
  5. Чтобы сел на стул, на кровать, лег на нее, или начал пить стакан у барной стойки, там в парке на улице газетку читали, в панике убегали и прочее. Это вроде анимации юнита, это надо модели переделать. Как только у тебя будут эти модели, ты сможешь триггерами проигрывать. Чтобы хорошая игра вышла (как я себе представляю), нужно модели хорошо делать. Хотя можно и без этого
ps. Не делайте бродилки по всей карте, если есть участки, в которых герои пока попасть не могут. Просто разбейте на участки, в которых могут еще ходить или находятся рядом с игроком. Это бессмысленно, если не видит
4
27
7 лет назад
Отредактирован MpW
4
Ну это триггерно все делается. Это система приказов.
смотреть
  1. В РО на карте: Создаешь кучу мини-областей. Все эти области лучше в массивы все загнать, то есть при инициализации. Потом будешь рандомнить число/массив.
  2. Создаешь нейтрального жителя, даешь приказ двигаться в рандомную точку (а точнее в центр рандомной области).
  3. Как только он дойдет до области. Ловим по событию "юнит вошел в область". Проверяем является ли он нейтральным, точнее его владельца. тогда двигаем поближе к барной стойке, и спиной заставляем повернуться к столу (лицом можешь подвигаться. как это см. в faq на сайте). Ты понимаешь, как только вошел в область, на юнита повешен таймер с 10 сек. Обычно на GUI вешают события с запусками таймеров, а вот на jass можно без события.
  4. После того, как событие завершилось, таймер истек. Заставляем снова гулять (те же самые действия) или отправляем домой. У каждого юнита должна быть своя отправная точка, чтобы вернулся домой (запоминаешь при создании/при выходе из дома). Если это совсем безымянный юнит, которого мы не знаем. То можно не запоминать, а отправлять в любой попавшийся дом (хотя хаос будет. если кто-то вошел в чужой дом, и лег спать).
  5. Чтобы сел на стул, на кровать, лег на нее, или начал пить стакан у барной стойки, там в парке на улице газетку читали, в панике убегали и прочее. Это вроде анимации юнита, это надо модели переделать. Как только у тебя будут эти модели, ты сможешь триггерами проигрывать. Чтобы хорошая игра вышла (как я себе представляю), нужно модели хорошо делать. Хотя можно и без этого
ps. Не делайте бродилки по всей карте, если есть участки, в которых герои пока попасть не могут. Просто разбейте на участки, в которых могут еще ходить или находятся рядом с игроком. Это бессмысленно, если не видит
Принятый ответ
1
18
7 лет назад
1
Триггер - пикаешь всех юнитов, владельцем которых является нейтрал. Если пикнутый юнит - мирный житель, то приказываешь ему идти в рандомную точку массива точек (туда изначально заносишь места в таверне, места на улице, где житель может постоять, места у кроватей и т.д.)
Для пущей эпичности можно сделать, чтоб когда кто-то подходил к стулу, кровати и прочим штукам, проверялось на тип юнита (мирный житель) и проигрывалась нужная анимация (сесть, лечь, выпить и прочее). Но это уже сложнее.
Оу, с моим лагающим интернетом опоздал с ответом. :(
1
32
7 лет назад
1
Добавь им способность Бродяий (нейтральный) или торнадо (перемещение).
А если хочится чтобы они ходили и искали, то нужен псевдо ИИ.
Вот пример ИИ который ищет и преследует противников + применяет способности.
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.