Собственно - возможно ли отследить незанятого работника?
Тоесть, я хочу сделать так, чтоб каждого незанятого работника подсвечивало сверху восклицательным знаком (модель talktome)
Думаю вешать баф с анимацией этой модели на афк работника.
Возможно ли как-то отловить это?
Либо если есть идея как можно это оформить подругому, жду предложения.

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

Вообщем решение как обозначить незанятого раба простое пока не пришло(
Делаем способность А на основе 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)

А вот и карта.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
16
4 года назад
0
без мемхака?
0
27
4 года назад
0
Obelick, это тоже не всегда помогает к сожалению. как сказал nvc123
1
28
4 года назад
1
Достаточно просто отслеживать, что текущий приказ 0.

Не не пойдет, большая нагрузка на карту.
Совсем не большая нагрузка. В лазурных башнях период меньше, а лагов нет.
0
30
4 года назад
0
Попробуй ForceUIKey("`") (ну или какой там хоткей на выбор незанятых рабочих)

В лазурных башнях период меньше, а лагов нет.
В лазурных башнях максимум 5 рабочих на игрока
1
28
4 года назад
Отредактирован PT153
1
Steal nerves, это как раз-таки поможет, если приказ 0, то юнит ничего не делает.

В лазурных башнях максимум 5 рабочих на игрока
А причём тут рабочие? Любой игрок может построит 100500 финальных башен, для которых и делается цикл 4 раза в секунду.

В любом случае нагрузка никчёмная.
0
30
4 года назад
0
Подробнее опишу свою идею: запоминаем выделение игрока, после чего форсим выбор незанятых рабочих в цикле, добавляя их в исходно пустую группу. Когда выделится рабочий, уже находящийся в группе, считаем группу полной и всем рабочим без "!" вешаем "!", после чего выделяем тех юнитов, которые были выделены игроком.

Не уверен, что оно сработает, но сомнение есть только в том, можно ли зафорсить не буквенную клавишу, в остальном метод сработает 100%
3
28
4 года назад
Отредактирован PT153
3
Не виду смысла городить костыли через выделение, ибо приказы могут отдаваться триггерно. Достаточно просто 4 раза в секунду у всех рабочих смотреть приказ. Нагрузки на карту не будет. И вообще, с чего бы её быть? Откуда это убеждение, что периодические события или таймеры - плохо?

Выбираем всех рабочих.
Для всех рабочих проверяем приказ. Если он 0, удаляем рабочего из группы.
На выходе имеем группу незанятых рабочих.

Делал похожее тут. Там карта, где 4 раза в секунду отображаются приказы юнита. Когда юнит ничего не делает, приказ 0.
0
27
4 года назад
Отредактирован MpW
0
PT153, ну ладно. если работает. просто это мб не всегда так, я просто уже не помню. Но когда то Диод говорил что не работает. Например, у вас стоит рабочий, его атаковал враг, рабочий естественно убежит от него. Но приказ то он не имеет вообще, тк не получал приказа от игрока вроде. Там надо тогда проверять не сдвинулся. Но и еще много других случаев. Пардон, мы говорим не про бездействие юнита, а про занятость. хотя это почти одно и тоже
4
28
4 года назад
Отредактирован PT153
4
Но когда то Диод говорил что не работает.
Старички XGM много чего говорили, вот только это было лет 10 назад, за 10 лет вещи изменились. Близы не всегда пишут все изменения. Порой это просто невозможно.
Например, у вас стоит рабочий, его атаковал враг, рабочий естественно убежит от него.
Способ Clamp данный случай не хендлит как раз. При этом убегающий рабочий не является незанятым.
Но приказ то он не имеет вообще, тк не получал приказа от игрока вроде.
Но он имеет приказ. Пруф.
Поэтому способ с проверкой приказа на 0 вполне рабочий.
Загруженные файлы
1
16
4 года назад
1
Приказа при автоатаке, убегании - нет. Он пустой.
1
30
4 года назад
1
Способ Clamp данный случай не хендлит как раз.
Лол, описанный мной вариант тупо выделяет всех рабочих, которые находятся под кнопкой "свободные рабочие", я хз о чём ты. Убегающий рабочий не является незанятым, он занят убеганием (твой кэп).
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.