Почему "канал" перестаёт работать при удалении другого?
При применении способность удаляется триггером, после чего нельзя активировать другие способности на основе канала.
Сбрасывается при применении обычных способностей.

Лучший ответ:
Неправильное событие - канал удаляется слишком рано, в результате и возникает это залипание.



Просмотров: 168

PT153 #1 - 2 месяца назад 0
У всех способностей одинаков ID приказа?
SNART #2 - 2 месяца назад 0
PT153, разный.
pro100master #3 - 2 месяца назад 0
код в студию
SNART #4 - 2 месяца назад (отредактировано ) 0
pro100master, и весь код, два варианта.
» Конверт GUI
Чего-то не подсвечивается...
function Trig_AAA_Func001C takes nothing returns boolean
    if ( ( GetSpellAbilityId() == 'A05Y' ) ) then
        return true
    endif
    if ( ( GetSpellAbilityId() == 'A05X' ) ) then
        return true
    endif
    if ( ( GetSpellAbilityId() == 'A083' ) ) then
        return true
    endif
    return false
endfunction

function Trig_AAA_Conditions takes nothing returns boolean
    if ( not Trig_AAA_Func001C() ) then
        return false
    endif
    return true
endfunction

function Trig_AAA_Actions takes nothing returns nothing
    set bj_forLoopAIndex = 10
    set bj_forLoopAIndexEnd = 12
    loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        call UnitRemoveAbilityBJ( udg_A_JukSposobnTip[GetForLoopIndexA()], udg_A_JukIgrokaUnit[GetConvertedPlayerId(GetTriggerPlayer())] )
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
    endloop
    call SetPlayerAbilityAvailableBJ( false, 'A07W', ConvertedPlayer(GetConvertedPlayerId(GetTriggerPlayer())) )
endfunction

//===========================================================================
function InitTrig_AAA takes nothing returns nothing
    set gg_trg_AAA = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_AAA, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_AAA, Condition( function Trig_AAA_Conditions ) )
    call TriggerAddAction( gg_trg_AAA, function Trig_AAA_Actions )
endfunction
function Trig_BBB_Func002Func002Func003C takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A083' ) ) then
        return false
    endif
    return true
endfunction

function Trig_BBB_Func002Func002C takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A05X' ) ) then
        return false
    endif
    return true
endfunction

function Trig_BBB_Func002C takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A05Y' ) ) then
        return false
    endif
    return true
endfunction

function Trig_BBB_Actions takes nothing returns nothing
    if ( Trig_BBB_Func002C() ) then
        call UnitRemoveAbilityBJ( udg_A_JukSposobnTip[10], udg_A_JukIgrokaUnit[1] )
    else
        if ( Trig_BBB_Func002Func002C() ) then
            call UnitRemoveAbilityBJ( udg_A_JukSposobnTip[11], udg_A_JukIgrokaUnit[1] )
        else
            if ( Trig_BBB_Func002Func002Func003C() ) then
                call UnitRemoveAbilityBJ( udg_A_JukSposobnTip[12], udg_A_JukIgrokaUnit[1] )
            else
            endif
        endif
    endif
    call SetPlayerAbilityAvailableBJ( false, 'A07W', ConvertedPlayer(GetConvertedPlayerId(GetTriggerPlayer())) )
endfunction

//===========================================================================
function InitTrig_BBB takes nothing returns nothing
    set gg_trg_BBB = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_BBB, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddAction( gg_trg_BBB, function Trig_BBB_Actions )
endfunction
Прикрепленные файлы
prog #5 - 2 месяца назад 1   

Неправильное событие - канал удаляется слишком рано, в результате и возникает это залипание.
SNART #6 - 2 месяца назад (отредактировано ) 0
prog, решено - сменой времени подготовки заклинания с 0.00 до 0.01 сек.
PT153 #7 - 2 месяца назад 0
SNART, надо поставить событие "юнит прекращает применять способность".
quq_CCCP #8 - 2 месяца назад 0
А есть смысл удалять, когда можно просто скрывать для игрока.