找回密码
 点一下
查看: 1906|回复: 8

问一下,这个技能哪儿错了

[复制链接]
发表于 2011-4-4 00:16:31 | 显示全部楼层 |阅读模式
在设计这个技能之后,地图老是在玩的过程正弹错误框中止,我怀疑是这个技能的问题。大大们帮忙看看哪儿有问题

技能名称为亡灵天降,这个技能的目的是让大墓地往下面空投亡灵士兵,每个大墓地最多只能保持20个存活的亡灵士兵,亡灵士兵在从空中落到地面之前是暂停的,到地面后恢复。

分为三个触发器

第一个触发器再大墓地建设完成后给予自定义值,自定义值用作单位组数组的后缀,来判断某个大墓地所对应的单位组是否超过了20

第二个触发器用于空投士兵

第三个触发器用于在亡灵士兵死亡后从单位组中剔除。

[trigger]undeaddrop number
    事件
        单位 - 任意单位 完成建造
    条件
        ((触发单位) 的类型) 等于 大墓地
    动作
        单位 - 设置 (触发单位) 的自定义值为 unitwave_undeaddrop
        设置 unitwave_undeaddrop = (unitwave_undeaddrop + 1)
        单位组 - 添加 (触发单位) 到 units_bigtomb
[/trigger]

[trigger]undeaddrop
    事件
        单位 - 任意单位 发动技能效果
    条件
        Or - 任意条件成立
            条件
                (施放技能) 等于 大墓地-亡灵天降1
                (施放技能) 等于 大墓地-亡灵天降2
                (施放技能) 等于 大墓地-亡灵天降3
    动作
        设置 a_point1 = ((触发单位) 的位置)
        变量<YDWE> - 开启局部变量功能
        变量<YDWE> - 设置 loc_point = ((技能施放目标) 的位置)
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((((触发单位) 的所有者) 可用人口数) - (((触发单位) 的所有者) 已使用人口数)) 小于或等于 0
            Then - 动作
                游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示文本: 可使用人口数...
            Else - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        (units_undeaddrop[((触发单位) 的自定义值)] 中的单位数量) 大于或等于 20
                    Then - 动作
                        游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示文本: 浮空基地的亡...
                    Else - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                (施放技能) 等于 大墓地-亡灵天降1
                            Then - 动作
                                单位池 - 从 unitpool_undeaddrop1 中为 ((触发单位) 的所有者) 任意选择一个单位并放置到点( (a_point1 的X轴坐标) , (a_point1 的Y轴坐标) ) 面向 (a_point1 到 (loc_point) 的角度)
                                变量<YDWE> - 设置 loc_unit = (最后从单位池里取出的单位)
                                函数<YDWE> - 让单位 (最后从单位池里取出的单位) 变得可以飞行。
                                动画 - 改变 (最后从单位池里取出的单位) 的飞行高度为 600.00 ,变换速率: 0.00
                                特殊效果 - 创建并绑定特效到 chest 对 (最后从单位池里取出的单位) ,使用模型: Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
                                变量<YDWE> - 设置 loc_effect = (最后创建的特效)
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        ((最后从单位池里取出的单位) 的类型) 等于 石像鬼
                                    Then - 动作
                                        动画 - 改变 (最后从单位池里取出的单位) 的飞行高度为 240.00 ,变换速率: 150.00
                                    Else - 动作
                                        单位 - 设置 (最后从单位池里取出的单位) 暂停
                                        动画 - 改变 (最后从单位池里取出的单位) 的飞行高度为 0.00 ,变换速率: 300.00
                            Else - 动作
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        (施放技能) 等于 大墓地-亡灵天降2
                                    Then - 动作
                                        单位池 - 从 unitpool_undeaddrop2 中为 ((触发单位) 的所有者) 任意选择一个单位并放置到点( (a_point1 的X轴坐标) , (a_point1 的Y轴坐标) ) 面向 (a_point1 到 (loc_point) 的角度)
                                        变量<YDWE> - 设置 loc_unit = (最后从单位池里取出的单位)
                                        单位 - 设置 (最后从单位池里取出的单位) 暂停
                                        函数<YDWE> - 让单位 (最后从单位池里取出的单位) 变得可以飞行。
                                        动画 - 改变 (最后从单位池里取出的单位) 的飞行高度为 600.00 ,变换速率: 0.00
                                        特殊效果 - 创建并绑定特效到 chest 对 (最后从单位池里取出的单位) ,使用模型: Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
                                        变量<YDWE> - 设置 loc_effect = (最后创建的特效)
                                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                            If - 条件
                                                ((最后从单位池里取出的单位) 的类型) 等于 石像鬼
                                            Then - 动作
                                                动画 - 改变 (最后从单位池里取出的单位) 的飞行高度为 240.00 ,变换速率: 150.00
                                            Else - 动作
                                                单位 - 设置 (最后从单位池里取出的单位) 暂停
                                                动画 - 改变 (最后从单位池里取出的单位) 的飞行高度为 0.00 ,变换速率: 300.00
                                    Else - 动作
                                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                            If - 条件
                                                (施放技能) 等于 大墓地-亡灵天降3
                                            Then - 动作
                                                单位池 - 从 unitpool_undeaddrop3 中为 ((触发单位) 的所有者) 任意选择一个单位并放置到点( (a_point1 的X轴坐标) , (a_point1 的Y轴坐标) ) 面向 (a_point1 到 (loc_point) 的角度)
                                                变量<YDWE> - 设置 loc_unit = (最后从单位池里取出的单位)
                                                单位 - 设置 (最后从单位池里取出的单位) 暂停
                                                函数<YDWE> - 让单位 (最后从单位池里取出的单位) 变得可以飞行。
                                                动画 - 改变 (最后从单位池里取出的单位) 的飞行高度为 600.00 ,变换速率: 0.00
                                                特殊效果 - 创建并绑定特效到 chest 对 (最后从单位池里取出的单位) ,使用模型: Abilities\Weapons\SludgeMissile\SludgeMissile.mdl
                                                变量<YDWE> - 设置 loc_effect = (最后创建的特效)
                                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                                    If - 条件
                                                        ((最后从单位池里取出的单位) 的类型) 等于 石像鬼
                                                    Then - 动作
                                                        动画 - 改变 (最后从单位池里取出的单位) 的飞行高度为 240.00 ,变换速率: 150.00
                                                    Else - 动作
                                                        单位 - 设置 (最后从单位池里取出的单位) 暂停
                                                        动画 - 改变 (最后从单位池里取出的单位) 的飞行高度为 0.00 ,变换速率: 300.00
                                            Else - 动作
                点 - 清除 a_point1
                单位组 - 添加 (loc_unit) 到 units_undeaddrop[((触发单位) 的自定义值)]
                单位组 - 添加 (loc_unit) 到 units_undeaddropall
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        ((loc_unit) 的类型) 不等于 石像鬼
                    Then - 动作
                        等待 2.00 秒(局部变量专用)
                        特殊效果 - 删除 (loc_effect)
                        单位 - 设置 (loc_unit) 恢复
                        单位 - 对 (loc_unit) 发布 攻击移动 命令到目标点: (loc_point)
                    Else - 动作
                        单位 - 设置 (loc_unit) 恢复
                        单位 - 对 (loc_unit) 发布 攻击移动 命令到目标点: (loc_point)
                        等待 2.00 秒(局部变量专用)
                        特殊效果 - 删除 (loc_effect)
        变量<YDWE> - 清空局部变量
