|
发表于 2011-6-12 16:57:18
|
显示全部楼层
并没有直接的办法获得单位移动的距离,你只能对比单位的坐标变化来获得单位的移动情况。
但是如果使用这样的方法,就会造成“闪烁”和“传送”以及“触发移动”都会记入移动记录的问题。
为了解决这个问题,我们可以加入判断条件,并减少对比判断的时间间隔,用之来减少误判。
单位的移动速度,代表单位在移动时每秒移动的距离,因此通过对比移动的距离和移动速度。
就可以基本上不会出现误差的判断出单位是在普通移动,还是在通过技能或触发移动了嗯嗯。
[trigger]Test
    事件
        时间 - 每 0.01 秒触发事件
    条件
    动作
        设置 Unit = 血魔法师 0001 <预设>
        设置 Location_B = (Unit 的位置)
        设置 Real_B = (Location_A 和 Location_B 之间的距离)
        点 - 清除 Location_A
        设置 Location_A = Location_B
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                Real_B 小于 (((Unit 的当前移动速度) / 100.00) + 1.00)
                Real_B 大于 (((Unit 的当前移动速度) / 100.00) - 1.00)
            Then - 动作
                设置 Real_A = (Real_A + Real_B)
            Else - 动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                Real_A 大于 3000.00
            Then - 动作
                设置 Real_A = 0.00
                特殊效果 - 创建并绑定特效到 origin 对 Unit ,使用模型: Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl
                特殊效果 - 删除 (最后创建的特效)
            Else - 动作
[/trigger]
Move.w3x
(10 KB, 下载次数: 5)
|
|