找回密码
 点一下
查看: 2962|回复: 12

求助BUFF叠加问题

[复制链接]
发表于 2012-7-24 10:46:57 | 显示全部楼层 |阅读模式
我想做一个LOL的,EZ英雄,他有一个被动技能,每次施法提高10%攻击速度,最多叠加5层,持续6秒。
我的做法是判断施法单位是否是EZ,然后给予嗜血技能改得加攻速BUFF,嗜血技能5级,每级个有一个不同的BUFF,然后判断,没有BUFF就给予一级嗜血,如果有一级嗜血BUFF,就给与2级嗜血,以此类推。但是实际效果是,要么没反应,要么就直接跳5层。。。

一下是触发;
咒能高涨_00
┣━事件
┃   └─单位 - 任意单位 发动技能效果
┣━条件
┃   └─((施法单位) 的类型) 等于 未来战士
┗━动作
     └─如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                And - 所有条件成立
                    条件
                        ((施法单位) 拥有 咒能高涨 LV_1 (未来战士)) 等于 TRUE
                        ((施法单位) 拥有 咒能高涨 LV_2 (未来战士)) 等于 TRUE
                        ((施法单位) 拥有 咒能高涨 LV_3 (未来战士)) 等于 TRUE
                        ((施法单位) 拥有 咒能高涨 LV_4 (未来战士)) 等于 TRUE
                        ((施法单位) 拥有 咒能高涨 LV_5 (未来战士)) 等于 TRUE
            Then - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        ((施法单位) 拥有 咒能高涨 LV_1 (未来战士)) 等于 TRUE
                    Then - 动作
                        单位 - 创建 1 个 咒能高涨 (未来战士) 给 ((施法单位) 的所有者) 在 ((施法单位) 的位置) ,面向角度为 默认建筑朝向 度
                        单位 - 为 (最后创建的单位) 设置 水元素 类型的生命周期,持续时间为 2.00 秒
                        单位 - 设置 最后创建的单位 <New> 的状态为 隐藏
                        单位 - 设置 (最后创建的单位) 的 咒能高涨效果 (未来战士) 等级为 2
                        单位 - 对 (最后创建的单位) 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
                    Else - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                ((施法单位) 拥有 咒能高涨 LV_2 (未来战士)) 等于 TRUE
                            Then - 动作
                                单位 - 创建 1 个 咒能高涨 (未来战士) 给 ((施法单位) 的所有者) 在 ((施法单位) 的位置) ,面向角度为 默认建筑朝向 度
                                单位 - 为 (最后创建的单位) 设置 水元素 类型的生命周期,持续时间为 2.00 秒
                                单位 - 设置 最后创建的单位 <New> 的状态为 隐藏
                                单位 - 设置 (最后创建的单位) 的 咒能高涨效果 (未来战士) 等级为 3
                                单位 - 对 (最后创建的单位) 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
                            Else - 动作
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        ((施法单位) 拥有 咒能高涨 LV_3 (未来战士)) 等于 TRUE
                                    Then - 动作
                                        单位 - 创建 1 个 咒能高涨 (未来战士) 给 ((施法单位) 的所有者) 在 ((施法单位) 的位置) ,面向角度为 默认建筑朝向 度
                                        单位 - 为 (最后创建的单位) 设置 水元素 类型的生命周期,持续时间为 2.00 秒
                                        单位 - 设置 最后创建的单位 <New> 的状态为 隐藏
                                        单位 - 设置 (最后创建的单位) 的 咒能高涨效果 (未来战士) 等级为 4
                                        单位 - 对 (最后创建的单位) 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
                                    Else - 动作
                                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                            If - 条件
                                                ((施法单位) 拥有 咒能高涨 LV_4 (未来战士)) 等于 TRUE
                                            Then - 动作
                                                单位 - 创建 1 个 咒能高涨 (未来战士) 给 ((施法单位) 的所有者) 在 ((施法单位) 的位置) ,面向角度为 默认建筑朝向 度
                                                单位 - 为 (最后创建的单位) 设置 水元素 类型的生命周期,持续时间为 2.00 秒
                                                单位 - 设置 最后创建的单位 <New> 的状态为 隐藏
                                                单位 - 设置 (最后创建的单位) 的 咒能高涨效果 (未来战士) 等级为 5
                                                单位 - 对 (最后创建的单位) 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
                                            Else - 动作
                                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                                    If - 条件
                                                        ((施法单位) 拥有 咒能高涨 LV_5 (未来战士)) 等于 TRUE
                                                    Then - 动作
                                                        单位 - 创建 1 个 咒能高涨 (未来战士) 给 ((施法单位) 的所有者) 在 ((施法单位) 的位置) ,面向角度为 默认建筑朝向 度
                                                        单位 - 为 (最后创建的单位) 设置 水元素 类型的生命周期,持续时间为 2.00 秒
                                                        单位 - 设置 最后创建的单位 <New> 的状态为 隐藏
                                                        单位 - 设置 (最后创建的单位) 的 咒能高涨效果 (未来战士) 等级为 5
                                                        单位 - 对 (最后创建的单位) 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
                                                    Else - 动作
            Else - 动作
                单位 - 创建 1 个 咒能高涨 (未来战士) 给 ((施法单位) 的所有者) 在 ((触发单位) 的位置) ,面向角度为 默认建筑朝向 度
                单位 - 为 (最后创建的单位) 设置 水元素 类型的生命周期,持续时间为 2.00 秒
                单位 - 设置 最后创建的单位 <New> 的状态为 隐藏
                单位 - 设置 (最后创建的单位) 的 咒能高涨效果 (未来战士) 等级为 1
                单位 - 对 (最后创建的单位) 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
