Добавлен Kind Ram
Вот 2 триггера, которые отвечают за защиту игроков на ранних стадиях игры от крипов:
function Trig_Beasts_NoStrongAttackers_Conditions takes nothing returns boolean
set udg_map_fu=GetAttacker()
set udg_map_u2=GetAttackedUnitBJ()
if ( GetOwningPlayer(udg_map_fu)==udg_owner_creep and GetUnitLevel(udg_map_u2)<4 and udg_Player[GetConvertedPlayerId(GetOwningPlayer(udg_map_u2))]==udg_map_u2 and GetUnitTypeId(udg_map_u2)!='n00D' and m_creeptypefilter() ) then
set udg_map_fu=null
set udg_map_u2=null
return true
endif
set udg_map_fu=null
set udg_map_u2=null
return false
endfunction
function Trig_Beasts_NoStrongAttackers_Actions takes nothing returns nothing
local unit u=GetAttacker()
local location una = GetUnitLoc(u)
local real ang=GetRandomReal(0.0,359.9)
call MoveLocation(una, GetLocationX(una)+500.0*CosBJ(ang),GetLocationY(una)+500.0*SinBJ(ang))
call IssuePointOrderLocBJ( u, "move", una )
set ang=0.0
set u=null
call PolledWait( 4.0 )
call RemoveLocation( una )
set una = null
endfunction
function Trig_Beasts_StrongAttackerAggry_Conditions takes nothing returns boolean
set udg_map_fu=GetAttackedUnitBJ()
set udg_map_u2=GetAttacker()
if ( GetOwningPlayer(udg_map_fu)==udg_owner_creep and GetUnitLevel(udg_map_u2)<4 and udg_Player[GetConvertedPlayerId(GetOwningPlayer(udg_map_u2))]==udg_map_u2 and m_creeptypefilter() ) then
set udg_map_fu=null
set udg_map_u2=null
return true
endif
set udg_map_fu=null
set udg_map_u2=null
return false
endfunction
function Trig_Beasts_StrongAttackerAggry_Actions takes nothing returns nothing
local unit u=GetAttacker()
local location una = GetUnitLoc(u)
local real ang=GetUnitFacing(u)-180.0
call DisplayTextToPlayer(GetOwningPlayer(u), 0, 0, "|cffffcc00Ваше существо не может напасть на это создание.|r")
call MoveLocation(una, GetLocationX(una)+300.0*CosBJ(ang),GetLocationY(una)+300.0*SinBJ(ang))
call IssuePointOrderLocBJ( u, "move", una )
set u=null
set ang=0.0
call PolledWait( 2.5 )
call RemoveLocation( una )
set una = null
endfunction
Второй нужен чтобы игроки не злоупотребляли своим положением.
Итак триггеры однозначно работают, но только до момента получения приказа. Там они уже зависают (стоят в ступоре и ни на что не реагируют). Разбагать можно лишь, если будет вручную дан новый приказ игроком.
Также если перелопатить триггеры с события атаки на собитие каста, то юниты вполне выполняют приказ.
Можете посоветовать как обойти этот баг?
P.S. Вэйты я добавил, пытаясь найти решение проблемы методом "тыка".
Принятый ответ
В моей карте игроки вместе играют на острове "полном жизни". И если крипов по типу волка или медведя не будет на локации, то он окажется слишком уж пустым.
С координатной функцией юнит также завис.(
Решить проблему так и не смог, теперь просто тыкаю юнита-игрока в систему рывков, чтобы тот сбежал от крипа.
С координатной функцией юнит также завис.(
Решить проблему так и не смог, теперь просто тыкаю юнита-игрока в систему рывков, чтобы тот сбежал от крипа.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
С координатной функцией юнит также завис.(
Решить проблему так и не смог, теперь просто тыкаю юнита-игрока в систему рывков, чтобы тот сбежал от крипа.