Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Движение NPC к последнему место положению игрока

Движение NPC к последнему место положению игрока 5 года 4 мес. назад #107354

  • Yros
  • Yros аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 329
  • Спасибо получено: 284
  • Проект месяца 1 местоПроект месяца 2 место
Как реализовать движение события к точке на карте где только что располагался игрок? VX Ace
Администратор запретил публиковать записи гостям.

Движение NPC к последнему место положению игрока 5 года 4 мес. назад #107355

  • Демий
  • Демий аватар
  • Вне сайта
  • Модератор
  • Здесь могла быть ваша реклама
  • Сообщений: 1599
  • Спасибо получено: 1520
  • ТестерВетеран1 место в ГотвРазработчик3 местоПисатель 2 место3 место ГотвУчитель
Запустить параллельное событие, которое будет писать координаты в переменную, а когда надо будет, остановить его и отправить ивент по последней записи.

Ещё есть маршрут движения "к игроку". :unsure:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Yros

Движение NPC к последнему место положению игрока 5 года 4 мес. назад #107470

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2477
  • За 2 место на конкурсе маппингаПрограммист RubyВетеранДаритель СтимкеяПаладинРазработчикПроект месяца 3 местоОраторУчительПоддержка Фонда
Спасибо за полезный ответ! Хочу его немного дополнить.
Демий пишет:
отправить ивент по последней записи.

Мне кажется, это самая сложная часть задачи.

Если на карте нет никаких препятствий, то можно сравнивать координаты ивента и координаты точки и устанавливать маршрут длиной в один шаг:
@> УСЛОВИЕ: Переменная [X события] > Переменная [X цели]
  @> Изменение маршрута: [Отправляемое событие] (Ждать)
                    : $>Шаг: влево

@> КОНЕЦ
@> УСЛОВИЕ: Переменная [X события] < Переменная [X цели]
  @> Изменение маршрута: [Отправляемое событие] (Ждать)
                    : $>Шаг: вправо

@> КОНЕЦ
@> УСЛОВИЕ: Переменная [Y события] > Переменная [Y цели]
  @> Изменение маршрута: [Отправляемое событие] (Ждать)
                    : $>Шаг: вверх

@> КОНЕЦ
@> УСЛОВИЕ: Переменная [Y события] < Переменная [Y цели]
  @> Изменение маршрута: [Отправляемое событие] (Ждать)
                    : $>Шаг: вниз

@> КОНЕЦ

(Причём это надо выполнять в параллельном событии, чтобы движение игрока не блокировалось.)

Но это сработает только в том случае, если между игроком и событием нет препятствий, иначе событие застопориться. Т.е. если игрок просто делает 1 шаг, то это сработает. А если игрок телепортируется, или делает несколько шагов до того, как событие перемещается, то тогда уже не сработает.

Если нужно, чтобы событие перемещалось с учётом препятствий, то, наверное, нужно использовать скрипты на поиск пути:
Последнее редактирование: 5 года 4 мес. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Cabbit, xawoca, Noxmils
Время создания страницы: 0.179 секунд