28

» WarCraft 3 / Есть ли в этом тригере утечки?

Перед вызовом "Выбрать каждого юнита в ..." для не созданной группы, нужно написать set bj_wantDestroy = true.
Если же группа записана в переменную, то писать не нужно. Если же группа создаётся в самом вызове, нужно написать.
Vi.A.R:
Это юниты выбраные в радиусе 300 от точки t.
Во время вызова создаётся группа "Юниты в радиусе от" создаётся группа. Чтобы её удалить (а её нужно удалить), перед вызовом нужно написать set bj_wantDestroy = true.
28

» WarCraft 3 / Как убрать утечку в этом триггере?

вообще-то триггер рабочий, там же написано выполнить действия триггера игнорируя условия.
Проигнорировать условия ТРИГГЕРА, а не условия в действиях триггера.

Даже если вынести условие в условия триггера, работать не будет, потому для нового вызова Игрок триггера будет ничем.

Даже если вынести условие в условия триггера, работать не будет, потому для нового вызова Игрок триггера будет ничем.
Проверил, всё будет работать, но условие в действиях всё же будет выполнятся, а это лишнее. Потому лучше вынести его в условия триггера, потому что тогда оно не будет выполняться.
28

» WarCraft 3 / Есть ли в этом тригере утечки?

Принятый ответ
Да.
После создания юнита нужно удалять последнюю созданную группу.
Что такое "Юниты в 300.00 t"?
Перед вызовом "Выбрать каждого юнита в ..." для не созданной группы, нужно написать set bj_wantDestroy = true.
Локалки в конце триггера нужно обнулять. Касается только объектов.
28

» WarCraft 3 / Как убрать утечку в этом триггере?

Я никак не вижу что ты там сделал,так что не могу обьяснить.
Скриншот же есть.
28

» WarCraft 3 / Как убрать утечку в этом триггере?

Принятый ответ
После создания юнита нужно удалить последнюю созданную группу. В Custom Script.
call DestroyGroup(bj_lastCreatedGroup)
Если же есть JNGP, то там есть функция по удалению группы.

Также нужно создать переменную TempLocation, перед созданием юнита в неё записывать позицию, где хочешь создать юнита, а после создания удалять эту позицию.

А ещё, это не сработает, как ты хочешь. После 270 секунд триггер начнёт выполнятся, "Тип исследуемой технологии" будет ничем, таким образом, выражение в "Тогда" не выполнится.
Нужно создать отдельный периодический таймер для каждого игрока (то есть массив таймеров), при завершении исследования, стартануть таймер для игрока. Сделать триггер, срабатывающий на завершение таймера, который и будет создавать юнита.
28

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

Как будет время, залью свою карту на XGM и EpicWar, заодно и сурсы приложу.
А вот пока сурсы для тех, кто здесь.
28

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

Записал геймплей моей карты в мультиплеере.
Качество, по идее, потом появится.
UPD: уже есть.
Наверное, согласишься, что лабиринт NazarPunk'а выглядит приятнее?
Не смотрел, потому что нет RenderEdge.
28

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

В мультиплеере кнопки в диалогах могут с первого раза не кликаться, это нормально, просто старайтесь кликать как только таймер уменьшился (например, 10 стало 9).
Хотите немного прикола от оптимизатора?
У меня в карте есть функция Restart, а также строка "Restart". Оптимизатор переименовал функцию Restart в De, и тоже самое сделал и со строкой! Потому в оптимизированной версии в диалоге рестарта первая кнопка имеет имя "De".
28

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

А вот моя работа.
Лучше играть вдвоём.

Super tic-tac-toe

Крестики-нолики в WC3!
Рекомендуется играть вдвоём по сети.
Можно выбирать размер поля, количество значков в ряд, а также время хода, если игра в мультиплеере.

В мультиплеере кнопки в диалогах могут с первого раза не кликаться, это нормально, просто старайтесь кликать как только таймер уменьшился (например, 10 стало 9).
28

» XGM Конкурсы / Warcraft III Mini-Game Contest-2018

Например, на одном из конкурсов 2kxaoc'а не были показаны толком минимум две очень хорошие карты
Мою, например, но там действительно могла быть проблема из-за вечной перекачки жизни.
28

» WarCraft 3 / Проверка способности

Короче, сейчас норм кину)

по идее там надо убрать все действия в Иначе, но добавить в Если проверку, что если юнит не герой, то удалить из Poisoned_units.
Если ты про свою реализацию, то да, нужно вытащить из "Иначе".
В моей я вообще сразу по группе с низкой бронёй прохожу.

Вот хорошая реализация.
EHP_Sequence, вставишь уменьшение брони и поменяешь в глобальных константах знаяения переменных ReduceArmorAbility и ReduceArmorBuff на нужные тебе.
28

» WarCraft 3 / Проверка способности

а заскринь третий триггер твоей реализации.
Я разбил его на 2.
Хм, условие на смерть лишнее.
Загруженные файлы
28

» WarCraft 3 / Проверка способности

Сейчас посмотрю другую реализацию, предложенную PT.
Она такая же, просто чуть удобнее и исправлена ошибка, что я описал выше.
UPD: в триггере на смерть нужно добавить в условия, что умирающий юнит не герой.
Вот исправленная версия.
Загруженные файлы
28

» WarCraft 3 / Проверка способности

