找回密码
 点一下
查看: 958|回复: 6

一个奇怪的问题,发布技能命令失效

[复制链接]
发表于 2013-3-29 04:55:42 | 显示全部楼层 |阅读模式
做了个技能,用单位模拟投射物

击中目标后新建一个属于目标所属的单位,然后发布风暴之锤命令

奇怪的事出现了,在测试图里命令可以正常发布

但在我自己的地图里使用时就无法

只有改为触发单位所属才能正常发布

但那样风暴之锤会触发魔法护身符效果,只有队友发布的风暴之锤才不会触发

经过检查,不是马甲单位的问题、不是马甲技能的问题、怀疑是地图单位过多导致失效,但是测试图尝试放上近百个单位也能成功发布

这到底是什么原因呢?
发表于 2013-3-29 05:10:59 | 显示全部楼层
一般如果触发是照搬且大部分动作能运行的话那么问题肯定在物编里,也就是存在LZ没查到的地方
再说的直接点就是,我个人并不相信LZ所说的“经过检查”

所以,如果可以的话,请放上触发和物编截图

点评

也就是创建红字的单位发布风暴锤技能,很奇怪的是我直接把单位复制到测试图里测试都没任何问题  详情 回复 发表于 2013-3-29 20:35
Ability 01 B 01 事件 单位 - 任意单位 发动技能效果 条件 (施放技能) 等于 Hero.01.B 郑吒 戾炎.百兵冢 动作 For循环整数A从 1 到 6, 做动作 Loop - 动作  详情 回复 发表于 2013-3-29 20:34
回复

使用道具 举报

 楼主| 发表于 2013-3-29 20:34:29 | 显示全部楼层
chyj4747 发表于 2013-3-29 05:10
一般如果触发是照搬且大部分动作能运行的话那么问题肯定在物编里,也就是存在LZ没查到的地方
再说的直接点 ...

Ability 01 B 01
    事件
        单位 - 任意单位 发动技能效果
    条件
        (施放技能) 等于 Hero.01.B 郑吒 戾炎.百兵冢
    动作
        For循环整数A从 1 到 6, 做动作
            Loop - 动作
                设置 Ability_01_B_Count = (Ability_01_B_Count + 1)
                设置 Ability_01_B_Hero[Ability_01_B_Count] = (触发单位)
                设置 Ability_01_B_Unit[Ability_01_B_Count] = (技能施放目标)
                设置 Ability_01_B_Int[Ability_01_B_Count] = 50
                设置 Ability_01_B_Level[Ability_01_B_Count] = (Ability_01_B_Hero[Ability_01_B_Count] 的 Hero.01.B 郑吒 戾炎.百兵冢 技能等级)
                设置 Angle = ((Ability_01_B_Hero[Ability_01_B_Count] 的面向角度) + 100.00)
                设置 Location_006[1] = (Ability_01_B_Hero[Ability_01_B_Count] 的位置)
                设置 Ability_01_B_Unit_Effect[Ability_01_B_Count] = (新建 (Ability_01_B_Hero[Ability_01_B_Count] 的所有者) 的  Hero.01.B 郑吒 戾炎.百兵冢 在 Location_006[1] 面向角度:(Angle - (转换 (循环整数A [R] x 30) 为实数)) 度)
                点 - 清除 Location_006[1]
        如果 ((Ability 01 B 02 Time <预设> 处于开启状态) 不等于 TRUE) 成立则 (触发器 - 开启 Ability 01 B 02 Time <预设>) 否则 (--------   --------)



