找回密码
 点一下
查看: 1495|回复: 2

在这个触发中If的语句有什么作用?

[复制链接]
发表于 2010-8-13 13:31:37 | 显示全部楼层 |阅读模式
[trigger]BladeMaster_01
    事件
        单位 - 任意单位 发动技能效果
    条件
        (施放技能) 等于 横扫千军
    动作
        Set BladeMaster_ang[0] = 0
        Set BladeMaster_Unit[0] = (触发单位)
        Set BladeMaster_Unit[1] = (技能施放目标)
        单位 - 删除 BladeMaster_Unit[0] 的 后发制人
        Set BladeMaster_XY[0] = (从BladeMaster_Unit[0]到BladeMaster_Unit[1]的角度 )
        Set BladeMaster_XY[1] = (从BladeMaster_Unit[0]到BladeMaster_Unit[1]的距离 )
        Set BladeMaster_XY[2] = (BladeMaster_Unit[0] 所在X轴坐标)
        Set BladeMaster_XY[3] = (BladeMaster_Unit[0] 所在Y轴坐标)
        Set BladeMaster_Unit[2] = (新建 (BladeMaster_Unit[0] 的所有者) 的 剑圣影子 在(BladeMaster_XY[2],BladeMaster_XY[3]),面向角度:BladeMaster_XY[0] 度)
        Set BladeMaster_XY[4] = 33.00
        单位 - 暂停 BladeMaster_Unit[0]
        单位 - 设置 BladeMaster_Unit[0] 关闭 碰撞
        动画 - 播放 BladeMaster_Unit[2] 的 attack slam 动作
        动画 - 播放 BladeMaster_Unit[0] 的 stand victory 动作
        动画 - 改变 BladeMaster_Unit[2]  的颜色比例: (100.00%, 100.00%, 100.00%),透明度: 0.00%
        动画 - 改变 BladeMaster_Unit[0]  的颜色比例: (100.00%, 100.00%, 100.00%),透明度: BladeMaster_XY[4]%
        动画 - 改变 BladeMaster_Unit[2] 的动画播放速度为正常速度的 2.00 倍
        计时器 - 启动 BladeMaster_Timer[0],应用计时方式: 循环,计时周期为 0.01 秒
[/trigger]

