Сделал таймер, который после ожидания приказывает юнитам использовать таунт, но он не работает, почему?
function Trig_Pet_death_1_Func001A takes nothing returns nothing
    call IssueImmediateOrderBJ( GetEnumUnit(), "taunt" )
endfunction

function smert takes nothing returns nothing
    local timer t = GetExpiredTimer()
    call ForGroupBJ( GetUnitsOfPlayerAll(GetOwningPlayer(GetTriggerUnit())), function Trig_Pet_death_1_Func001A )
endfunction

function Trig_Pet_death_1_Actions takes nothing returns nothing
    local timer t = CreateTimer()
    local integer id = GetHandleId(t)
    call TimerStart(t, 1.00, false, function smert)
endfunction

вот почему не работает:
function smert takes nothing returns nothing
    local timer t = GetExpiredTimer()
    call ForGroupBJ( GetUnitsOfPlayerAll(GetOwningPlayer(GetTriggerUnit())), function Trig_Pet_death_1_Func001A )
endfunction
Сюда не передан GetTriggerUnit(), его нужно привязать на хендл таймера через хештаблицу
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
32
Нет почитать статьи то, каждый раз приходится объяснять людям как работает таймер и хештаблица, и что как вы делали в гуи уже не получится.
33
вот почему не работает:
function smert takes nothing returns nothing
    local timer t = GetExpiredTimer()
    call ForGroupBJ( GetUnitsOfPlayerAll(GetOwningPlayer(GetTriggerUnit())), function Trig_Pet_death_1_Func001A )
endfunction
Сюда не передан GetTriggerUnit(), его нужно привязать на хендл таймера через хештаблицу
Принятый ответ
38
А можно было просто сделать замыкание на lua)
33
Вот тоже самое на lua, не планируете перейти?
function Trig_Pet_death_1_Actions()
	local u=GetTriggerUnit()
	TimerStart(CreateTimer(), 1.00, false, function()
		ForGroupBJ( GetUnitsOfPlayerAll(GetOwningPlayer(u)), function()
			IssueImmediateOrderBJ(GetEnumUnit(), "taunt" )
		end)
	end)
end

нет хештаблиц, нет хендлов, нет обнулений, ну я забыл дописать DestroyTimer и сама ForGroupBJ плоха, но не важно
2
GetTriggerUnit() вернёт null - нужно передать игрока через хэш или указать конкретного.
12
Bergi_Bear:
Вот тоже самое на lua, не планируете перейти?
function Trig_Pet_death_1_Actions()
	local u=GetTriggerUnit()
	TimerStart(CreateTimer(), 1.00, false, function()
		ForGroupBJ( GetUnitsOfPlayerAll(GetOwningPlayer(u)), function()
			IssueImmediateOrderBJ(GetEnumUnit(), "taunt" )
		end)
	end)
end

нет хештаблиц, нет хендлов, нет обнулений, ну я забыл дописать DestroyTimer и сама ForGroupBJ плоха, но не важно
А где найти туториалы по Луа?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.