не понял, что имеешь ввиду, ведь как раз учитывал, что при смерти юнит будет без баффов.
"Иначе" срабатывает только тогда, когда хотя бы одно из условий неверно.
У нас есть Picked Unit, он мёртв. Выполняем для него действия в группе.
Бафф у него есть? Нет, проверяем дальше.
Он в группе с низкой бронёй? Если да, то выполняется "Тогда", "Иначе" игнорируется.
Если нет, то выполняется "Иначе". А в "Иначе" у нас новые условия.
Юнит не живой? Да, проверяем следующее условие.
Он в группе с низкой бронёй? Нет, мы это уже выяснили.
Таким образом, группа не очищается.
EHP_Sequence:
Ссылка ведет на это же сообщение :(
Бред какой-то, найди 47-й комментарий на странице 1.
28

» WarCraft 3 / Проверка способности

посвяти человека в утечки, а то всё-равно по поводу (Triggering unit) и (Picked unit) начал уточнять, столкнулся с кучей противоречивой и неоднозначной информации, так и не выяснил до конца.
Picked Unit это вот что.
constant native GetEnumUnit takes nothing returns unit
Triggering Unit вот что.
constant native GetTriggerUnit takes nothing returns unit
Нативки не создают утечек.

Ещё раз, утечки возникают из-за неудалённых точек и групп, которых тут нет. Также могут быть проблемы из-за необнулённых локальных переменных, но их тут тоже нет.
28

» WarCraft 3 / Проверка способности

Третий триггер
Отряд - Pick every unit in Poisoned_units and do (Actions)
.Цикл - Действия
..Multiple Functions If (All Conditions are True) then do (Then Actions) else do (Else Actions)
...Если - Условия
....((Picked unit) has buff Яд (не буферизуется) (паук1)) равно Нет
....((Picked unit) is in Reduced_armor) равно (==) Да
...То - Действия
....Set Armor of (Picked unit) to ((Armor of (Triggering unit)) + 6.00))
....Отряд - Remove (Picked unit) from Reduced_armor
...Иначе - Действия
....Multiple Functions If (All Conditions are True) then do (Then Actions) else do (Else Actions)
.....Если - Условия
......((Picked unit) is alive) равно (==) Нет
......((Picked unit) is in Reduced_armor) равно (==) Да
.....То - Действия
......Отряд - Remove (Picked unit) from Reduced_armor
......If (((Picked unit) is Герой) равно (==) Нет) then do Отряд - Remove (Picked unit) from Poisoned_units else do (Боевая единица - Set Armor of (Picked unit) to ((Armor of (Picked unit)) + 6.00))
.....Иначе - Действия
Тут есть проблема, что очищение группы регистрации происходит в случаях: когда юнита нет в группе с низким армором, когда у юнита есть бафф, когда присутствуют сразу первые два случая. Но прикол в том, что мы вновь проверяем наличие в группе с низким армором, а если юнит мёртв, то и баффа у него нет. То есть очищение не происходит. В своей реализации я исправил.
EHP_Sequence, видел мою реализацию тут (там есть ссылка на слове "это")? Глянь её, она точно без ошибок.
28

» WarCraft 3 / Проверка способности

8gabriel8:
Пытался застакать, используя разные яды, но всегда висел (не буферизируется), что с чем надо накладывать, чтобы второй бафф висел?
Яд должен быть один, нужно его настройки поменять.
Прочитай это и это.

UPD: я уже точно не помню, у меня всё уже давно триггерное)
28

» WarCraft 3 / Проверка способности

EHP_Sequence, вот это должно работать, вставишь уменьшение брони и поменяешь в глобальных константах ReduceArmorAbility и ReduceArmorBuff на нужные тебе.
8gabriel8:
А вот помимо ошибки в третьем триггере, ещё и бафф (буфферизируется), его же не висит на юнитах отравленных. Тоже не знаю, почему он присутствует в редакторе, но предполагаю, что он для версии Reign of Chaos, типа там иначе работает яд, и чтобы была своя версия яда у юнитов в каждой версии игры, просто поставили юнитам оба типа баффов, а каждая версия отключает другой.
Бафф зависит от того, стакаются ли эффекты от разных наложителей со способностью яда или нет. Если стакаются (буфферизуется), то висит этот бафф, если нет, то висит другой. Стакаемость зависит от настройки способности. Узнать, что же висит, можно по изменению имени баффа.
Загруженные файлы
28

» WarCraft 3 / Проверка способности

Второй триггер можно сделать проще: проверку на отсутствие в группе поставить в условия триггера.
Ошибка в третьем триггере: первое условие, (Picked Unit has buff рано Нет) должно быть.
28

» WarCraft 3 / Проверка способности

Не знаю, как в 1.30, но в 1.26 Воскрешение не поднимает тех же юнитов, а создаёт на их месте таких же новых.
Хм, тогда ладно. Впрочем, это немного логично, ведь воскрешение вызывает срабатывание события Summons a Unit.
28

» WarCraft 3 / Проверка способности

А что с героями не так?
А так да, такой триггер не нужен.
UPD: понял.

Мёртвых юнитов лучше не удалять из группы, потому что их можно воскресить, и для них событие будет зарегистрировано 2 раза. Им нужно также восстановить назад броню, а удалить уже когда они разложатся.
Вот из-за этого я предпочитаю способ с добавлением событий на всех юнитов, что можно атаковать, сразу, а не по ходу игры.