function InitTrig_SPELL_END takes nothing returns nothing
local trigger t = CreateTrigger()
local integer i = 0
loop
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_FINISH, null)
set i = i + 1
exitwhen i == GetPlayerId(GetOwningPlayer(GetTriggerUnit()))
endloop
call TriggerAddAction(t, function SPELL_END )
set t = null
endfunction

MATRITSA, причём тут событие?
чтобы существовал GetTriggerUnit() необходимо чтобы функция в которой он используется была вызвана по событию связанным с юнитом
функция InitTrig_SPELL_END вызывается из мейна и как следствие не содержит никакого юнита
элементарная логика же
короче сначала иди в школу (первые 4 класса)
а потом в статьи
и начни писать нормально
надоел слова коверкать
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
14
ошыпки в этом тригере нету просто способности у юнитов не активируюца
22
function InitTrig_SPELL_ACT takes nothing returns nothing
local trigger t = CreateTrigger()
local unit u = GetTriggerUnit() // Вот это вот что такое?
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_FINISH) //  на кого у тебя событие создается? юнит не существует, события на него не создастся, конечно отслеживаться не будет
call TriggerAddAction(t, function SPELL_ACT )
set t = null
set u = null
endfunction
14
хочеш сказать нужно нижы
call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_FINISH)
или
call TriggerRegisterUnitEvent(t,GetTriggerUnit() ,EVENT_UNIT_SPELL_FINISH) так
я думал тригер создаст
не нифига всеравно не кастуюца
22
function InitTrig_SPELL_ACT takes nothing returns nothing
    set gg_trg_SPELL_ACT = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_SPELL_ACT, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddAction( gg_trg_SPELL_ACT, function Trig_SPELL_ACT_Actions )
endfunction
.
function InitTrig_SPELL_END takes nothing returns nothing
    set gg_trg_SPELL_END = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_SPELL_END, EVENT_PLAYER_UNIT_SPELL_FINISH )
    call TriggerAddAction( gg_trg_SPELL_END, function Trig_SPELL_END_Actions )
endfunction
обычная генерация событий из ГУИ, зачем там было что-то менять?
14
call TriggerRegisterAnyUnitEventBJ по сикрету вот это
function InitTrig_SPELL_END takes nothing returns nothing
local trigger t = CreateTrigger()
local integer i = 0
loop
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_FINISH, null)
set i = i + 1
exitwhen i == 10
endloop
call TriggerAddAction(t, function SPELL_END )
set t = null
endfunction
развернутый врянт вот этого call TriggerRegisterAnyUnitEventBJ
и ана переберает по цыклу и выдает юнита и плеира а мне плеер не нужен тока юнит
22
не, вот он развернутый
никаких GetPlayerId(GetOwningPlayer(GetTriggerUnit())) там нету
Загруженные файлы
14
да я знаю изначалино у меня 10 там стояло
все работала а я добавил вот это и стала не работати GetPlayerId(GetOwningPlayer(GetTriggerUnit())) почему кто знает
22
назад поменяй
неработает потому что не сушествует GetTriggerUnit() этот момент
14
я могу поменять но мне нужно выеснение причины не работы для оптимизацые
22
Если ты хочешь создавать событие только для юнитов, у которых есть нужная абилка, делай это отдельным триггером отслеживая вход юнита на карту, а не в инициализации этого триггера.
Но все равно это все ерунда, просто поменяй назад как было, не надо ломать то что работает. Эти события не нужно оптимизировать.
14
хорошо но это не есить обезателино если нету кучю взоимосвязаного кода у меня само событие не пашет
function F_SPELL_ACT takes nothing returns nothing
if ( IsUnitInGroup(GetTriggerUnit(), udg_OtratALL[94]) == false ) {
SpellLink.execute(GetSpellAbilityId(), 0)
set udg_TrigerUnit = GetTriggerUnit()
set udg_IndexPlayer = GetUnitUserData(udg_TrigerUnit)
call DisplayTextToForce( GetPlayersAll(), I2S(udg_IndexPlayer) ) Вот Эта часить кода не выполяеца
}
endfunction
===========================================================================
function SPELL_ACT takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterUnitEvent(t,GetTriggerUnit(),EVENT_UNIT_SPELL_FINISH)
call TriggerAddAction(t, function F_SPELL_ACT )
set t = null
endfunction
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.