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