找回密码
 点一下
查看: 1928|回复: 9

做了个几个英雄,但是有BUG,求哪位大神帮忙看看

[复制链接]
发表于 2013-2-1 00:20:18 | 显示全部楼层 |阅读模式
本帖最后由 2324985 于 2013-2-3 01:09 编辑

本人比较菜,做了几个英雄设计·有个石像鬼的技能研究了一下午+晚上,始终解决不了,有BUG``哪位大神帮帮看看,小弟感激不敬

技能介绍“

技能名称:红莲护卫
技能描叙:缟玛瑙石像鬼拥有惊人的爆发力,想越过它的身躯就如同从死神的镰刀下逃跑一样不切实际
作用方式:被动  
技能效果:700范围内有友军英雄时,每踏入1个敌方单位获得1200%的攻速提升,攻速提升效果保持5/7/9秒,时间分别计算
——多次踏入的单位在技能刷新前不会再次提供攻速,每个分别计算
level 1 :21秒刷新一次
level 2 :14秒刷新一次
level 3 :7秒刷新一次

英雄设计.w3x (67.82 KB, 下载次数: 43)
发表于 2013-2-1 03:29:37 | 显示全部楼层
本帖最后由 chyj4747 于 2013-2-1 03:32 编辑

下次提此类问题时最好能说明遇到的具体bug

于是么。。就说下个人看了T发现的bug和问题吧
貌似有久违的码很多字的感觉……


全局变量:
HongLianHuWei_T:计时器,数组大小1,初始化新建计时器
HongLianHuWei_G:单位组,数组大小1,初始化空单位组(默认)

[trigger]HongLianHuWei
    事件
        单位 - 任意单位 学习技能
    条件
        (学习技能) 等于 红莲护卫
    动作
        设置 HongLianHuWei_G[1] = (新建的空单位组)
        设置 HongLianHuWei_Unit[1] = (触发单位)
        触发器 - 为 HongLianHuWei2 <预设> 添加事件: (单位 - 任意单位进入 700.00 以 HongLianHuWei_Unit[1] 为中心的范围内)
        触发器 - 关闭 (当前触发)
[/trigger]
[trigger]HongLianHuWei2
    事件
    条件
        And - 所有条件成立
            条件
                ((进入的单位) 在 HongLianHuWei_G[2] 中) 不等于 TRUE
                ((进入的单位) 是 英雄) 等于 TRUE
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((进入的单位) 是 (HongLianHuWei_Unit[1] 的所有者) 的敌对单位) 等于 TRUE
                ((进入的单位) 在 HongLianHuWei_G[2] 中) 等于 FALSE
            Then - 动作
                设置 HongLianHuWei_Unit[2] = (进入的单位)
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        (HongLianHuWei_G[1] 中的单位数量) 大于 0
                    Then - 动作
                        单位组 - 添加 HongLianHuWei_Unit[2] 到 HongLianHuWei_G[2]
                        设置 HongLianHuWei_S = (HongLianHuWei_S + 1)
                        单位 - 创建 1 个 MAJIA 给 (HongLianHuWei_Unit[1] 的所有者) 在 (从 (HongLianHuWei_Unit[1] 的位置) 开始,距离 0.00 ,方向为 (HongLianHuWei_Unit[1] 的面向角度) 度的位移处) ,面向角度为 默认建筑朝向 度
                        单位 - 为 (最后创建的单位) 设置 水元素 类型的生命周期,持续时间为 0.50 秒
                        单位 - 设置 最后创建的单位 <New> 的状态为 隐藏
                        如果 ((HongLianHuWei_Unit[1] 的 红莲护卫  技能等级) 等于 1) 成立,则运行 (单位 - 为 (最后创建的单位) 添加 红莲护卫 等级1) 否则运行 (不做任何动作)
                        如果 ((HongLianHuWei_Unit[1] 的 红莲护卫  技能等级) 等于 2) 成立,则运行 (单位 - 为 (最后创建的单位) 添加 红莲护卫 等级2) 否则运行 (不做任何动作)
                        如果 ((HongLianHuWei_Unit[1] 的 红莲护卫  技能等级) 等于 3) 成立,则运行 (单位 - 为 (最后创建的单位) 添加 红莲护卫 等级3) 否则运行 (不做任何动作)
                        单位 - 设置 (最后创建的单位) 的 红莲护卫 等级1 等级为 HongLianHuWei_S
                        单位 - 设置 (最后创建的单位) 的 红莲护卫 等级2 等级为 HongLianHuWei_S
                        单位 - 设置 (最后创建的单位) 的 红莲护卫 等级3 等级为 HongLianHuWei_S
                        单位 - 对 (最后创建的单位) 发布 兽族萨满祭司 - 嗜血术 命令到目标: HongLianHuWei_Unit[1]
                        逆天<YDWE> - 立即运行 HongLianHuWei_T[((HongLianHuWei_Unit[2] 的所有者) 的玩家索引号)] 时间设置: (30.00 - ((转换 (HongLianHuWei_Unit[1] 的 红莲护卫  技能等级) 为实数) + 1.00)) 秒,是否循环: 一次性
                            Timer - 参数
                            Timer - 动作
                                单位组 - 为 HongLianHuWei_G[2] 删除 (HongLianHuWei_G[2] 中第一个单位)
                                设置 HongLianHuWei_S = (HongLianHuWei_S - 1)
                                单位组 - 清空 HongLianHuWei_G[1] 内所有单位
                    Else - 动作
                        不做任何动作
            Else - 动作
                单位组 - 添加 (进入的单位) 到 HongLianHuWei_G[1]
[/trigger]

变量Bug:
首先LZ只给玩家一创建了计时器,即只有HongLianHuWei_T[0]有计时器,别的玩家都没有
然后这是个全局计时器,因此无法实现LZ说的“分别计算”

