28

» WarCraft 3 / Помогите настроить триггер

Hate, атакованный юнит на самом деле юнит триггера, а юнит триггера для события получения урона, собственно, является юнитом, что получил урон.
28

» WarCraft 3 / Lua и ООП

Почему self = nil можно не делать
Потому что это аргумент функции, локальная переменная, она уничтожится после выхода из функции.
Двоеточние это синтаксический сахар, который в определение метода добавляет аргумент self на первое место, а при вызове метода через : передаёт объект, что стоит до двоеточия, в аргумент self.
28

» WarCraft 3 / Отследить строителя (1.32+) Возможно ли?

Принятый ответ
Так же, как и раньше. Через расстояние и текущий приказ.
28

» WarCraft 3 / UnitGroup течет (DestroyGroup не помогает)

А как обнулять, если мы её возвращаем?
Через глобалку.

зачем предпоследним действием удаляешь всех юнитов из пустой группы?
Он также присваивает переменной юнита, которая уже null, ещё раз null.
28

» WarCraft 3 / Cannot find appropriate CD keys

Не знаю с чёрным дизайном сайта
С чёрным ссылки лучше выделяются.
Нет.
Да, жирным лучше видно.
28

» WarCraft 3 / UnitGroup течет (DestroyGroup не помогает)

Оно может начать течь через случайное время после старта, или после создания другого объекта.
Внутри какая-то ошибка сборки мусора или чего, что и ведёт к утечке хендлов в случайные моменты.
28

» WarCraft 3 / UnitGroup течет (DestroyGroup не помогает)

Точнее течёт хендл, а не сама группа. Размер потребления ОЗУ не сильно растёт (если вообще растёт).
Утечка происходит из-за не обнулённой переменной g.
28

» WarCraft 3 / Критическая ошибка в триггерах

DarkLigthing, нет, это всё равно бессмысленно, ибо при каждом сохранении редактор заново генерирует .j файл.
28

» WarCraft 3 / Как отследить, что древо посадилось?

Я же сказал ТРЕКАТЬ приказы? Что такое трекать? Это значит отслеживать. А это только через периодический таймер. Как только отдан приказ сесть - начинаем отслеживать текущие приказы юнита. Как только текущий приказ стал 0 - древо село.
Если во время отслеживания был отдан другой приказ, то уничтожаем старый таймер и создаём новый с отслеживанием нового приказа (либо рестарт старого таймера).
По идее, должно сработать.

Работает.
Загруженные файлы
28

» WarCraft 3 / Lua и ООП

Drulia_san, поэтому лучше погуглить решения от спецов в Lua, которые ерунду не понапишут, а потом на основе их сделать своё решение, или использовать их, если оно подходит под задачи. Чем больше погуглишь, тем лучше.
28

» WarCraft 3 / В hashtable один массив на все handle?

Хетаблица по конкретным ключам x, y может одновременно хранить значения следующих типов: real, integer, boolean, string, handle. code и nothing хранить нельзя.
28

» WarCraft 3 / Критическая ошибка в триггерах

Fly123, Reset Triggers в помощь.

DarkLigthing, мда, зачем MPQ Editor, когда в редакторе ландшафта можно Файл - Экспортировать скрипт?
28

» WarCraft 3 / Как отследить, что древо посадилось?

Принятый ответ
Тут нужно трекать все приказы юнита, если был приказ сесть, никакой приказ его не перебивал, а текущий приказ стал 0, то древо село.
28

» WarCraft 3 / Cannot find appropriate CD keys

Я выше дал ссылку на архив этой версии, она тоже требует ключи?
PT153:
28

» WarCraft 3 / Lua и ООП

который пробегает по всем созданным объектам данного "класса"
А какой ООП язык это вообще позволяет без создания массива объектов этого класса?

function Skillshot:Create (damage)
    local obj = {}
    
    setmetatable(obj, self)
    self.__index = self
	table.insert(list, obj)
    
    self.damage = damage

    return obj
end
Я не спец, но разве не у obj нужно ставить переменную damage?
28

» WarCraft 3 / Кулдаун спелов

Это с какой версии такой баг появился?
С релиза WC3.

Хотя я ошибся, такой проблемы нет.