Centyrion, ты уж не гоняйся за каждой утечкой. Хотя так лучше научишься их избегать, но в целом ты тратишь слишком много времени на это, причём не всегда оправдано. Удалять утечки нужно, например, если через 20 минут игры карта начинает сильно тормозить. А если всё нормально, то ты вообще не заметишь, есть ли эти утечки, которые удалил.
PT153, у него уничтожение делается через 2 секунды, то есть могут почти одновременно два героя забежать и увидеть диалог. То есть важнее то, чтобы на первое место эту функцию поместил.
Автор вопроса спросил, что у него происходит, когда предметов нет, а бонус от них есть. Кратко ответил, чтобы не перепечатывать все особенности из статьи, что инвентарь может оказаться скрыт, в него будет набираться 6 предметов, потом они будут попадать в видимый инвентарь.
Причём ничего ему не предлагал. Сам выберет, что ему лучше, зная особенности каждой системы.
Если здание изначально без магазина или с магазином, то после апгрейда этот магазин у него и останется.
Делай триггер с событием Unit Завершает улучшение и действием Replace (Triggering unit) with a (Unit-type of (Triggering unit)), в условие (unit-type of (Triggering unit)) равно Твоё_здание. Ещё бы надо отслеживать, было ли выбрано здание, если да, то добавлять его в выбор, а то после замены выбор слетает.
Iisys, ты, наверное, слова какие-то пропустил, так как непонятно, способности у героев вообще изучались или нет. В любом случае надо будет здоровенный триггер делать либо для прокачки, либо для применения. Попробуй свой ИИ в других картах, вдруг проблема только в одной.
Ты на GUI прекрасно описал.
Но ты уверен, что ИИ не изучает способности, может изучает, но не применяет? Проверь таким триггером:
Событие: Боевая единица - Generic unit Приобретает способность
Условие: Player Controller Comparsion ((Owner of (Triggering unit)) controller) равно Компьютер
Действие: Игра - (там первое действие в списке) вывести текст Изучено.
Если после повышения уровня у вражеского героя надпись будет появляться, значит надо смотреть, почему не применяет.
Разве что удалением из модели.
Есть ещё вариант отслеживания приказа stop и триггерного проигрывания анимаций, но это такое себе.
Есть, например, у тебя крестьянин, который для удобства объяснения будет под переменной p. Есть триггерная функция, которая воспроизводит анимации по их порядковому номеру внутри модели, эти номера анимаций тебе надо будет найти самостоятельно, перебирая номера:
call SetUnitAnimationByIndex(udg_p,3)
Как понимаешь, 3-это номер анимации, который просто взял для примера. Ну и делаешь триггер с событием, что p получает приказ без цели, условием, что order равно stop или holdposition или " ничего ", в действиях первым логическая переменная l=Да, вторым Если случайное число от 1 до 3 меньше 3, То call SetUnitAnimationByIndex(udg_p,3) и запустить таймер t на время проигрывания анимации с индексом 3, Иначе call SetUnitAnimationByIndex(udg_p,4) и запустить таймер t на время проигрывания анимации с индексом 4. В триггере с истечением таймера t будет условие, что логическая переменная l равно Да, действие Run предыдущий триггер без проверки условия. Третий триггер имеет события на приказ у p к цели-объекту и цели-точке, и без цели, с условием, что order НЕ РАВНО stop или holdposition или " ничего ", действия l=Нет и таймер t запустить на 0.01 сек.
Наверное, через какое-то время появляется враг, который должен идти и атаковать их базы.
Выбирай в группу юнитов нужного игрока типа База и отдавай приказ Двигаться, атакуя противников в её позицию.
Centyrion, хэндлы-это как бы указатели для некоторых переменных или лучше сказать часть созданных нормальных переменных и утечек. Создавая хеш-таблицу и группу, ты создаёшь хендлы, но это ещё не значит, что ты создал утечки. Счётчик хэндлов покажет тебе, в какой момент создаётся куча хэндлов, а если ты ничего не задумывал в этот момент, то будешь анализировать триггеры и искать причину.
Это и из вопроса понятно, уточнить другое просил.
Если тебе нужно отдать приказ юниту второго игрока Атаковать героя первого игрока, то просто отдаёшь приказ на юнита, но он выполнится, если только герой виден второму игроку. Для нейтральных игроков карта открыта, а другим нужно будет либо открыть карту, либо дать игроку 2 общее зрение с героем игрока 1.
Вообще нужно, например, делать целочисленную переменную i с начальным значением 3, в твой триггер поставить первым действием i=i-1, вторым действием Если/То/Иначе, где Если i=0, То i=3 и создать 3 ядовитых морлоков, Иначе Ничего
» WarCraft 3 / Диалог, Кнопка и утечки памяти
» WarCraft 3 / Диалог, Кнопка и утечки памяти
» WarCraft 3 / Ошибка в тригере выбора расы
Ред. 8gabriel8
» WarCraft 3 / Диалог, Кнопка и утечки памяти
Centyrion: Да. Только вместо DestroyTrigger в конце поставь первым действием Триггер - Turn off (this trigger).
» WarCraft 3 / Диалог, Кнопка и утечки памяти
» WarCraft 3 / Ошибка в тригере выбора расы
Можешь скинуть на какой-нибудь файлообменник, например, Яндекс.Диск и указать ссылку.
» WarCraft 3 / Ошибка в тригере выбора расы
P. S. Скорее всего на паузе твой рабочий.
» WarCraft 3 / Ошибка в тригере выбора расы
» WarCraft 3 / Дополнительные предметы
Причём ничего ему не предлагал. Сам выберет, что ему лучше, зная особенности каждой системы.
» WarCraft 3 / Импорт файлов, изменений юнитов и тригеров на новую карту
Вот есть программа xgm.guru/p/wc3/map-import-manager
» WarCraft 3 / Нету предметов в лавке при грейде из здания
Делай триггер с событием Unit Завершает улучшение и действием Replace (Triggering unit) with a (Unit-type of (Triggering unit)), в условие (unit-type of (Triggering unit)) равно Твоё_здание. Ещё бы надо отслеживать, было ли выбрано здание, если да, то добавлять его в выбор, а то после замены выбор слетает.
» WarCraft 3 / 1.31 wordeditor
» WarCraft 3 / Дополнительные предметы
P. S. Твои предметы оказываются в скрытом рюкзаке.
» XGM Team / Обновление 2019 - Stage 5
» WarCraft 3 / 1.31 wordeditor
Но ты уверен, что ИИ не изучает способности, может изучает, но не применяет? Проверь таким триггером:
Событие: Боевая единица - Generic unit Приобретает способность
Условие: Player Controller Comparsion ((Owner of (Triggering unit)) controller) равно Компьютер
Действие: Игра - (там первое действие в списке) вывести текст Изучено.
Если после повышения уровня у вражеского героя надпись будет появляться, значит надо смотреть, почему не применяет.
Ред. 8gabriel8
» WarCraft 3 / Как правильно писать теги анимации?
Есть ещё вариант отслеживания приказа stop и триггерного проигрывания анимаций, но это такое себе.
Есть, например, у тебя крестьянин, который для удобства объяснения будет под переменной p. Есть триггерная функция, которая воспроизводит анимации по их порядковому номеру внутри модели, эти номера анимаций тебе надо будет найти самостоятельно, перебирая номера:
» XGM Team / Обновление 2019 - Stage 5
» WarCraft 3 / Атака на игроков
Выбирай в группу юнитов нужного игрока типа База и отдавай приказ Двигаться, атакуя противников в её позицию.
» WarCraft 3 / Утечки памяти
» WarCraft 3 / Атака на игроков
Если тебе нужно отдать приказ юниту второго игрока Атаковать героя первого игрока, то просто отдаёшь приказ на юнита, но он выполнится, если только герой виден второму игроку. Для нейтральных игроков карта открыта, а другим нужно будет либо открыть карту, либо дать игроку 2 общее зрение с героем игрока 1.
» WarCraft 3 / Атака на игроков
» WarCraft 3 / Атака на игроков
» WarCraft 3 / Проблема с респ мобов..
» WarCraft 3 / Проблема с респ мобов..
» WarCraft 3 / Проблема с респ мобов..