发表于 2012-7-24 10:56:19 | 显示全部楼层
条件应该分为 有buff和无buff
无buff就添加嗜血

有buff  就获得当前等级(不过我记得buff是无法获得等级的),设置等级+1就行了,不用判断1234.
技能到5级之后就不用往上加,直接马甲放5级嗜血.
例如  Lv = 当前技能等级
         设置 单位技能等级 = Lv+1 就行了
回复

使用道具 举报

 楼主| 发表于 2012-7-24 11:13:22 | 显示全部楼层
忘了说这是一个被动天赋一样的技能,天生就会,英雄只是带一个技能图标而已!
那么6秒的持续效果过了以后,还是要一层层从新叠加!
我现在是把BUFF做了5个不同的效果!判断没这5个BUFF就给一级嗜血,然后如果有一级嗜血BUFF再施法就给予2级嗜血,有两级BUFF施法就给三级嗜血,这样过6秒它自动就会从一级开始了!
现在的问题是,只要我施法,要么没效果,要么直接给5层!我从新写触发从起编辑器都这样!
回复

使用道具 举报

发表于 2012-7-24 11:23:20 | 显示全部楼层
上面不是回答你了吗?

如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                And - 所有条件成立
                    条件
                        ((施法单位) 拥有 咒能高涨 LV_1 (未来战士)) 等于 TRUE
                        ((施法单位) 拥有 咒能高涨 LV_2 (未来战士)) 等于 TRUE
                        ((施法单位) 拥有 咒能高涨 LV_3 (未来战士)) 等于 TRUE
                        ((施法单位) 拥有 咒能高涨 LV_4 (未来战士)) 等于 TRUE
                        ((施法单位) 拥有 咒能高涨 LV_5 (未来战士)) 等于 TRUE

这段完全错误,你能同时拥有5个等级吗?
回复

使用道具 举报

发表于 2012-7-24 11:29:55 | 显示全部楼层
不应该用AND,也许应该用OR
AND表示所有条件都同时满足才能满足条件
回复

使用道具 举报

发表于 2012-7-24 11:29:59 | 显示全部楼层
没有找到lz说的原因,不过有几点是可以吐槽的:
1.因为不能捕捉魔法效果的等级,所以这里应该用不同的魔法效果,但是lz每次捕捉的时候没有删掉前一个魔法效果,这会造成误判
2.等级4和等级5时的动作一样,两段触发可以合并



其实猫咪的建议是,能用数组变量处理的,就用数组变量。lz也许是没有思路吧……

于是给个思路:
1.不需要每次都创建施法马甲,可以只用一个不排泄的施法马甲。
2.虽然无法捕捉魔法效果等级,但是可以再马甲施法的时候变量记录(似乎不需要记录了,可以判断的东西真的很多)。


咒能高涨_00
事件
    单位 - 任意单位 发动技能效果
条件
    ((施法单位) 的类型) 等于 未来战士
