Доброго времени суток. Не так давно решил сунуться с головой в разработку карты, где будут применены геймплейные идеи из Warhammer:Dawn of War. Уже реализовал систему выбора рас (всего их будет 8) через окно диалога, теперь передо мной лежит 3 задачи:
  1. Создать систему морали. Смысл в следующем. У каждого юнита есть мораль - в данном случае ее заменяет мана. Если у персонажа маны/морали меньше 15% - он получает дебафф, который ослабляет его урон (как от физических атак, так и от заклинаний) на 75%. Мана/мораль понижается каждый раз, когда юнита атакует другой юнит (т.е. по сути, каждый юнит обладает пассивной атакой с выжиганием маны).
  2. Система чемпионов. Чемпион - это просто особо мощный юнит (НЕ ГЕРОЙ! Не хочется видеть ненужные элементы интерфейса, вроде полоски уровня, характеристики, имени и т.д.), который можно строить в единичном экземпляре. Реализовать это мне удалось с помощью триггеров по ограничению количества юнитов для игрока, однако есть 2 проблемы. Первая - хочется реализовать появление иконки чемпиона (в левом верхнем углу, где обычно располагаются иконки героев), когда он был произведен. Вторая - в соответствии с триггерами, когда юнит был произведен, его иконка в здании полностью пропадает до тех пор, пока юнит не погибнет. Вместо исчезнувшей иконки хотелось бы видеть аналогичную, но "заблокированную" (т.е. иконку с измененным дизайном - серым, и невозможностью нажать на нее до тех пор, пока чемпион не погибнет).
  3. Система редких существ. Тут та же идея, что и в системе чемпионов - можно строить ограниченное количество юнитов определенного типа (вне зависимости от лимита). Однако было бы здорово реализовать систему, когда это самое количество увеличивается благодаря изучаемым апгрейдам.
Очень буду признателен, если кто-нибудь озвучит свои идеи, как можно решить эти 3 задачи (любым способом). Желательно прикреплять скриншоты - мне, как не самому опытному пользователю WE, будет тяжело разобраться, ориентируясь только по тексту.
Заранее благодарю.

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

  1. а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
    б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
    В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
    Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
0
21
9 лет назад
0
  1. Событие: Юнит атакован
    Условие: Текущая мана у юнита меньше или равно 15% от макс. маны (сравнение реального числа)
    Событие: Создать дамми для игрока нейтрально-враждебный
    Приказать дамми применить заклинание "Дебаф" на переключающий юнит
Далее через триггер применения спелла дебафа удаляешь даммика
  1. Делай на основе героя, по другому никак. Даёшь зданию в производство второго юнита, который изначально заблокирован при инициализации игры. Как только нанимается юнит-чемпион запрещаешь производство чемпиона и открываешь доступ к второму юниту у которого требование которое тебе нужно можно вставить через РО. Сделать недоступную иконку можно через DISBTN (ещё раз нужно обработать в Button Manager) или в паинте сделать крест и также обработать в Button Manager'e.
  1. Через триггеры делаешь событие изучения улучшения и далее нужное событие и условие.
2
12
9 лет назад
2
  1. а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
    б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
    В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
    Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.