local real Strike_angle=bj_RADTODEG*Atan2(GetUnitY(GetEventTargetUnit())-GetUnitY(GetTriggerUnit()),GetUnitX(GetEventTargetUnit())-GetUnitX(GetTriggerUnit()))
local real Target_angle=GetUnitFacing(GetEventTargetUnit())
if (Target_angle-Strike_angle)*(Target_angle-Strike_angle)<4000 then
call UnitAddAbility(GetTriggerUnit(),'A006')
else
call UnitRemoveAbility(GetTriggerUnit(),'A006')
endif
endfunction
local real Strike_angle=bj_RADTODEG*Atan2(GetUnitY(GetEventTargetUnit())-GetUnitY(GetTriggerUnit()),GetUnitX(GetEventTargetUnit())-GetUnitX(GetTriggerUnit()))
这个就是两单位间角度
local real Target_angle=GetUnitFacing(GetEventTargetUnit())
这个是单位面向角度
if (Target_angle-Strike_angle)*(Target_angle-Strike_angle)<4000 then
如果这两个角度的差的平方小于4000,就是两角差小于20,那么就做后续动作