Можно и без фреймов, нужно указать нужные координаты.
native DisplayTextToPlayer takes player toPlayer, real x, real y, string message returns nothing
native DisplayTimedTextToPlayer takes player toPlayer, real x, real y, real duration, string message returns nothing
native DisplayTimedTextFromPlayer takes player toPlayer, real x, real y, real duration, string message returns nothing
например гуи (1 балл), жасс (2 балла), луа (3 балла)
Ну и бред же. Полностью согласен с Clamp. Это конкурс ради конкурса или ради того, чтобы люди создали хорошие мини-игры? И держу в курсе, можно делать карту на GUI, делая вставки кастом скрипта на Lua.
Какую? У меня в карте куча башен (20-30 на игрока, всего 10 игроков), каждая чекает врагов рядом 16 раз в секунду, лагает только у людей со слабым интернетом и пк. У меня стабильно 30 фпс, хотя у меня далеко не топовый пк.
Любой другой способ нагружать будет ещё больше. Никак нельзя отследить, что приказ стал 0, в любом случае нужно для каждого юнита периодически смотреть текущий приказ. Либо общий таймер, либо индивидуальный. 8gabriel8:
Ах да, если незанятого работника мгновенно убьют, то спецэффект так на нём и останется, нужно убирать.
Со способностью эффект тоже останется. Удобство тут в том, что в способности можно указать несколько эффектов и точек креплений, не нужно проверять, есть ли у юнита уже такой эффект, и при смерти юнита не нужно эффект удалять.
Вообщем решение как обозначить незанятого раба простое пока не пришло(
Делаем способность А на основе Atol. Если не JNGP, то на основе Asph. Способности даём нужный эффект.
Далее делаем триггер.
Событие: каждые 0.25 секунд игры
Действия
Установить Workers = Юниты на Вся карта типа Работник.
Выбрать всех юнитов в Workers и для каждого делать
Custom script: if GetUnitCurrentOrder(GetEnumUnit()) == 0 then
Добавить способность А Выбранному юниту.
Custom script: else
Удалить способность А у Выбранного юнита.
Custom script: endif
Custom script: call DestroyGroup(udg_Workers)
Есть, приказ "move", карта выложена выше. Для автоатаки не смотрел, ибо речь о рабочих.
Clamp, я изначально не понял, что имелось в виду. Да и сейчас не совсем ясно, с какой периодичностью происходит перебор всех незанятых рабочих. Если это делается единожды и далее занятость снимается и восстанавливается только на отслеживании выделения юнитов, то, как и сказал, такой способ не хендлит случай убегания: рабочий был свободен в момент форса, но после стал убегать, при это игрок им не управлял. Если есть периодичность, то проще просто проверять текущий приказ.
Вроде понял, периодичность должна быть. Но не думаю, что можно вызывать ForceUIKey в цикле без пауз между вызовами.
Старички XGM много чего говорили, вот только это было лет 10 назад, за 10 лет вещи изменились. Близы не всегда пишут все изменения. Порой это просто невозможно.
Например, у вас стоит рабочий, его атаковал враг, рабочий естественно убежит от него.
Способ Clamp данный случай не хендлит как раз. При этом убегающий рабочий не является незанятым.
Но приказ то он не имеет вообще, тк не получал приказа от игрока вроде.
Но он имеет приказ. Пруф.
Поэтому способ с проверкой приказа на 0 вполне рабочий.
Не виду смысла городить костыли через выделение, ибо приказы могут отдаваться триггерно. Достаточно просто 4 раза в секунду у всех рабочих смотреть приказ. Нагрузки на карту не будет. И вообще, с чего бы её быть? Откуда это убеждение, что периодические события или таймеры - плохо?
Выбираем всех рабочих.
Для всех рабочих проверяем приказ. Если он 0, удаляем рабочего из группы.
На выходе имеем группу незанятых рабочих.
Делал похожее тут. Там карта, где 4 раза в секунду отображаются приказы юнита. Когда юнит ничего не делает, приказ 0.
» WarCraft 3 / Дополнительные типы тайлов почвы
» WarCraft 3 / Центрирование текста
» WarCraft 3 / Триггерный Спелл
» WarCraft 3 / Огненное дыхание
» WarCraft 3 / Дополнительные типы тайлов почвы
Ред. PT153
» WarCraft 3 / Какие подводные камни у использования "хакков" на юнит стейт
» WarCraft 3 / Огненное дыхание
» XGM Конкурсы / Mini-Game Contest: Reforged
» WarCraft 3 / Огненное дыхание
» WarCraft 3 / Warcraft 3 Reforged: Патч 1.32.9
Ред. PT153
» WarCraft 3 / Warcraft 3 Reforged: Патч 1.32.9
Ред. PT153
» Программирование / Как работают знаки сравнения, больше, меньше?
» XGM Конкурсы / Mini-Game Contest: Reforged
Ред. PT153
» WarCraft 3 / Возможно ли отследить незанятого работника?
Любой другой способ нагружать будет ещё больше. Никак нельзя отследить, что приказ стал 0, в любом случае нужно для каждого юнита периодически смотреть текущий приказ. Либо общий таймер, либо индивидуальный.
8gabriel8:
» WarCraft 3 / Глобальные переменные и их количество
» WarCraft 3 / Возможно ли отследить незанятого работника?
Ред. PT153
» WarCraft 3 / Возможно ли отследить незанятого работника?
Далее делаем триггер.
» WarCraft 3 / Эффект телепортации Reforge
» WarCraft 3 / Эффект телепортации Reforge
Ред. PT153
» WarCraft 3 / Возможно ли отследить незанятого работника?
» WarCraft 3 / Эффект телепортации Reforge
Ред. PT153
» WarCraft 3 / Возможно ли отследить незанятого работника?
Поэтому способ с проверкой приказа на 0 вполне рабочий.
Ред. PT153
» WarCraft 3 / Возможно ли отследить незанятого работника?
Для всех рабочих проверяем приказ. Если он 0, удаляем рабочего из группы.
На выходе имеем группу незанятых рабочих.
Ред. PT153
» WarCraft 3 / Возможно ли отследить незанятого работника?
» WarCraft 3 / Возможно ли отследить незанятого работника?