[trigger]
BladeMaster_02
    事件
        时间 - BladeMaster_Timer[0] 到期
    条件
    动作
        Set BladeMaster_ang[0] = (BladeMaster_ang[0] + 1)
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 运作)
            If - 条件
                BladeMaster_ang[0] 小于 50
            Then - 动作
                Set BladeMaster_XY[0] = (从BladeMaster_Unit[2]到BladeMaster_Unit[1]的角度 )
                Set BladeMaster_XY[1] = (从BladeMaster_Unit[2]到BladeMaster_Unit[1]的距离 )
                Set BladeMaster_XY[2] = (BladeMaster_Unit[2] 所在X轴坐标)
                Set BladeMaster_XY[3] = (BladeMaster_Unit[2] 所在Y轴坐标)
                Set BladeMaster_XY[2] = (BladeMaster_XY[2] + ((((转换 BladeMaster_ang[0] 为实数) / 99.00) x BladeMaster_XY[1]) x (Cos(BladeMaster_XY[0]))))
                Set BladeMaster_XY[3] = (BladeMaster_XY[3] + ((((转换 BladeMaster_ang[0] 为实数) / 99.00) x BladeMaster_XY[1]) x (Sin(BladeMaster_XY[0]))))
                单位 - 设置 BladeMaster_Unit[2] 的X坐标为 BladeMaster_XY[2]
                单位 - 设置 BladeMaster_Unit[2] 的Y坐标为 BladeMaster_XY[3]
                单位 - 设置 BladeMaster_Unit[2] 的面向角度为 BladeMaster_XY[0] 度
            Else - 动作
                不做任何动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 运作)
            If - 条件
                BladeMaster_ang[0] 等于 50
            Then - 动作
                单位 - 删除 BladeMaster_Unit[2]
                Set BladeMaster_XY[2] = (BladeMaster_Unit[1] 所在X轴坐标)
                Set BladeMaster_XY[3] = (BladeMaster_Unit[1] 所在Y轴坐标)
                特殊效果 - 删除 (新建特效 Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl 在(BladeMaster_XY[2],BladeMaster_XY[3])处)
                单位 - 命令 BladeMaster_Unit[0] 对 BladeMaster_Unit[1] 造成 100.00 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 魔法 装甲类型: 无
                Set BladeMaster_XY[2] = (BladeMaster_Unit[0] 所在X轴坐标)
                Set BladeMaster_XY[3] = (BladeMaster_Unit[0] 所在Y轴坐标)
                Set BladeMaster_XY[0] = (从BladeMaster_Unit[0]到BladeMaster_Unit[1]的角度 )
                Set BladeMaster_Unit[2] = (新建 (BladeMaster_Unit[0] 的所有者) 的 剑圣影子 在(BladeMaster_XY[2],BladeMaster_XY[3]),面向角度:BladeMaster_XY[0] 度)
                Set BladeMaster_XY[4] = 66.00
                动画 - 改变 BladeMaster_Unit[2]  的颜色比例: (100.00%, 100.00%, 100.00%),透明度: 0.00%
                动画 - 播放 BladeMaster_Unit[2] 的 attack slam 动作
                动画 - 改变 BladeMaster_Unit[2] 的动画播放速度为正常速度的 2.00 倍
                动画 - 改变 BladeMaster_Unit[0]  的颜色比例: (100.00%, 100.00%, 100.00%),透明度: BladeMaster_XY[4]%
            Else - 动作
                不做任何动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 运作)
            If - 条件
                BladeMaster_ang[0] 大于 50
                BladeMaster_ang[0] 小于 100
            Then - 动作
                Set BladeMaster_XY[0] = (从BladeMaster_Unit[2]到BladeMaster_Unit[1]的角度 )
                Set BladeMaster_XY[1] = (从BladeMaster_Unit[2]到BladeMaster_Unit[1]的距离 )
                Set BladeMaster_XY[2] = (BladeMaster_Unit[2] 所在X轴坐标)
                Set BladeMaster_XY[3] = (BladeMaster_Unit[2] 所在Y轴坐标)
                Set BladeMaster_XY[2] = (BladeMaster_XY[2] + (((((转换 BladeMaster_ang[0] 为实数) - 50.00) / 99.00) x BladeMaster_XY[1]) x (Cos(BladeMaster_XY[0]))))
                Set BladeMaster_XY[3] = (BladeMaster_XY[3] + (((((转换 BladeMaster_ang[0] 为实数) - 50.00) / 99.00) x BladeMaster_XY[1]) x (Sin(BladeMaster_XY[0]))))
                单位 - 设置 BladeMaster_Unit[2] 的X坐标为 BladeMaster_XY[2]
                单位 - 设置 BladeMaster_Unit[2] 的Y坐标为 BladeMaster_XY[3]
                单位 - 设置 BladeMaster_Unit[2] 的面向角度为 BladeMaster_XY[0] 度
            Else - 动作
                不做任何动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 运作)
            If - 条件
                BladeMaster_ang[0] 等于 100
            Then - 动作
                单位 - 删除 BladeMaster_Unit[2]
                Set BladeMaster_XY[2] = (BladeMaster_Unit[1] 所在X轴坐标)
                Set BladeMaster_XY[3] = (BladeMaster_Unit[1] 所在Y轴坐标)
                特殊效果 - 删除 (新建特效 Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl 在(BladeMaster_XY[2],BladeMaster_XY[3])处)
                单位 - 命令 BladeMaster_Unit[0] 对 BladeMaster_Unit[1] 造成 100.00 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 魔法 装甲类型: 无
                Set BladeMaster_XY[2] = (BladeMaster_Unit[0] 所在X轴坐标)
                Set BladeMaster_XY[3] = (BladeMaster_Unit[0] 所在Y轴坐标)
                Set BladeMaster_XY[0] = (从BladeMaster_Unit[0]到BladeMaster_Unit[1]的角度 )
                Set BladeMaster_Unit[2] = BladeMaster_Unit[0]
                Set BladeMaster_XY[4] = 0.00
                动画 - 改变 BladeMaster_Unit[2]  的颜色比例: (100.00%, 100.00%, 100.00%),透明度: 0.00%
                动画 - 播放 BladeMaster_Unit[2] 的 attack slam 动作
                动画 - 改变 BladeMaster_Unit[2] 的动画播放速度为正常速度的 2.00 倍
                动画 - 改变 BladeMaster_Unit[0]  的颜色比例: (100.00%, 100.00%, 100.00%),透明度: BladeMaster_XY[4]%
            Else - 动作
                不做任何动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 运作)
            If - 条件
                BladeMaster_ang[0] 大于 100
                BladeMaster_ang[0] 小于 150
            Then - 动作
                Set BladeMaster_XY[0] = (从BladeMaster_Unit[2]到BladeMaster_Unit[1]的角度 )
                Set BladeMaster_XY[1] = (从BladeMaster_Unit[2]到BladeMaster_Unit[1]的距离 )
                Set BladeMaster_XY[2] = (BladeMaster_Unit[2] 所在X轴坐标)
                Set BladeMaster_XY[3] = (BladeMaster_Unit[2] 所在Y轴坐标)
                Set BladeMaster_XY[2] = (BladeMaster_XY[2] + (((((转换 BladeMaster_ang[0] 为实数) - 100.00) / 99.00) x BladeMaster_XY[1]) x (Cos(BladeMaster_XY[0]))))
                Set BladeMaster_XY[3] = (BladeMaster_XY[3] + (((((转换 BladeMaster_ang[0] 为实数) - 100.00) / 99.00) x BladeMaster_XY[1]) x (Sin(BladeMaster_XY[0]))))
                单位 - 设置 BladeMaster_Unit[2] 的X坐标为 BladeMaster_XY[2]
                单位 - 设置 BladeMaster_Unit[2] 的Y坐标为 BladeMaster_XY[3]
                单位 - 设置 BladeMaster_Unit[2] 的面向角度为 BladeMaster_XY[0] 度
            Else - 动作
                不做任何动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 运作)
            If - 条件
                BladeMaster_ang[0] 等于 150
            Then - 动作
                Set BladeMaster_XY[2] = (BladeMaster_Unit[1] 所在X轴坐标)
                Set BladeMaster_XY[3] = (BladeMaster_Unit[1] 所在Y轴坐标)
                特殊效果 - 删除 (新建特效 Abilities\Spells\Human\Thunderclap\ThunderClapCaster.mdl 在(BladeMaster_XY[2],BladeMaster_XY[3])处)
                单位 - 命令 BladeMaster_Unit[0] 对 BladeMaster_Unit[1] 造成 100.00 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 魔法 装甲类型: 无
                单位 - 恢复 BladeMaster_Unit[0]
                动画 - 改变 BladeMaster_Unit[0]  的颜色比例: (100.00%, 100.00%, 100.00%),透明度: 0.00%
                动画 - 改变 BladeMaster_Unit[0] 的动画播放速度为正常速度的 1.00 倍
                单位 - 设置 BladeMaster_Unit[0] 打开 碰撞
                单位 - 对 BladeMaster_Unit[0] 发布 停止 命令
                计时器 - 暂停 BladeMaster_Timer[0]
                Set BladeMaster_ang[0] = 0
                Set BladeMaster_Unit[0] = 没有单位
                Set BladeMaster_Unit[1] = 没有单位
                Set BladeMaster_Unit[2] = 没有单位
                Set BladeMaster_XY[0] = 0.00
                Set BladeMaster_XY[1] = 0.00
                Set BladeMaster_XY[2] = 0.00
                Set BladeMaster_XY[3] = 0.00
                Set BladeMaster_XY[4] = 0.00
            Else - 动作
                不做任何动作



[/trigger]


问题就是第2个触发里的If then语句中的BladeMaster_ang[0] 等于 150
                                                                         BladeMaster_ang[0] 大于 100
                                                                 BladeMaster_ang[0] 小于 150
  这些判断是何作用?
发表于 2010-8-13 13:47:50 | 显示全部楼层
“BladeMaster_ang[0]”是一个用来记录技能进度的变量。
“Set BladeMaster_ang[0] = (BladeMaster_ang[0] + 1)”就是说计时器每到期一次(0.01秒),那么“BladeMaster_ang[0]”就会加一。

而“BladeMaster_ang[0] 小于 50”,就是说只在技能开始的0.5秒内,会运行then后面的动作。
而“BladeMaster_ang[0] 大于50    小于 100”,就是说在技能开始0.5秒后且1秒内,才运行then后面的动作。
而“BladeMaster_ang[0] 等于 150”,就是说在技能进行了1.5秒时(技能释放结束了),就运行then后面的动作。
回复

使用道具 举报

 楼主| 发表于 2010-8-13 13:52:13 | 显示全部楼层
明白了!原来这个作者是这样设计的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-6-17 14:35 , Processed in 0.028989 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表