[/trigger]

[trigger]undeaddrop dead
    事件
        单位 - 任意单位 死亡
    条件
        ((触发单位) 在 units_undeaddropall 中) 等于 TRUE
    动作
        单位组 - 把 (触发单位) 从 units_undeadcontral[((触发单位) 的自定义值)] 移除
        单位组 - 把 (触发单位) 从 units_undeadcontralall 移除
[/trigger]
 楼主| 发表于 2011-4-4 08:54:35 | 显示全部楼层
呃,求助啊求助[s:190]
回复

使用道具 举报

发表于 2011-4-4 11:08:41 | 显示全部楼层
各种变量看的头都昏了。。
其实。。。
有个技能叫地狱火
又有个技能叫混乱之雨
又有个事件是任意单位被召唤。。
回复

使用道具 举报

 楼主| 发表于 2011-4-4 13:22:15 | 显示全部楼层
不是,我想要做的效果是从浮空城中空投,也就是改变高度的效果。而且地狱火混乱之雨又不是在单位池中随机召唤某种类型的单位吧
回复

使用道具 举报

发表于 2011-4-4 13:27:23 | 显示全部楼层
单位池没用过。。但是我知道

单位类型[随机整数]
回复

使用道具 举报

 楼主| 发表于 2011-4-4 13:39:54 | 显示全部楼层
就是单位类型数组么?从来没想过,确实能简便很多。谢谢啦

但是使用单位池是造成地图出错的原因么
回复

使用道具 举报

 楼主| 发表于 2011-4-4 14:26:18 | 显示全部楼层
另外我随机取到每种单位类型的概率也是不同的
回复

使用道具 举报

发表于 2011-4-4 14:54:42 | 显示全部楼层
单位池没用过  要问是不是这个问题我也不敢确定 只是建议
你的那个演示变量名我看的头很疼
外 概率不同解决的办法想想就知道怎么解决了把
回复

使用道具 举报

 楼主| 发表于 2011-4-5 17:02:29 | 显示全部楼层
YDWE的局部变量功能会不会出现出错的问题呢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-28 22:00 , Processed in 0.033028 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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