Насколько оправдано писать код из triggeraction в triggercondition?
Ведь, когда запускается функция triggeraction, может создаваться куча локальных переменных и их инициализация.
function Actions takes nothing returns nothing
local unit caster = GetSpellAbilityUnit( )
local real casterX = GetUnitX( caster )
local real casterY = GetUnitY( caster )
local int spell = GetSpellAbilityId( )
...
endfunction
А если перенести всё это в функцию triggercondition, придётся инициализировать все
локальные переменные даже в тех случаях, когда triggercondition возвращает false.
локальные переменные даже в тех случаях, когда triggercondition возвращает false.
function Conditions takes nothing returns boolean
local unit caster = GetSpellAbilityUnit( )
local real casterX = GetUnitX( caster )
local real casterY = GetUnitY( caster )
local int spell = GetSpellAbilityId( )
...
if ( conditions ) then
...
endif
return false
endfunction
Да, конечно, можно просто объявить локальные переменные без инициализации, а инициализировать их уже после того, как условие будет выполнено, но насколько это оправдано?
function Conditions takes nothing returns boolean
local unit caster
local real casterX
local real casterY
local int spell
...
if ( conditions ) then
set caster = GetSpellAbilityUnit( )
set casterX = GetUnitX( caster )
set casterY = GetUnitY( caster )
set spell = GetSpellAbilityId( )
...
endif
return false
endfunction
Отредактирован scopterectus
quq_CCCP: