Комментарии к дневнику

  1. Аватар для Kolhe
    Так то оно так, но я делал для 2k3, какие уж там скрипты? И еще делал в нем генератор карт, поэтому то и нужна была автоматическая система нахождения пути.
  2. Аватар для Валера
    Я тоже самое делал. Алгоритм обхождения препятствий делал. И вот к какому выводу пришел. Одиночное препятствие обойти не сложно. Проблемы возникают с большими, объемными. Но... Поскольку карты для таких дел задаются заранее, проще всего обводить их тем, что называется Земля в ХР. Встав на землю 1 герой/ивент автоматом пойдет обходить возникшее препятствие вниз, если же 2 - вверх, 3 - влево, 4 - вправо. И так, пока земля под ногами не кончится. Это самый простой вариант для мейкера.
    Сложнее ловить движущийся ивент, если он спрятался за "дом". Тут нужна корректировка. Или же, как в жизни, можно обходить с любого конца ( мы же не видим, где стоит враг за домом ).
    Кроме этого, есть несколько хороших скриптов нахождения пути. Сам пробовал - работают.
  3. Аватар для Kolhe
    Валера, было бы все так просто...

    В свое время делал тактическую боевую систему на 2k3 - систему движения в определенном радиусе пошагово я сделал довольно быстро, это в общем-то легко. Но дальше я столкнулся с схожей проблемой: мне нужно было как-то определять препятствия и убирать HUD клеток для движения на этих препятствиях, и мало того чтобы персонаж их самостоятельно обходил. Ну с системой поиска пути то я еще справился. С главной проблемой решил бороться так - каждая клетка куда персонаж может передвинутся - отдельный эвент который самостоятельно проверяет тайл своих координат на предмет препятствий. Однако эта система была неудобно тем что в мейкере нет возможности создавать евенты во время процесса игры, а только зарастание в редакторе.
    Пришлось для каждой возможной клетки создавать заранее отдельное событие... а их количество зависит от максимального радиуса движения всех персонажей. А если предположить что максимально расстояние на которое способен передвинуться персонаж это всего 6 клеток, то для этого, после не хитрых вычислений, понадобится 85 событий. Для каждой боевой карты нужно накопировать 85 событий. А это ресурсозатртно, да и вообще место на карте занимает.
  4. Аватар для David Kristens
    Валера, а попробуй и выложи демку. Вот на спор, не выйдет?
  5. Аватар для Валера
    Чего вы тут городите, ребяты? Нужен всего один параллельный ивент и две проверки в нем:
    1. Сперва проверяется не стоит ли герой рядом с монстром? Т.е. разница в 1 клетку. Если да, то бой, если нет - далее:
    2. Видит ли монстр героя ( чтобы рычать )? При расстоянии по любой координате менее скажем 6, монстр включается, более - выключается. Всё. И не надо больших вычислений. Проверку десятка монстров можно запихнуть в один ивент.
  6. Аватар для David Kristens
    Мефис, спасибо!
    Я помнил, что видел что-то такое, но из головы вылетели все варианты поисковых фраз Т_Т Да, это то, что я искал!
  7. Аватар для Antberg
    Эмм. Не знаю, насколько это окажется полезным, но есть простой способ заставить эвенты двигаться вокруг любого движущегося объекта (героя, либо эвента). Причём можно расположить их в любом порядке - даже в виде узора - и они всё равно будут в точности повторять путь "цели", к которой они привязаны, не нарушая порядка построения. Делается это так:

    Предположим, что у нас есть эвент, который должен всё время находиться на одну клетку левее движущейся "цели", или на две клетки, или не левее, а выше, ну и так далее, в зависимости от задачи. Для начала - мы делаем так, что-бы нужный эвент телепортировался всё время на координаты “цели” (в данном случае это противник) но перед телепортом, после того как вычислены координаты – мы прибавляем единицу к X’у или Y’ку (либо одновременно), и эвент телепортируется не точно в цель – а в соседний тайл. Если никаких временных интервалов при этом нет, то мы будем видеть (если эвенту задана графика), как рядом с целью перемещается, всегда на одинаковом расстоянии от неё, ещё один эвент – разве что движение будет не плавным, т-к это не движение в прямом смысле слова.
    В общем, отнимая или прибавляя цифру в переменной, мы получаем сдвиг на соответствующее количество тайлов в каком-то из 4-х направлений. Поняв этот принцип, можно составлять целые движущиеся конструкции из эвентов, которые всегда будут корректно перемещаться вокруг цели, которая в свою очередь, может вообще перемещаться в полностью произвольном направлении.

    Конечно, нужно ещё настроить принцип взаимодействия с игроком. Насколько я помню, на 100% корректно это работает только при совпадении с координатами игрока, т-к разные там "столкновения" и "прикосновения" в такой ситуации начинают сбоить. Понятно, что такое обилие координат может вызвать тормоза. Но если противник один на карте, или же их не много, то может и пронесёт. (впрочем, я думаю, всё-же скриптовый способ должен существовать)
    Обновлено 23.03.2013 в 20:55 Antberg
  8. Аватар для ReDS
    Реализовать данную идею можно через сравнение координат игрока и ивента. Получиться по 1 параллельному событию на врага (можно и в ивенте самого врага прописывать). Не знаю как с лагами будут дела обстоять, но думаю при правильном составлении алгоритма (главное не забывать прописывать Wait хотя бы в 1 фрейм), особых проблем не появится при расстановке 5-10 таких врагов на карту. Ещё можно в отдельном параллельном ивенте выключать "AI" врагов, которые находятся за пределами экрана, если карта будет большая, а врагов много.
    Собственно, вся сложность будет заключаться только в прописывании алгоритма высчитывания шагов от игрока до врага. Квадратные области вокруг инвента-врага будет проще сделать, высчитывая количество клеток (шагов) от игрока до ивента по двум осям. С круглыми областями придётся повозится, условия получатся гигантских размеров, главное не запутаться))

    Подобную систему можно посмотреть в Quintessence - The Blighted Venom от freebirdgames (например на мапе Northern Royal ID:200 в разделе AERIA). Там использовались квадратные области вокруг ивентов, даже подсвеченные картинками, прикреплёнными к координатам врагов.
  9. Аватар для mephis
    Эх, лучше б у феи ты попросил умение пользоваться поиском по форуму: http://rpgmaker.su/showthread.php/69...t-Sensor-Range
  10. Аватар для David Kristens
    О! Фея! А подари мне такой же, но для хр? Я буду хорошим котиком, буду чистить зубки и перестану гадить в чужие тапочки!
  11. Аватар для Seibur
    Цитата Сообщение от David Kristens
    Имхо, корявый выход: потребуется много ивентов на карту, много таймеров, плюс сам монстр станет неспособным к передвижению.
    Неужели ни у кого не давалялось скрипта дистанционного срабатывания ивента??
    Давалялась на асе
  12. Аватар для David Kristens
    Имхо, корявый выход: потребуется много ивентов на карту, много таймеров, плюс сам монстр станет неспособным к передвижению.
    Неужели ни у кого не давалялось скрипта дистанционного срабатывания ивента??
  13. Аватар для Soliд
    Цитата Сообщение от David Kristens
    ммм...имхо, будет тормозить.
    Анти-лаги тебе в руки, оцелотик.
  14. Аватар для David Kristens
    ммм...имхо, будет тормозить.
  15. Аватар для Seibur
    Цитата Сообщение от David Kristens
    А если я хочу чтобы монстр двигался? тогда при его движении должны двигаться и связанные с ним ивенты, при том, двигаться синхронно.
    А если монстр не один на локацию должен быть?..
    Спойлер Есть одна идея, конечно...:

    Открой картинку в новой вкладке
  16. Аватар для David Kristens
    неееее!
    Только ХР! Только крабкор!
  17. Аватар для Гость
    Юзай Асе, там все есть!
  18. Аватар для David Kristens
    А если я хочу чтобы монстр двигался? тогда при его движении должны двигаться и связанные с ним ивенты, при том, двигаться синхронно.
    А если монстр не один на локацию должен быть?..
  19. Аватар для Seibur
    А на ивентах нет ,От прекосновения персонажа?
    *что если ивенты поставить в шахмотном порядке...*
  20. Аватар для David Kristens
    одно лицо