Ability 01 B 02 Time
    事件
        时间 - 每 0.01 秒触发事件
    条件
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                Ability_01_B_Count 不等于 0
            Then - 动作
                For Ability_01_B_Index 从 1 到 Ability_01_B_Count, 做动作
                    Loop - 动作
                        如果所有条件成立则做动作1,否则做动作2
                            If - 条件
                                Ability_01_B_Int[Ability_01_B_Index] 不等于 0
                            Then - 动作
                                设置 Location_007[1] = (Ability_01_B_Unit_Effect[Ability_01_B_Index] 的位置)
                                设置 Location_008[1] = (从 Location_007[1] 开始,距离 1.00 ,方向为 (Ability_01_B_Unit_Effect[Ability_01_B_Index] 的面向角度) 度的位移处)
                                单位 - 立即移动 Ability_01_B_Unit_Effect[Ability_01_B_Index] 到 Location_008[1]
                                点 - 清除 Location_007[1]
                                点 - 清除 Location_008[1]
                                设置 Ability_01_B_Int[Ability_01_B_Index] = (Ability_01_B_Int[Ability_01_B_Index] - 1)
                            Else - 动作
                                设置 Location_009[1] = (Ability_01_B_Unit_Effect[Ability_01_B_Index] 的位置)
                                设置 Group[1] = (半径为 50.00 圆心为 Location_009[1] 且满足 ((((匹配单位) 是 (Ability_01_B_Unit_Effect[Ability_01_B_Index] 的所有者) 的敌对单位) 等于 TRUE) and ((((匹配单位) 是存活的) 等于 TRUE) and (((匹配单位) 是 魔法免疫) 不等
                                设置 Unit = (Group[1] 中第一个单位)
                                如果所有条件成立则做动作1,否则做动作2
                                    If - 条件
                                        Unit 不等于 没有单位
                                    Then - 动作
                                        设置 Location_010[1] = (Unit 的位置)
                                        设置 Distance = (Location_009[1] 和 Location_010[1] 之间的距离)
                                        点 - 清除 Location_010[1]
                                        单位组 - 选取 Group[1] 内所有单位做动作
                                            Loop - 动作
                                                设置 Location_010[1] = ((选取单位) 的位置)
                                                设置 Real = (Location_009[1] 和 Location_010[1] 之间的距离)
                                                点 - 清除 Location_010[1]
                                                如果所有条件成立则做动作1,否则做动作2
                                                    If - 条件
                                                        Real 小于 Distance
                                                    Then - 动作
                                                        设置 Unit = (选取单位)
                                                        设置 Distance = Real
                                                    Else - 动作
                                        设置 Power = (20.00 + (转换 (Ability_01_B_Level[Ability_01_B_Index] x 10) 为实数))
                                        单位 - 命令 Ability_01_B_Hero[Ability_01_B_Index] 对 Unit 造成 Power 点伤害,攻击类型: 法术 伤害类型: 魔法
                                        特殊效果 - 删除 (新建特效 Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl 并绑定到 Unit 的 chest 附加点上)
                                        设置 Location_010[1] = (Unit 的位置)
                                        单位 - 创建 1 个 特殊 技能马甲 给 (Ability_01_B_Hero[Ability_01_B_Index] 的所有者) 在 Location_010[1] ,面向角度为 默认建筑朝向 度
                                        单位 - 为 最后创建的单位 [R] 添加 特殊 眩晕0.5秒
                                        单位 - 对 最后创建的单位 [R] 发布 人族山丘之王 - 风暴之锤 命令到目标: Unit
                                        单位 - 为 最后创建的单位 [R] 设置 水元素 类型的生命周期,持续时间为 1.00 秒
                                        点 - 清除 Location_010[1]
                                        设置 Distance = 0.00
                                        设置 Unit = 没有单位
                                        触发器 - 运行 Ability 01 B 03 <预设> (无视条件)
                                    Else - 动作
                                        如果所有条件成立则做动作1,否则做动作2
                                            If - 条件
                                                (Ability_01_B_Unit[Ability_01_B_Index] 是存活的) 等于 TRUE
                                            Then - 动作
                                                设置 Location_010[1] = (Ability_01_B_Unit[Ability_01_B_Index] 的位置)
                                                设置 Angle = (Location_009[1] 到 Location_010[1] 的角度)
                                                设置 Location_011[1] = (从 Location_009[1] 开始,距离 10.00 ,方向为 Angle 度的位移处)
                                                单位 - 设置 Ability_01_B_Unit_Effect[Ability_01_B_Index] 的面向角度为 Angle 度
                                                如果 ((Location_011[1] 处的 空中单位可通行 通行状态为关闭) 不等于 TRUE) 成立则 (单位 - 立即移动 Ability_01_B_Unit_Effect[Ability_01_B_Index] 到 Location_011[1]) 否则 (触发器 - 运行 Ability 01 B 03 <预设> (无视条件))
                                                点 - 清除 Location_010[1]
                                                点 - 清除 Location_011[1]
                                            Else - 动作
                                                触发器 - 运行 Ability 01 B 03 <预设> (无视条件)
                                单位组 - 删除 Group[1]
                                点 - 清除 Location_009[1]
            Else - 动作
                触发器 - 关闭 (当前触发)
                游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示文本: 关闭。




Ability 01 B 03
    事件
    条件
    动作
        单位 - 杀死 Ability_01_B_Unit_Effect[Ability_01_B_Index]
        设置 Ability_01_B_Hero[Ability_01_B_Index] = Ability_01_B_Hero[Ability_01_B_Count]
        设置 Ability_01_B_Hero[Ability_01_B_Count] = 没有单位
        设置 Ability_01_B_Unit[Ability_01_B_Index] = Ability_01_B_Unit[Ability_01_B_Index]
        设置 Ability_01_B_Unit[Ability_01_B_Count] = 没有单位
        设置 Ability_01_B_Unit_Effect[Ability_01_B_Index] = Ability_01_B_Unit_Effect[Ability_01_B_Count]
        设置 Ability_01_B_Unit_Effect[Ability_01_B_Count] = 没有单位
        设置 Ability_01_B_Int[Ability_01_B_Index] = Ability_01_B_Int[Ability_01_B_Count]
        设置 Ability_01_B_Int[Ability_01_B_Count] = 0
        设置 Ability_01_B_Level[Ability_01_B_Index] = Ability_01_B_Level[Ability_01_B_Count]
        设置 Ability_01_B_Level[Ability_01_B_Count] = 0
        设置 Ability_01_B_Index = (Ability_01_B_Index - 1)
        设置 Ability_01_B_Count = (Ability_01_B_Count - 1)
回复

使用道具 举报

 楼主| 发表于 2013-3-29 20:35:49 | 显示全部楼层
chyj4747 发表于 2013-3-29 05:10
一般如果触发是照搬且大部分动作能运行的话那么问题肯定在物编里,也就是存在LZ没查到的地方
再说的直接点 ...

也就是创建红字的单位发布风暴锤技能,很奇怪的是我直接把单位复制到测试图里测试都没任何问题
回复

使用道具 举报

 楼主| 发表于 2013-3-30 08:17:42 | 显示全部楼层
再次把其他触发删除

把装饰物删除后各种测试

发现我如果先摆放一个不会动的目标

那么就会造成眩晕

如果目标会移动

则无效

可是马甲技能的释放距离为99999

而且在测试图中测试又没发现任何问题

这到底是什么原因呢...
回复

使用道具 举报

发表于 2013-3-30 09:31:25 | 显示全部楼层
冷漠 发表于 2013-3-30 08:17
再次把其他触发删除

把装饰物删除后各种测试

把马甲的移动速度、转向速度、转向角度都设为0

点评

马甲所属为中立敌对时 移动速度只有0才能正常发布马甲技能 而1以上全部无效 并且奇怪的是任何中立敌对以外的玩家的马甲移动速度任何数值都没任何问题... 真的好奇怪 谁能解答一下...  详情 回复 发表于 2013-3-30 10:44
回复

使用道具 举报

 楼主| 发表于 2013-3-30 10:44:09 | 显示全部楼层
chyj4747 发表于 2013-3-30 09:31
把马甲的移动速度、转向速度、转向角度都设为0

马甲所属为中立敌对时

移动速度只有0才能正常发布马甲技能

而1以上全部无效

并且奇怪的是任何中立敌对以外的玩家的马甲移动速度任何数值都没任何问题...

真的好奇怪

谁能解答一下...
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 00:16 , Processed in 1.385408 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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