找回密码
 点一下
查看: 2277|回复: 18

做了个类似无影拳的技能,可是在多个敌人在范围内的情况下出错,求解。

[复制链接]
发表于 2012-6-10 17:23:05 | 显示全部楼层 |阅读模式
首先情况是这样的

发动技能

会连续每0.2秒对范围内的其中一个敌人进行一个攻击

然后下一个敌人

循环技能等级*3次

范围内存在单个敌人时可正常运行

但是范围内多个敌人时就会出错

情况比如为:

范围内存在A1和A2、A3三个敌人,技能等级一级,攻击三次,分别对三个敌人都瞬移到身边一次,但是却只对A3造成了三个攻击或对A1造成了一下,A2两下,瞬移到A3身边时已经关闭触发了。

演示放上,希望有解决方法。


空 - 战龙在野(新).w3x (22 KB, 下载次数: 26)
发表于 2012-6-10 22:05:40 | 显示全部楼层
其实这类技能演示挺多的……无敌斩似乎也是差不多的效果吧……尝试搜索这两个词吧……
回复

使用道具 举报

 楼主| 发表于 2012-6-11 04:44:00 | 显示全部楼层

回 lo 的帖子

lo:其实这类技能演示挺多的……无敌斩似乎也是差不多的效果吧……尝试搜索这两个词吧…… (2012-06-10 22:05)
无敌斩是直接造成伤害
回复

使用道具 举报

发表于 2012-6-11 08:27:49 | 显示全部楼层
http://wow8.org/bbs/thread-176699-1-8.html

这个是在wow8找到的……你去看看吧……
回复

使用道具 举报

 楼主| 发表于 2012-6-11 09:17:08 | 显示全部楼层

回 lo 的帖子

lo:http://wow8.org/bbs/thread-176699-1-8.html

这个是在wow8找到的……你去看看吧…… (2012-06-11 08:27)
这我看过了,GA也有人发过,主要这种情况是每个敌人只砍一刀,而我的情况是属于每个敌人砍一刀或 等级*3 刀,所以就无法准确
回复

使用道具 举报

发表于 2012-6-11 10:00:07 | 显示全部楼层
其实猫咪不是很清楚那个触发,不过既然不是一次那就重复运行几次触发器就好了……
回复

使用道具 举报

 楼主| 发表于 2012-6-12 05:57:03 | 显示全部楼层

回 lo 的帖子

lo:其实猫咪不是很清楚那个触发,不过既然不是一次那就重复运行几次触发器就好了…… (2012-06-11 10:00)
……

我要做的效果是,发动技能效果,然后随机对范围内的敌人砍等级*3刀,假如范围内只有一个敌人,那么只砍该敌人三刀,如果有三个,那么就随机砍,有可能有人没被砍到……

现在做的情况就是会出现本应该三个每个都被砍一刀的情况,却有一个被砍了两刀。
回复

使用道具 举报

发表于 2012-6-14 08:20:43 | 显示全部楼层
那么就是没有判断敌人数量,只判断出刀数量,也就是触发器的运行次数
回复

使用道具 举报

 楼主| 发表于 2012-6-15 09:50:27 | 显示全部楼层

回 xu695622238 的帖子

xu695622238:那么就是没有判断敌人数量,只判断出刀数量,也就是触发器的运行次数 (2012-06-14 08:20)
演示中有这条触发

而且我说过出刀数是正确的,但是该砍谁谁被砍几刀不正确而已。
回复

使用道具 举报

 楼主| 发表于 2012-6-15 09:50:50 | 显示全部楼层
算了,还是做成一刀流吧。
回复

使用道具 举报

发表于 2012-6-15 19:42:32 | 显示全部楼层
压根没看明白你要砍几刀
如果每个目标1刀不重复,将目标踢出单位组然后再在单位组里选目标即可,如果每次砍要重新搜索目标,还要求不重复,那么可以再单位身上添加标记,(技能、自定义值或者用hashtable存储单位handle的布尔值都行,技能释放完成后情况即可)
如果对每个单位砍不确定刀,那么不踢出单位组,每次选择循环即可
如果对每个单位砍不同的刀数,次数有一定规律,如第一个3刀,第二个2刀,多加一个判断即可

没打开地图,对无敌斩之类的没啥研究,反正要么等待,要么周期计时器,难度完全只在局域数据的延时传递上
回复

使用道具 举报

 楼主| 发表于 2012-6-16 08:14:08 | 显示全部楼层

回 疯人¢衰人 的帖子

疯人¢衰人:压根没看明白你要砍几刀
如果每个目标1刀不重复,将目标踢出单位组然后再在单位组里选目标即可,如果每次砍要重新搜索目标,还要求不重复,那么可以再单位身上添加标记,(技能、自定义值或者用hashtable存储单位handle的布尔值都行,技能释放完成后情况即可)
如果对每个单位砍不 .. (2012-06-15 19:42)
……