同理,HongLianHuWei_G这个单位组变量也就只有[0]和[1]号有单位组,HongLianHuWei_G[2]是null,也就是没有单位组
在变量表里HongLianHuWei_G的数组大小是1且初始化写了空单位组于是HongLianHuWei_G[0]=新建单位组
在触发器HongLianHuWei里有HongLianHuWei_G[1]=新建单位组的动作因此[1]号也有单位组
但是[2]号就没有初始化过因此无单位组

假设以下场景:
玩家一有英雄A和B,敌对某玩家英雄C和D,该敌对玩家的计时器简称T,友军单位组简称G1,敌对单位组简称G2
A拥有该技能,B已进入A的范围,即B在G1里
然后C和D分别进来了,当C进入时,C加入G2,A获得嗜血,T开始计时
当D进来后,D加入G2,然后给A重套嗜血,重新开启T
然后C和D离开A的技能范围,B仍在范围内

Bug1:
当T到期时,可能删除C,也可能删除D,单位组的第一个单位并不一定是最早加入单位组的单位
那么假设删除了D,于是当C再次进入A的范围时,由于C在G2里因此不会启动技能;删除C的情况同理

Bug2:
现在假设已经简单处理了Bug1,比如T到期时将G2清空
于是再看T到期后做的第三件事——将G1清空
由于B始终在A的范围内,且没有另外的友军英雄进入A的范围,因此在第一次发动技能T到期后,G1里的单位数等于0
接着不管C或D或别的敌对英雄进入,由于G1等于0也就是“700范围内有友军英雄”这个条件不满足因此不会发动技能


技能的具体效果我没进图测试,只看了一遍T表示能想到的暂时就上面的bug了
然后么说下其他问题……

1. HongLianHuWei2里条件里已经判断了一遍进入单位是否在G2里因此动作里无需再判断一遍,因为在G2里的单位是运行不到触发动作的

2. Else里如果没动作就空着,不用加不做任何动作,且宁可空着也不要加“不做任何动作”,这个不做任何动作的动作会浪费运行效率

3. 看LZ没有要排泄的意思于是每次敌对单位进入后运行HongLianHuWei2的动作就有两个点泄漏什么的暂时就不说了……

4. 那个叫MAJIA的马甲移动速度为0却有转身速度和转向角度……个人表示可能会由于无法转向而放不出嗜血,因此把转身速度和转向角度都改为0吧

5. LZ似乎就只是做个技能演示?那样的话用于地图可能会出现的各种Bug就不说了~

以上~

点评

,先感谢;额,你说的小问题我都解决了,就是那个分别计算,和排泄这么弄啊,要排泄了,怎么判断他在刷新时间内在不再触发啊  详情 回复 发表于 2013-2-1 12:07
a,这么多问题啊,希望能给点解决的办法,本人水平有限,对于指出的问题没办法出手啊,。。。  详情 回复 发表于 2013-2-1 11:23
回复

使用道具 举报

发表于 2013-2-1 08:37:30 | 显示全部楼层
好长的触发,懒得看……不过单技能的描述上就有歧义,无法完全理解……
对于大段的触发,没有[/trigger]无比痛苦啊……不知道头目什么时候能解决……
触发略显繁琐,应该有很多可以简化的地方……
回复

使用道具 举报

 楼主| 发表于 2013-2-1 11:23:48 | 显示全部楼层
chyj4747 发表于 2013-2-1 03:29

a,这么多问题啊,希望能给点解决的办法,本人水平有限,对于指出的问题没办法出手啊,。。。

点评

作为一个伸手党...我想...你直接叫我们帮你做就行啦  详情 回复 发表于 2013-2-1 11:35
回复

使用道具 举报

发表于 2013-2-1 11:35:34 | 显示全部楼层
2324985 发表于 2013-2-1 11:23
a,这么多问题啊,希望能给点解决的办法,本人水平有限,对于指出的问题没办法出手啊,。。。

作为一个伸手党...我想...你直接叫我们帮你做就行啦

点评

你说说这么改就行·  详情 回复 发表于 2013-2-1 11:51
回复

使用道具 举报

 楼主| 发表于 2013-2-1 11:51:00 | 显示全部楼层
本帖最后由 2324985 于 2013-2-1 11:54 编辑
雨····· 发表于 2013-2-1 11:35
作为一个伸手党...我想...你直接叫我们帮你做就行啦

你说说怎么改就行·

在说我要是伸手党的话,我用的着研究这么久吗,还把直接做的技能发出来了,要不直接发帖求技能德了,我是实在没办法了才发的帖,希望哪位能帮助一下

回复

使用道具 举报

 楼主| 发表于 2013-2-1 12:07:25 | 显示全部楼层
chyj4747 发表于 2013-2-1 03:29

,先感谢;额,你说的小问题我都解决了,就是那个分别计算,和排泄这么弄啊,要排泄了,怎么判断他在刷新时间内在不再触发啊
回复

使用道具 举报

发表于 2013-2-1 12:14:37 | 显示全部楼层
2324985 发表于 2013-2-1 12:07
,先感谢;额,你说的小问题我都解决了,就是那个分别计算,和排泄这么弄啊,要排泄了,怎么判断他在刷新 ...


LZ既然用逆天了那么就去学习下局部变量吧~
YD的演示里应该有,或者在论坛搜别人问过的问题也行~

排泄问题也是能搜到的~
回复

使用道具 举报

 楼主| 发表于 2013-2-2 18:42:08 | 显示全部楼层
没其他人来帮帮忙吗···
回复

使用道具 举报

 楼主| 发表于 2013-2-3 01:09:36 | 显示全部楼层
好了,直接看演示接决了·
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 07:48 , Processed in 0.154774 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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