1

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

Hate:
И не могу понять, где ошибка
1 - используют дебаг
2 - поясняют что за ошибка и что делалось что бы ее избежать, экстрасенсы в отпуске
Уже не нужно XD
1

» WarCraft 3 / Hashtable - работаем с хеш-таблицей

Попробовал переделать триггер под перемещение юнита
function Move takes nothing returns nothing
	local timer t = GetExpiredTimer()
	local integer h = GetHandleId(t)
	local unit caster = LoadUnitHandle(udg_hash,h,1)
	local integer counter = LoadInteger(udg_hash,h,2)

	if counter>0 then
		call SetUnitFacingToFaceLocTimed(caster, GetSpellTargetLoc(),0)
		call SetUnitPositionLoc(caster,PolarProjectionBJ(GetUnitLoc(caster),40.00,0))
		call SaveInteger(udg_hash,h,2,counter-1)
	else
		call DestroyTimer(t)
		call FlushChildHashtable(udg_hash,h)
	endif

	set caster = null
	set t = null
endfunction

function Dash takes nothing returns nothing
	local unit caster = GetSpellAbilityUnit()
	local timer t = CreateTimer()
	local integer h = GetHandleId(t)
	call SaveUnitHandle(udg_hash,h,1,caster)
	call SaveInteger(udg_hash,h,2,125)

	call TimerStart(t,0.04,true, function Move)

	set caster = null
	set t = null
endfunction

function SpellCond takes nothing returns boolean
	return GetSpellAbilityId()=='AEbl'
endfunction

//===========================================================================
function InitTrig_Dash takes nothing returns nothing
	set gg_trg_Dash = CreateTrigger(  )
	call TriggerRegisterAnyUnitEventBJ( gg_trg_Dash, EVENT_PLAYER_UNIT_SPELL_EFFECT )
	call TriggerAddCondition( gg_trg_Dash,Condition(function SpellCond))
	call TriggerAddAction( gg_trg_Dash, function Dash )
	set udg_hash = InitHashtable()
endfunction
И не могу понять, где ошибка (я нубло), если убрать элемент если/тогда/инчае функции Move, и без подсчета целочисленной, то юнит двигается, но бесконечно, пока не упрется в край карты. Подскажите, что здесь нужно исправить?