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

我的杀人、助攻系统哪里错了呢?

[复制链接]
发表于 2011-3-30 16:56:06 | 显示全部楼层 |阅读模式
[trigger]Killing
    事件
    条件
    动作
        设置 PlayerDeath[(((死亡单位) 的所有者) 的玩家索引号)] = (PlayerDeath[(((死亡单位) 的所有者) 的玩家索引号)] + 1)
        设置 XinyangIncome = (((死亡单位) 的等级) + 10)
        特殊效果 - 删除 (新建特效 Objects\Spawnmodels\NightElf\NEDeathMedium\NEDeath.mdl 并绑定到 (死亡单位) 的 overhead 附加点上)
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((死亡单位) 是 玩家2(蓝色) 的同盟单位) 等于 TRUE
            Then - 动作
                设置 PlayerDeath[2] = (PlayerDeath[2] + 1)
                设置 MultiBoardItem = (MultiBoard 的第 7 行,第 3 列项)
                多面板 - 设置 MultiBoardItem 的项目文本为 (|CFF0041FF + (转换 PlayerDeath[2] 为字符串))
                多面板 - 删除 MultiBoardItem
                设置 MultiBoardItem = (MultiBoard 的第 (((((死亡单位) 的所有者) 的玩家索引号) / 2) + 6) 行,第 3 列项)
            Else - 动作
                设置 PlayerDeath[1] = (PlayerDeath[1] + 1)
                设置 MultiBoardItem = (MultiBoard 的第 1 行,第 3 列项)
                多面板 - 设置 MultiBoardItem 的项目文本为 (|CFFFF0000 + (转换 PlayerDeath[1] 为字符串))
                多面板 - 删除 MultiBoardItem
                设置 MultiBoardItem = (MultiBoard 的第 (((((死亡单位) 的所有者) 的玩家索引号) + 1) / 2) 行,第 3 列项)
        多面板 - 设置 MultiBoardItem 的项目文本为 (PlayerColor[(((死亡单位) 的所有者) 的玩家索引号)] + (转换 PlayerDeath[(((死亡单位) 的所有者) 的玩家索引号)] 为字符串))
        多面板 - 删除 MultiBoardItem
        -------- 自杀 --------
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                Or - 任意条件成立
                    条件
                        (凶手单位) 等于 没有单位
                        (凶手单位) 等于 (死亡单位)
            Then - 动作
                游戏 - 对 (所有玩家) 发送显示 30.00 秒的文本信息: ((PlayerColor[(((死亡单位) 的所有者) 的玩家索引号)] + (((死亡单位) 的所有者) 的名字)) + |r自杀了!)
                设置 PlayerReviving[(((死亡单位) 的所有者) 的玩家索引号)] = (((死亡单位) 的英雄等级) x 2)
            Else - 动作
                -------- 同队杀 --------
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        ((凶手单位) 是 ((死亡单位) 的所有者) 的同盟单位) 等于 TRUE
                    Then - 动作
                        游戏 - 对 (所有玩家) 发送显示 30.00 秒的文本信息: ((PlayerColor[(((死亡单位) 的所有者) 的玩家索引号)] + (((死亡单位) 的所有者) 的名字)) + (|r被 + ((PlayerColor[(((凶手单位) 的所有者) 的玩家索引号)] + (((凶手单位) 的所有者) 的名字)) + |r反补了!)))
                        设置 PlayerReviving[(((死亡单位) 的所有者) 的玩家索引号)] = (((死亡单位) 的英雄等级) x 2)
                    Else - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                KillingN[(((死亡单位) 的所有者) 的玩家索引号)] 大于或等于 0
                            Then - 动作
                                设置 KillingN[(((死亡单位) 的所有者) 的玩家索引号)] = 0
                            Else - 动作
                                设置 KillingN[(((死亡单位) 的所有者) 的玩家索引号)] = (KillingN[(((死亡单位) 的所有者) 的玩家索引号)] - 15)
                        设置 PlayerReviving[(((死亡单位) 的所有者) 的玩家索引号)] = (((死亡单位) 的英雄等级) x 4)
                        设置 PlayerKill[(((凶手单位) 的所有者) 的玩家索引号)] = (PlayerKill[(((凶手单位) 的所有者) 的玩家索引号)] + 1)
                        -------- 敌人杀 --------
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                ((凶手单位) 的所有者) 不等于 中立敌对
                            Then - 动作
                                计时器 - 启动 TimerDoubleKill[(((凶手单位) 的所有者) 的玩家索引号)],应用计时方式: 一次性,计时周期为 45.00 秒
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        ((凶手单位) 是 玩家2(蓝色) 的同盟单位) 等于 TRUE
                                    Then - 动作
                                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                            If - 条件
                                                ((凶手单位) 的所有者) 等于 玩家2(蓝色)
                                            Then - 动作
                                            Else - 动作
                                                设置 PlayerKill[2] = (PlayerKill[2] + 1)
                                                设置 MultiBoardItem = (MultiBoard 的第 7 行,第 2 列项)
                                                多面板 - 设置 MultiBoardItem 的项目文本为 (|CFF0041FF + (转换 PlayerKill[2] 为字符串))
                                                多面板 - 删除 MultiBoardItem
                                        设置 MultiBoardItem = (MultiBoard 的第 (((((凶手单位) 的所有者) 的玩家索引号) / 2) + 6) 行,第 2 列项)
                                    Else - 动作
                                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                            If - 条件
                                                ((凶手单位) 的所有者) 等于 玩家1(红色)
                                            Then - 动作
                                            Else - 动作
                                                设置 PlayerKill[1] = (PlayerKill[1] + 1)
                                                设置 MultiBoardItem = (MultiBoard 的第 1 行,第 2 列项)
                                                多面板 - 设置 MultiBoardItem 的项目文本为 (|CFFFF0000 + (转换 PlayerKill[1] 为字符串))
                                                多面板 - 删除 MultiBoardItem
                                        设置 MultiBoardItem = (MultiBoard 的第 (((((凶手单位) 的所有者) 的玩家索引号) + 1) / 2) 行,第 2 列项)
                                多面板 - 设置 MultiBoardItem 的项目文本为 (PlayerColor[(((凶手单位) 的所有者) 的玩家索引号)] + (转换 PlayerKill[(((凶手单位) 的所有者) 的玩家索引号)] 为字符串))
                                多面板 - 删除 MultiBoardItem
                            Else - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                (((凶手单位) 的所有者) 的玩家索引号) 大于 2
                            Then - 动作
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        KillingN[(((凶手单位) 的所有者) 的玩家索引号)] 小于或等于 0
                                    Then - 动作
                                        设置 KillingN[(((凶手单位) 的所有者) 的玩家索引号)] = 0
                                    Else - 动作
                                        设置 KillingN[(((凶手单位) 的所有者) 的玩家索引号)] = (KillingN[(((凶手单位) 的所有者) 的玩家索引号)] + 50)
                                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                            If - 条件
                                                (TimerDoubleKill[(((凶手单位) 的所有者) 的玩家索引号)] 的剩余时间) 大于 0.00
                                            Then - 动作
                                                设置 DoubleN[(((凶手单位) 的所有者) 的玩家索引号)] = (DoubleN[(((凶手单位) 的所有者) 的玩家索引号)] + 1)
                                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                                    If - 条件
                                                        DoubleN[(((凶手单位) 的所有者) 的玩家索引号)] 等于 1
                                                    Then - 动作
                                                        游戏 - 对 (所有玩家) 发送显示 30.00 秒的文本信息: ((PlayerColor[(((凶手单位) 的所有者) 的玩家索引号)] + (((凶手单位) 的所有者) 的名字)) + |r完成了一次|cff0000ff双杀|r!)
                                                    Else - 动作
                                                        游戏 - 对 (所有玩家) 发送显示 30.00 秒的文本信息: ((PlayerColor[(((凶手单位) 的所有者) 的玩家索引号)] + (((凶手单位) 的所有者) 的名字)) + |r完成了一次|CFF7fff7f多杀|R!)
                                            Else - 动作
                                                设置 DoubleN[(((凶手单位) 的所有者) 的玩家索引号)] = 0
                                设置 Integer = ((250 + KillingN[(((死亡单位) 的所有者) 的玩家索引号)]) + ((((死亡单位) 的英雄等级) - ((凶手单位) 的英雄等级)) x 10))
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        Integer 小于 0
                                    Then - 动作
                                        游戏 - 对 (所有玩家) 发送显示 30.00 秒的文本信息: ((PlayerColor[(((死亡单位) 的所有者) 的玩家索引号)] + (((死亡单位) 的所有者) 的名字)) + (|r被 + ((PlayerColor[(((凶手单位) 的所有者) 的玩家索引号)] + (((凶手单位) 的所有者) 的名字)) + |r击杀,不过这次
                                    Else - 动作
                                        游戏 - 对 (所有玩家) 发送显示 30.00 秒的文本信息: ((PlayerColor[(((凶手单位) 的所有者) 的玩家索引号)] + (((凶手单位) 的所有者) 的名字)) + (|r推倒了 + ((PlayerColor[(((死亡单位) 的所有者) 的玩家索引号)] + (((死亡单位) 的所有者) 的名字)) + (|r,霸占|cffff
                                        循环动作[循环整数A]从 3 到 12, 运行 (Loop - 动作)
                                            Loop - 动作
                                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                                    If - 条件
                                                        (PlayerkillwithGroup[((触发玩家) 的玩家索引号)] 为空) 等于 FALSE
                                                    Then - 动作
                                                        设置 PlayerKillwithN[(循环整数A)] = (PlayerkillwithGroup[((触发玩家) 的玩家索引号)] 中第一个单位)
                                                        单位组 - 把 PlayerKillwithN[(循环整数A)] 从 PlayerkillwithGroup[((触发玩家) 的玩家索引号)] 移除
                                                        玩家 - 增加 100 (PlayerKillwithN[(循环整数A)] 的所有者) 的 现有黄金
                                                    Else - 动作
                                        游戏 - 对 (所有玩家) 发送文本信息: (<空字符串> + (感谢 + ((((PlayerKillwithN[3] 的所有者) 的名字) + ((PlayerKillwithN[4] 的所有者) 的名字)) + (((PlayerKillwithN[5] 的所有者) 的名字) + (((PlayerKillwithN[6] 的所有者) 的名字) + (((PlayerKillwithN[7] 的所有者
                                        玩家 - 增加 Integer ((凶手单位) 的所有者) 的 现有黄金
                                        玩家 - 增加 (0 - Integer) ((死亡单位) 的所有者) 的 现有黄金
                            Else - 动作
                                设置 Integer = (200 + (((死亡单位) 的英雄等级) x 5))
                                游戏 - 对 (所有玩家) 发送显示 30.00 秒的文本信息: ((PlayerColor[(((死亡单位) 的所有者) 的玩家索引号)] + (((死亡单位) 的所有者) 的名字)) + (|r被 + ((PlayerColor[(((凶手单位) 的所有者) 的玩家索引号)] + (((凶手单位) 的所有者) 的名字)) + (|r推倒并意外怀孕
                                玩家 - 增加 (0 - Integer) ((死亡单位) 的所有者) 的 现有黄金
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        (((凶手单位) 的所有者) 的玩家索引号) 等于 2
                                    Then - 动作
                                        玩家组 - 选取 PlayerGroupAllian 内所有玩家 (玩家 - 设置 (选取玩家) 的 现有黄金 为 (((选取玩家) 现有黄金) + (Integer / (PlayerGroupAllian 中的玩家数量))))
                                    Else - 动作
                                        玩家组 - 选取 PlayerGroupHorder 内所有玩家 (玩家 - 设置 (选取玩家) 的 现有黄金 为 (((选取玩家) 现有黄金) + (Integer / (PlayerGroupHorder 中的玩家数量))))
        -------- 信仰 --------
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((死亡单位) 是 玩家2(蓝色) 的同盟单位) 等于 TRUE
            Then - 动作
                玩家 - 增加 XinyangIncome 玩家1(红色) 的 现有木材
                游戏 - 对 (所有玩家) 发送显示 5.00 秒的文本信息: (博丽神社信仰上升 + ((转换 XinyangIncome 为字符串) + 点))
            Else - 动作
                玩家 - 增加 XinyangIncome 玩家2(蓝色) 的 现有木材
                游戏 - 对 (所有玩家) 发送显示 5.00 秒的文本信息: (泄矢神社信仰上升 + ((转换 XinyangIncome 为字符串) + 点))
[/trigger]




[trigger]Killing with1
    事件
    条件
        ((伤害来源) 是 ((触发单位) 的所有者) 的敌对单位) 等于 TRUE
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((伤害来源) 在 PlayerkillwithGroup[((触发玩家) 的玩家索引号)] 中) 等于 TRUE
            Then - 动作
                计时器 - 启动 Playerkillwithtime[((触发玩家) 的玩家索引号)],应用计时方式: 一次性,计时周期为 15.00 秒
                触发器 - 为 Killing with2 <预设> 添加事件: (时间 - Playerkillwithtime[((触发玩家) 的玩家索引号)] 到期)
            Else - 动作
                单位组 - 为 PlayerkillwithGroup[((触发玩家) 的玩家索引号)] 添加 (伤害来源)
                计时器 - 启动 Playerkillwithtime[((触发玩家) 的玩家索引号)],应用计时方式: 一次性,计时周期为 15.00 秒
                触发器 - 为 Killing with2 <预设> 添加事件: (时间 - Playerkillwithtime[((触发玩家) 的玩家索引号)] 到期)
[/trigger]



[trigger]Killing with2
    事件
    条件
    动作
        单位组 - 清空 PlayerkillwithGroup[((触发玩家) 的玩家索引号)] 内所有单位
[/trigger]



就是这样,事件是单位受到伤害,是在选英雄的时候为这些触发添加事件的。
然后,杀人没问题,可是助攻出不来哦!而且,多杀、双杀都无效……啊,到底错在哪里呢?
希望高人指点,谢谢了!
发表于 2011-3-30 17:53:13 | 显示全部楼层
助功是什么意思
回复

使用道具 举报

 楼主| 发表于 2011-3-30 20:42:20 | 显示全部楼层
就是杀人时,不光是杀人者,连一起配合的队友也有奖励!
回复

使用道具 举报

 楼主| 发表于 2011-3-30 21:24:02 | 显示全部楼层
召唤喜娃……
回复

使用道具 举报

发表于 2011-3-30 21:41:10 | 显示全部楼层
第一条触发也是单位受到伤害么……
如果是的话我真不知道哪来的凶手单位


虽然感觉可能性不大~


KillingN[(((凶手单位) 的所有者) 的玩家索引号)] 小于或等于 0
如果单看这一堆触发的话,我感觉这条件基本上触发不了……
小于或等于0了,又设置为0
经过搜索功能发现增加这个变量的只有这个条件下面的else,可是这样的话KillingN[(((凶手单位) 的所有者) 的玩家索引号)]就必须大于0,但是实际上我不觉得它可以大于0
回复

使用道具 举报

 楼主| 发表于 2011-3-30 22:06:07 | 显示全部楼层
第一条是单位死亡……
回复

使用道具 举报

 楼主| 发表于 2011-3-30 22:15:21 | 显示全部楼层
事件是单位死亡
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 16:44 , Processed in 0.036712 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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