Создал локалки
local unit u = GetTriggerUnit()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local location l = Location(x,y)
Обнуление l выходит сделать. А как обнулить(очищать) x и y не знаю и надо ли их вообще как-то обнулять(очищать)
подскажите пожалуйста

Обнулять локалки надо только с типом данных Handle и его производных (юниты, точки ...)
другие типы данных такие как int, real, string очищаются автоматически
Также хочу сказать что точки после использования нужно уничтожать:
call RemoveLocation(имя)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
23
Похожие вопросы:

ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Юнитов поднимает тогда же, когда и опускает, потому что я удаляю их из DedG[3], но забываю удалить из группы снарядов, таким образом, к тем кто попал под падение, уже навечно задействован акт снарядов(опускание), пока они в DedG[3]
ответ
похоже более всего на мусор, попадающий в память откуда-то извне. Обычно пропущенная строка автокаста такой фигней страдает. Нельзя точно сказать, нужно менять поля и смотреть. К счастью, описания можно менять и локально, не перепаковывая карту
ответ
Вопрос в том, что мне делать с ней при каждом новом присвоении.
Ничего
я не могу понять, глобальная она или локальная
Почитайте про локальные переменные. Статьи тоже будут полезны.
Не знаю, не понимаю, что лучше, или оба, но в какой последовательности?
Я тоже ничего не понимаю, когда не вижу кода.

25
Вроде реальные числа обнулять не надо, как помню, ибо это не объект (и не хэндл).
9
Обнулять локалки надо только с типом данных Handle и его производных (юниты, точки ...)
другие типы данных такие как int, real, string очищаются автоматически
Также хочу сказать что точки после использования нужно уничтожать:
call RemoveLocation(имя)
Принятый ответ
14
string очищаются автоматически
и да и нет
стринг это очень опасный тип, может быть даже самый опасный
если стринг переменную и можно обнулить, то нельзя обнулить память, которая была выделена под эту строку
при работе со стрингами забить оплимит можно в пару строк кода
ну а критануть вар так вообще одной строкой можно
Basically, every time you create a string that has a unique set of characters it will leak. (Note : These types of leaks are smaller than other leaks in terms of memory usage)
So if you do
Set Variable = "Hello"
Set Variable2 = "Hello"
it will only create one string leak. The reason why its leaking is that all strings in wc3 are simply pointers to the global string table. If you declare a new string, than it has to add the new string to the table if it doesn't exist. These leaks can't be cleared. In general, don't worry about it unless your processing custom chunks of strings
стоит разделять обнуление переменной и удаление объекта, на который ссылается эта переменная
если для всех объектов у нас есть функция очистки
то вот для стринга нет функции очистки
GroupClear(g)
DestroyGroup(g)
set g=null
call DisableTrigger(t)
call DestroyTrigger(t)
set t=null
call KillDestructable(d)
call RemoveDestructable(d)
set d=null
call KillUnit(u)
call RemoveUnit(u)
set u=null
call RemoveItem(it)
set it=null
call RemoveLocation(L)
set L=null
call ClearStringMemory(s) --- нет такой функции
set s=null --- переменная очищается автоматически
статьи по правильному созданию и обнулению всех типов переменных тоже нет до сих пор
38
статьи по правильному созданию и обнулению всех типов переменных тоже нет до сих пор
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.