например:
function Nomer1  takes unit u returns nothing
   local unit d = CreateUnit(GetOwningPlayer(u), 'hfoo, 0,0,0)
   set d=null
   set u=null
endfunction

function Nomer2  takes unit u returns nothing
   call UnitAddAbility(u, 'A000')
   set u=null
endfunction

function Nachalo takes nothing returns nothing
  local unit u = GetTriggerUnit()
  call Nomer1(u)
  call Nomer2(u)
  set u = null
endfunction
правильно ли я обнулил кастера в верхних функциях?
или там его обнулять не нужно?

AntiMage, в функциях, которые что-либо принимают обнулять принимаемые параметры не нужно. Обнулять нужно только переменные, которые созданы внутри конкретной функции, но не переданы в неё.
Тоесть в первых двух функциях обнулять кастера нет никакого смысла. Обнулять юнита d смысл есть. Получается что обнулять переменные нужно в той же функции, в которой они объявлены, но не в той, в которой они выступают в качестве принимаемых параметров.

Можешь скачать систему отлова хэндлов и проверить
`
ОЖИДАНИЕ РЕКЛАМЫ...
21
AntiMage, в функциях, которые что-либо принимают обнулять принимаемые параметры не нужно. Обнулять нужно только переменные, которые созданы внутри конкретной функции, но не переданы в неё.
Тоесть в первых двух функциях обнулять кастера нет никакого смысла. Обнулять юнита d смысл есть. Получается что обнулять переменные нужно в той же функции, в которой они объявлены, но не в той, в которой они выступают в качестве принимаемых параметров.

Можешь скачать систему отлова хэндлов и проверить
Принятый ответ
30
GF RaiseD всё верно указал, но если тебе, AntiMage, влом запоминать, что нужно нулифаить, а что не обязательно, то никто не умрёт, если ты будешь нулить все ссылочные типы.
17
смысла нулить невижу, под переменую выводиться память и еси ты обнулишь переменную типа юнит то думаю всеголишь обнуляться те значения что храняться в этой переменной но а так всеровно это дело висеть будет обнулённым
только я чтото заметил что редактор JNPG автоматом обнуляет переменные типа юнит
32
ledoed:
смысла нулить невижу, под переменую выводиться память и еси ты обнулишь переменную типа юнит то думаю всеголишь обнуляться те значения что храняться в этой переменной но а так всеровно это дело висеть будет обнулённым
только я чтото заметил что редактор JNPG автоматом обнуляет переменные типа юнит
В варкравте это дело криво сделано, пока в переменной есть что то кроме null значения, причем не важно что, пусть даже мусор ( не существующий хендл) это все дело висит в памяти и засоряет таблицу хендлов, так что таки все локалки ссылочного типа кроме аргументов функции нужно обнулять, правда есть исключения типа player,
Чтобы оставить комментарий, пожалуйста, войдите на сайт.