我说得就有那么难懂么,我解释一下。

做了个类似无影拳的技能,我想要的效果是:

发动技能效果

随机选取范围内的一个敌人

如果只有一个敌人

那么3刀全砍在它身上

否则哪个敌人被砍几刀都不一定

现在的问题是:不能准确的砍在要被砍的敌人身上

所以我放弃了。

PS:贴子没有作废选项么。
回复

使用道具 举报

发表于 2012-6-17 07:02:09 | 显示全部楼层
   以前有个问题废墟的。


  被我删掉了的貌似
回复

使用道具 举报

发表于 2012-6-17 07:05:07 | 显示全部楼层
然后把问号废墟修改了回来~~

你要求的技能具体做法是。

· 发动技能效果

· 设置单位组。 IF 单位组内单位数量 = 1,
  运行 只砍三刀触发

· IF 单位组内单位数量 ≠ 1
  运行 每个人都砍一刀触发





-w-我记得我很早的一个作品“DiabloⅡ炮串 ”就很类似于此
回复

使用道具 举报

 楼主| 发表于 2012-6-18 08:01:45 | 显示全部楼层

回 okolek 的帖子

okolek: 然后把问号废墟修改了回来~~

你要求的技能具体做法是。

· 发动技能效果
....... (2012-06-17 07:05)
揉脸,并不是指一个人以上就一人一刀,就像无敌斩一样,范围内多个敌人的话就会乱跳什么的……

算了,作废。
回复

使用道具 举报

发表于 2012-6-18 08:17:05 | 显示全部楼层
好吧 貌似楼主纠结的不是单位的问题……
楼主说的貌似是触发里面本应该砍中的目标没有受到伤害  对吧……
回复

使用道具 举报

 楼主| 发表于 2012-6-19 09:41:15 | 显示全部楼层

回 破喉咙 的帖子

破喉咙:
好吧 貌似楼主纠结的不是单位的问题……
楼主说的貌似是触发里面本应该砍中的目标没有受到伤害  对吧……
对……

38070923fb71430d925807df.gif
回复

使用道具 举报

发表于 2012-6-19 10:45:20 | 显示全部楼层
嘛。。逻辑问题……


[trigger]Hero 51 V 2 Time
    事件
        时间 - 每当游戏逝去 0.20 秒
    条件
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                (Hero[51] 是存活的) 等于 TRUE
                Qing_Z_Shu_2[51] 小于或等于 ((Hero[51] 的 战龙在野  技能等级) x 3)
            Then - 动作
                设置 Qing_Z_Shu_2[51] = (Qing_Z_Shu_2[51] + 1)
                设置 Point_3[51] = (Hero[51] 的位置)
                设置 QingZu_2[51] = (半径为 500.00 圆心为 Point_3[51] 且满足 ……
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        (QingZu_2[51] 中的单位数量) 不等于 0
                    Then - 动作
                        单位组 - 选取 QingZu_2[51] 内所有单位做动作
                            Loop - 动作
                                设置 Unit_1[51] = (QingZu_2[51] 中随机选取的一个单位)
                        ……(这里有移动英雄动作)
                        单位 - 对 Hero[51] 发布 攻击一次 命令到目标: Unit_1[51]
                        ……
[/trigger]
[trigger]Hero 51 V 3
    事件
        单位 - 任意单位 被攻击
    条件
        ……
        Qing_Z_Shu_2[51] 大于 ((Hero[51] 的 战龙在野  技能等级) x 3)
    动作
        单位 - 对 (攻击单位) 发布 停止 命令
[/trigger]
以上两个是主要T,没用的部分我省略了~

情景:技能等级1,也就是砍三下
Qing_Z_Shu_2[51],这个是用来计数的,简称QZS2,初始为0
砍第一刀前,QZS2<=3,所以QZS2=1,然后出手砍
砍第二刀前,QZS2<=3,所以QZS2=2,然后出手砍
砍第三刀前,QZS2<=3,所以QZS2=3,然后出手砍
欲砍第四刀,QZS2<=3,所以QZS2=4,然后英雄移动+欲砍
这时,Hero 51 V 3被触发,由于QZS2>3,所以被阻止

那么其实LZ所谓的砍的单位数不对,以及最后移动到单位面前却没砍的原因是:
正确地砍了三刀后移动到一个新的单位处,欲砍却被阻止

改的话只要将QZS2<=3改成QZS2<3就行了;
另外Hero 51 V 3个人觉得不需要,第四刀的时候由于QZS2<3==false,所以英雄会被变身还原,而该英雄的攻击回复点是0.3(加攻速不影响这个),比循环时间要长,即便是主动攻击,还没出手就被还原了
回复

使用道具 举报

发表于 2012-6-20 12:06:57 | 显示全部楼层
话说这帖是不是应该算解决了~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 19:54 , Processed in 0.112750 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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