动作
    如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
        If - 条件
             ((施法单位) 拥有 咒能高涨 (未来战士)) 等于 TRUE
        Then - 动作
            单位 - 设置 马甲 的 咒能高涨效果 (未来战士) 等级为 ((咒能高涨效果 (未来战士) 等级) + 1)
            单位 - 对 马甲 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
        Else
            单位 - 设置 马甲 的 咒能高涨效果 (未来战士) 等级为  1
            单位 - 对 马甲 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)


使用这种方法,每个英雄都要有自己的专属马甲,因为这里记录buff等级就是使用技能等级的,混用马甲则要单独记录buff等级
回复

使用道具 举报

 楼主| 发表于 2012-7-24 13:27:28 | 显示全部楼层
看了下楼上的,尝试换了个思路,用固定马甲,缺点是只能有一个这个英雄多个同英雄技能会混乱,不过效果是出来了而且反正我也只让他有一个存在。
直接在地图里面建立一个中立马甲,技能能对敌对施放
咒能高涨_00
┣━事件
┃   └─单位 - 任意单位 发动技能效果
┣━条件
┃   └─((施法单位) 的类型) 等于 未来战士
┗━动作
     └─如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((施法单位) 拥有 咒能高涨 (未来战士)) 等于 TRUE
            Then - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        (咒能高涨 (未来战士) 0128 <预设> 的 咒能高涨效果 (未来战士) 技能等级) 小于或等于 5
                    Then - 动作
                        单位 - 设置 咒能高涨 (未来战士) 0128 <预设> 的 咒能高涨效果 (未来战士) 等级为 ((咒能高涨 (未来战士) 0128 <预设> 的 咒能高涨效果 (未来战士) 技能等级) + 1)
                        单位 - 对 咒能高涨 (未来战士) 0128 <预设> 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
                    Else - 动作
                        单位 - 设置 咒能高涨 (未来战士) 0128 <预设> 的 咒能高涨效果 (未来战士) 等级为 5
                        单位 - 对 咒能高涨 (未来战士) 0128 <预设> 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
            Else - 动作
                单位 - 设置 咒能高涨 (未来战士) 0128 <预设> 的 咒能高涨效果 (未来战士) 等级为 1
                单位 - 对 咒能高涨 (未来战士) 0128 <预设> 发布 兽族萨满祭司 - 嗜血术 命令到目标: (施法单位)
回复

使用道具 举报

发表于 2012-7-24 14:42:50 | 显示全部楼层
多英雄是没问题的,只是你没学会数组变量

内容来自[手机版]
回复

使用道具 举报

发表于 2012-7-24 14:55:29 | 显示全部楼层

回 lo 的帖子

lo:多英雄是没问题的,只是你没学会数组变量

内容来自[手机版] &#160;(2012-07-24 14:42)&#160;
既然每个单位有马甲技能做记录,就没必要用数组了呀
回复

使用道具 举报

发表于 2012-7-24 15:30:45 | 显示全部楼层
马甲只记录了buff等级,但还要用数组和英雄绑定才能实现多人化

内容来自[手机版]
回复

使用道具 举报

发表于 2012-7-24 15:50:03 | 显示全部楼层

回 lo 的帖子

lo:马甲只记录了buff等级,但还要用数组和英雄绑定才能实现多人化

内容来自[手机版] &#160;(2012-07-24 15:30)&#160;
buff等级直接从英雄的马甲技能等级获取就好了.英雄的马甲技能就类似于数组的功能了
回复

使用道具 举报

 楼主| 发表于 2012-7-25 16:00:19 | 显示全部楼层
是否可以这样,先不在地图建立马甲。每次有玩家购买EZ就给这个玩家创建一个永久BUFF马甲给单位变量(英雄和BUFF马甲都要)放在地图专门的地方,然后就安上面的一样让这个单位是放BUFF,这样也能保证BUFF不会乱!
回复

使用道具 举报

发表于 2012-7-25 16:34:02 | 显示全部楼层
思路就是 1 创建单位  2 设置嗜血等级为EZ马甲技能等级+1 ,设置马甲技能等级+1   3施放嗜血,

就这么简单.既然每个EZ有自己的马甲技能,单个EZ和多个EZ就没区别了,因为你不需要变量来记录任何东西.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 20:27 , Processed in 0.031541 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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