return udg_Globals_Unit_1
//返回 单位udg_Globals_Unit_1
endfunction
function TouZhi_Main takes nothing returns boolean
//已完成
local trigger t=GetTriggeringTrigger()
//创建局部触发器变量t 并使之= 执行这个函数的触发器
local string MissionKey=(I2S(H2I((t))))
//创建局部字符串变量MissionKey 并使之=将触发器t的地址转化为字符串
local integer ExecuteTimes=GetTriggerEvalCount(t)
//定义局部整数变量ExecuteTimes 并使之=触发器t的条件的执行次数
local unit U1=GetUnit(MissionKey,"Hero")
//创建局部单位变量U1 并使之=从游戏缓存udg_GC MissionKey项目 的"Hero"类别中 读取的单位
local unit U=GetUnit(MissionKey,"Source")
//创建局部单位变量U 并使之=从游戏缓存udg_GC MissionKey项目 的"Source"类别中 读取的单位
local integer TargetIndex=(GetStoredInteger(udg_GC,(MissionKey),("TargetIndex")))
//定义局部整数变量TargetIndex 并使之=从游戏缓存udg_GC MissionKey项目 的"TargetIndex"类别中 读取的整数
local unit U2=GetHashUnitFromIndex(TargetIndex)
//创建局部单位变量U2 并使之=从哈希表的TargetIndex整数位中读取的单位
local real x0=(GetStoredReal(udg_GC,(MissionKey),("x0")))
//定义局部实数变量x0 并使之=从游戏缓存udg_GC MissionKey项目 的"x0"类别中 读取的实数
local real y0=(GetStoredReal(udg_GC,(MissionKey),("y0")))
//定义局部实数变量y0 并使之=从游戏缓存udg_GC MissionKey项目 的"y0"类别中 读取的实数
local real x1=GetUnitX(U1)
//定义局部实数变量x1 并使之= 单位U1的X坐标
local real y1=GetUnitY(U1)
//定义局部实数变量y1 并使之= 单位U1的Y坐标
local real x2=GetUnitX(U2)
//定义局部实数变量x2 并使之= 单位U2的X坐标
local real y2=GetUnitY(U2)
//定义局部实数变量y2 并使之= 单位U2的Y坐标
local real Angle
//定义局部实数变量Angle
local real Distance
//定义局部实数变量Distance
local real DistancePerTime
//定义局部实数变量DistancePerTime
local real Height
//定义局部实数变量Height
local real x
//定义局部实数变量x
local real y
//定义局部实数变量y
local location l
//定义局部点变量l
if SquareRootBetweenDistance(x0,y0,x2,y2)>1000 then
//如果 点(x0,y0)和点(x2,y2)之间的距离>1000 则
set x2=x0
//设置x2=x2
set y2=y0
//设置y2=y0
endif
set Angle=GetDegreeCustom(x1,y1,x2,y2)
//设置Angle= 点(x1,y1)和点(x2,y2)之间的角度
set Distance=SquareRootBetweenDistance(x1,y1,x2,y2)
//设置Distance= 点(x1,y1)和点(x2,y2)之间的距离
set DistancePerTime=Distance/ IMaYAJ((51-ExecuteTimes),1)
//设置DistancePerTime= Distance/(51-ExecuteTimes和1之间的最大值)
set Height=(ExecuteTimes-25)*(ExecuteTimes-25)
//设置Height= (ExecuteTimes-25)*(ExecuteTimes-25)
set x=x1+DistancePerTime*Cos(Angle*bj_DEGTORAD)
//设置x= x1 + DistancePerTime*Cos(Angle)
set y=y1+DistancePerTime*Sin(Angle*bj_DEGTORAD)
//设置y= y1 + DistancePerTime*Sin(Angle)
if ExecuteTimes<51 then
//如果 ExecuteTimes<51 则
if TouZhi_ShiLongQiShi(U)==false then
//如果 单位U的单位类型不是"变身以后的龙骑士" 则
call SetUnitFlyHeight(U,775-Height,0)
//设置单位U的飞行高度为775-Height
endif
call SetUnitPosition(U,x,y)
//设置单位U的位置为(x,y)
else
//否则
if TouZhi_ShiLongQiShi(U)==false then
//如果 单位U的单位类型不是"变身以后的龙骑士" 则
call SetUnitFlyHeight(U,GetUnitDefaultFlyHeight(U),0)
//设置单位U的飞行高度为默认飞行高度
endif
call PauseUnit(U,false)
//恢复暂停单位U
call SetUnitPathing(U,true)
//打开单位U的碰撞
call SetUnitPosition(U,x2,y2)
//设置单位U的坐标为(x2,y2)
call StoreInteger(udg_GC,((I2S(H2I(((U)))))),("state"+("Tossed")),(2))
//在游戏缓存udg_GC的 将单位U的地址转化为字符串的项目 的"state"+"Tossed"类别中 存入整数:2
set l=Location(x2,y2)
//设置点l= 点(x2,y2)
call TerrainDeformationRippleBJ(0.2,true,l,1.00,300.00,96.00,1,64.00)
//创建一个持续0.2秒的波纹形态在点l 开始半径:1 结束半径:300 深度:96 周期:1秒 波间距:64
call RemoveLocation(l)
//清除点l
call DestroyEffect(GetEffect(MissionKey,"FX"))
//删除 从游戏缓存udg_GC MissionKey项目 的"FX"类别中 读取的特殊效果
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl",GetUnitX(U1),GetUnitY(U1)))
//在单位U1的位置创建<战争践踏(施法者)>的特殊效果 并在播放一次后删除
if IsUnitAlly(U,GetOwningPlayer(U1))then
//如果 单位U和单位U1所属的玩家处于同盟状态 则
call UnitDamageTargetCustom(U1,U,1,0.2*75*GetUnitAbilityLevel(U1,'A0BZ'))
//使单位U1对单位U造成d1点伤害 攻击类型:法术 伤害类型:火焰
//其中d1= 0.2*75*单位U1的"投掷"的技能等级
else
//否则
call UnitDamageTargetCustom(U1,U,1,(0.2+0.15*GetUnitAbilityLevel(U1,'A0CY'))*75*GetUnitAbilityLevel(U1,'A0BZ'))
//使单位U1对单位U造成d2点伤害 攻击类型:法术 伤害类型:火焰
//其中d2= (0.2+单位U1的"长大"的技能等级)*75*单位U1的"投掷"的技能等级
endif
call KillDestructablesInRect(x2,y2,300)
//杀死点(x2,y2)周围300范围的可破坏物
call TouZhi_Group_Pick(U1,x2,y2,300,75*GetUnitAbilityLevel(U1,'A0BZ'))
//执行函数TouZhi_Group_Pick(单位U1,x2,y2,300,75*单位U1的"投掷"的技能等级)