Есть два портала. Триггерно меняю им точки телепорта. В игре юниты вместо того, чтобы телепортироваться в эти точки, начинают просто бежать к ним. Если кто с этим сталкивался: как проблему решить?
function Trig_GulDanAbility_R_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A01C' ) ) then
        return false
    endif
    return true
endfunction

function Trig_GulDanAbility_R_Actions takes nothing returns nothing
    local unit port1 = LoadUnitHandle(udg_Hash,'A01C',1)
    local unit port2 = LoadUnitHandle(udg_Hash,'A01C',2)
    local integer stap = LoadInteger(udg_Hash,'A01C',3)
    local real x = GetSpellTargetX()
    local real y = GetSpellTargetY()
    
    if stap == 0 then
        set stap = 1
    elseif stap == 1 then
        set stap = 0
    endif
    
    if stap == 1 then
        if IsTerrainPathable(x,y,PATHING_TYPE_WALKABILITY) then
            set stap = 0
        elseif IsTerrainPathable(x-32,y,PATHING_TYPE_WALKABILITY) then
            set stap = 0
        elseif IsTerrainPathable(x+32,y,PATHING_TYPE_WALKABILITY) then
            set stap = 0
        elseif IsTerrainPathable(x,y-32,PATHING_TYPE_WALKABILITY) then
            set stap = 0
        elseif IsTerrainPathable(x,y+32,PATHING_TYPE_WALKABILITY) then
            set stap = 0
        else
            if port1 == null then
                set port1 = CreateUnit(GetOwningPlayer(GetSpellAbilityUnit()),'h00I',x,y,270)
                call SaveUnitHandle(udg_Hash,'A01C',1,port1)
            endif
            
            call SetUnitPositionLoc(port1,Location(x,y))
        endif
    elseif stap == 0 then
        if IsTerrainPathable(x,y,PATHING_TYPE_WALKABILITY) then
            set stap = 1
        elseif IsTerrainPathable(x -32,y,PATHING_TYPE_WALKABILITY) then
            set stap = 1
        elseif IsTerrainPathable(x+32,y,PATHING_TYPE_WALKABILITY) then
            set stap = 1
        elseif IsTerrainPathable(x,y-32,PATHING_TYPE_WALKABILITY) then
            set stap = 1
        elseif IsTerrainPathable(x,y+32,PATHING_TYPE_WALKABILITY) then
            set stap = 1
        else
            if port2 == null then
                set port2 = CreateUnit(GetOwningPlayer(GetSpellAbilityUnit()),'h00I',x,y,270)
                call SaveUnitHandle(udg_Hash,'A01C',2,port2)
            endif
            
            call SetUnitPositionLoc(port2,Location(x,y))
        endif
    endif
    
    call SaveInteger(udg_Hash,'A01C',3,stap)
    
    if port1 != null and port2 != null then
        call WaygateActivate(port1,true)
        call WaygateActivate(port2,true)
        
        call MoveRectTo(gg_rct_GulDan_portal1,GetUnitX(port2),GetUnitY(port2))
        call MoveRectTo(gg_rct_GulDan_portal2,GetUnitX(port1),GetUnitY(port1))
        
        call WaygateSetDestination( port1,GetRectCenterX(gg_rct_GulDan_portal1),GetRectCenterY(gg_rct_GulDan_portal1))
        call WaygateSetDestination( port2,GetRectCenterX(gg_rct_GulDan_portal2),GetRectCenterY(gg_rct_GulDan_portal2))
    endif
    
    set port1 = null
    set port2 = null
endfunction

//===========================================================================
function InitTrig_GulDanAbility_R takes nothing returns nothing
    set gg_trg_GulDanAbility_R = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_GulDanAbility_R, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_GulDanAbility_R, Condition( function Trig_GulDanAbility_R_Conditions ) )
    call TriggerAddAction( gg_trg_GulDanAbility_R, function Trig_GulDanAbility_R_Actions )
endfunction

Вопрос отпал. Я удалил порталам абилки "Перемещение через портал" и вернул обратно. Заработало.
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.

1
Вопрос отпал. Я удалил порталам абилки "Перемещение через портал" и вернул обратно. Заработало.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.