Добавлен FireKnight
Есть два портала. Триггерно меняю им точки телепорта. В игре юниты вместо того, чтобы телепортироваться в эти точки, начинают просто бежать к ним. Если кто с этим сталкивался: как проблему решить?
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
Принятый ответ
Вопрос отпал. Я удалил порталам абилки "Перемещение через портал" и вернул обратно. Заработало.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
Показать
XGM Bot
4 года
0
Показать
Похожие вопросы:
- Почему в этой карте проблема с проигрыванием звука
ответ
Raised:
Поиск по всем ресурсам на сайте
3
Показать
FireKnight
4 года
3
Показать
Вопрос отпал. Я удалил порталам абилки "Перемещение через портал" и вернул обратно. Заработало.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.