23 jun
2022
2022
Функция не возвращает unit
Added by NatriYФункция не возвращает юнита. Снизу код с самой функцией и там, где она вызывается. В самой функции юнит есть, а в возвращённом значении уже нет. В чем проблема?
static method getFreePlayerCircle takes int playerid returns unit
int j = 0
unit u = null
loop
exitwhen j == 8
u = playerCircles[playerid][j]
if GetUnitUserData(u) == 0{
BJDebugMsg("inside "+I2S(GetHandleId(u)))
return u
}
j += 1
endloop
return null
endmethod
unit playerCircle = getFreePlayerCircle(playerid)
BJDebugMsg("outside: "+I2S(GetHandleId(playerCircle)))
addUnitToPlayerCircle(spell_u, playerCircle)
На скрине срабатывание этого кода.
Answer
компилятор зачищает утечку обнуляя локалку перед ретурном, возвращай результат через глобалку
Views: 72
XGM Bot
XGM Bot
МрачныйВорон
МрачныйВорон
Блог
Проекты :
и снаружи unit playerCircle = getFreePlayerCircle(playerid)
а ну да, все норм вроде бы, показалось что одноименные заюзаны
biridius
biridius
Hate
Hate
Блог
Проекты :
Phase Killer (Астральный убийца)
Rock Hero
God's word: The True Way
Warcraft Combat Remake
WarCraft 3
Castle Revival
Dune the Endless Wars
ScorpioT1000
ScorpioT1000
Блог
Проекты :
ТТМФ
Музыка и Звук
WarCraft 3
World of WarCraft
Space Engineers
Cyberpunk 2077