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 класса)
а потом в статьи
и начни писать нормально
надоел слова коверкать
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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
22
call TriggerRegisterUnitEvent(t,GetTriggerUnit(),EVENT_UNIT_SPELL_FINISH)
на
call TriggerRegisterAnyUnitEventBJ(t,EVENT_UNIT_SPELL_FINISH)
вообще у тебя уже события перепутались
в триггере "SPELL ACT" было EVENT_UNIT_SPELL_EFFECT
14
я знаю что заработает но я не пойму почему это событие не работает ано что баганое или что
call TriggerRegisterUnitEvent
я не заметил все исправил
но как не работала событие так и не работает и я фиг знает как его зделать рабочим call TriggerRegisterUnitEvent
28
MATRITSA, причём тут событие?
чтобы существовал GetTriggerUnit() необходимо чтобы функция в которой он используется была вызвана по событию связанным с юнитом
функция InitTrig_SPELL_END вызывается из мейна и как следствие не содержит никакого юнита
элементарная логика же
короче сначала иди в школу (первые 4 класса)
а потом в статьи
и начни писать нормально
надоел слова коверкать
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.