找回密码
 点一下
查看: 2619|回复: 11

关于类“盛宴”被动技能多重触发实现问题

[复制链接]
发表于 2012-1-27 16:46:41 | 显示全部楼层 |阅读模式
最近做图想到一个问题,就是如何实现各种想法的被动技能,比如5秒一刀致命,5秒一刀分裂什么的,但是实现了又怎么样令他可叠加
比如最容易的办法就是捕捉BUFF什么的,可是BUFF不能叠加的问题就让我们想到各种模拟
因此我做了个演示是单纯捕捉伤害来造成所需要的被动效果,但是又想到幻像可触发的问题,于是去测试了一下DOTA的小狗的“盛宴”
发现原来分身是没办法触发被动效果的,那么以下演示就是可让分身触发被动效果,大家来看下有没有什么可完善的地方。
   

[trigger]Hero 16 C 1
    事件
        单位 - 任意单位 学习技能
    条件
        (学习技能) 等于 灰烬
    动作
        设置 Hero_16_C_Zu[0] = (新建的空单位组)
        设置 Hero_16_C_Zu[1] = (新建的空单位组)
        触发器 - 关闭 (当前触发)[/trigger]
   
[trigger]Hero 16 C 2
    事件
        单位 - 任意单位 被攻击
    条件
        ((攻击单位) 的 灰烬  技能等级) 不等于 0
    动作
        设置 Qing_Z_Shu_1[16] = 17(这里原本是随机数值,为了测试多个幻像是否可以同时对一个目标触发被动而改的数值)
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                Qing_Z_Shu_1[16] 小于或等于 17
            Then - 动作
                单位组 - 为 Hero_16_C_Zu[0] 添加 (触发单位)
                单位组 - 为 Hero_16_C_Zu[1] 添加 (攻击单位)
                设置 Qing_Z_Shu_2[16] = 30
                触发器 - 开启 Hero 16 C 3 <预设>
                触发器 - 开启 Hero 16 C 4 <预设>
            Else - 动作[/trigger]
   
[trigger]Hero 16 C 3
    事件
        时间 - 每 0.01 秒触发事件
    条件
    动作
        设置 Qing_Z_Shu_2[16] = (Qing_Z_Shu_2[16] - 1)
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                Qing_Z_Shu_2[16] 小于或等于 0
            Then - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (Hero 16 C 4 <预设> 处于开启状态) 等于 TRUE
                    Then - 动作
                        触发器 - 关闭 Hero 16 C 4 <预设>
                    Else - 动作
                触发器 - 关闭 Hero 16 C 3 <预设>
                单位组 - 清空 Hero_16_C_Zu[0] 内所有单位
                单位组 - 清空 Hero_16_C_Zu[1] 内所有单位
            Else - 动作[/trigger]
   
[trigger]Hero 16 C 4
    事件
        单位 - 任意单位 接受伤害
    条件
        (单位所受伤害) 不等于 0.00
        ((伤害来源) 的 灰烬  技能等级) 不等于 0
        ((触发单位) 在 Hero_16_C_Zu[0] 中) 等于 TRUE
        ((伤害来源) 在 Hero_16_C_Zu[1] 中) 等于 TRUE
    动作
        触发器 - 关闭 (当前触发)
        设置 Qing_S_Shu_1[16] = ((转换 (Hero[16] 的敏捷值(包括 加成)) 为实数) x (((转换 ((伤害来源) 的 灰烬  技能等级) 为实数) x 0.50) - 0.10))
        单位 - 命令 (伤害来源) 对 (触发单位) 造成 Qing_S_Shu_1[16] 点伤害,攻击类型: 穿刺 伤害类型: 普通
        特殊效果 - 创建并绑定特效到 chest 对 (触发单位) ,使用模型: Abilities\Weapons\DemolisherFireMissile\DemolisherFireMissile.mdl
        特殊效果 - 删除 (最后创建的特效)
        -------- 文字只是为了显示有没有实际砍中人才造成伤害而显示,没实际意义 --------
        漂浮文字 - 创建漂浮文字:(转换 Qing_S_Shu_1[16] 为字符串) 在 (伤害来源) 头顶Z轴偏移 0.00 处,字体大小: 10.00 ,颜色值:(0.00%, 100.00%, 0.00%) ,透明度: 0.00%
        漂浮文字 - 设置 (最后创建的漂浮文字) : 禁用 永久显示.
        漂浮文字 - 设置 (最后创建的漂浮文字) 的移动速率为 64.00 ,方向为 90.00 度
        漂浮文字 - 设置 (最后创建的漂浮文字) 的消逝时间点为 1.00 秒
        漂浮文字 - 设置 (最后创建的漂浮文字) 的生命周期为 3.00 秒
        触发器 - 开启 (当前触发)[/trigger]
 楼主| 发表于 2012-1-27 16:49:37 | 显示全部楼层
以上触发如果带了类似辉耀道具的技能

那么肯定会有误触

这是无可避免的,尽管是DOTA也是会误触

但是正常情况你如果不是每下攻击都按S,基本是6-7下才会误触一下而已

正确判定率还是很高的
回复

使用道具 举报

 楼主| 发表于 2012-1-27 17:32:50 | 显示全部楼层
有人跟我说单位组泄露的问题

我是用C1触发学习技能建了个备用的单位组,然后其他触发有需要用的时候就用

别人说用攻击一次再建一次的方法比较好

但是我觉得那些的话会不会运行消耗比较高?

而且幻像触发了被动不是会再建多几次单位组么。
回复

使用道具 举报

发表于 2012-1-27 20:17:47 | 显示全部楼层
http://bbs.islga.org/read-htm-tid-53308.html
也许这个能对你有所帮助……
DOTA采用的是每攻击一次创建一个伤害触发器的方法。
T里面不能动态创建删除触发器,所以可以通过其他方法来代替……
回复

使用道具 举报

 楼主| 发表于 2012-1-27 21:28:27 | 显示全部楼层
我是看了这贴里面的做法的,不过我觉得太麻烦

所以自己试着写了一个

个人测试觉得没有什么问题,还是挺精准的,只是不知道还有什么地方需要完善而已。
回复

使用道具 举报

发表于 2012-1-27 21:38:36 | 显示全部楼层
额,原来是这样吗~

没有仔细看你的触发。
不过我想的话,如果用“单位组”来记录单位,那么攻击单位就不能对应伤害来源了口牙。
这样,很有可能出现:
A单位攻击B单位,C单位攻击D单位。
C单位有辉耀对B单位造成了伤害,由于B单位在单位组中(被A攻击),因此C对B其触发了盛宴…………
回复

使用道具 举报

发表于 2012-1-27 21:55:57 | 显示全部楼层
考虑到可能还有“毒性攻击”“骨灰盒”“诅咒”等等技能,可能引起的误判还是很多的……后果也比较严重

另外,还有一个非常严重的问题,貌似我没在你的伤害触发中看见“从单位组中删除单位”的触发(造成伤害过后就该移除了,这样一次攻击最多造成一次被动),这样极有可能导致重复伤害,甚至可能单位在一次攻击期间就被造成数十次盛宴伤害……
(比如A有分裂,分裂到了B和C攻击的单位,于是又多造成两次盛宴……)

但是如果删了,那么就会导致两个有被动的单位同时攻击目标时,只有一个才能触发……

最后,貌似你使用的计数变量只有一个,这样如果攻击单位大于一,必定会引起变量冲突……就是说不能多人使用……
(具体就是:A单位攻击B单位一下后跑掉,C单位开始不断攻击B单位,这样就可以使计数变量一直为30,A单位就一直不会从单位组中删除掉(尽管他不再攻击),而此时如果A有辉耀,那么一次辉耀就是一次盛宴…………(尽管A没有发动物理攻击))

而且30也实在太少了~如果别人有一个减攻速的技能,如小鹿,那么可能你一个被动都触发不了~~

所以说用单位组就是一个悲剧……个人感觉希瓦的触发还是比较成熟的,简化的空间不大了~
回复

使用道具 举报

 楼主| 发表于 2012-1-27 22:51:57 | 显示全部楼层

回 煋 的帖子

:考虑到可能还有“毒性攻击”“骨灰盒”“诅咒”等等技能,可能引起的误判还是很多的……后果也比较严重

另外,还有一个非常严重的问题,貌似我没在你的伤害触发中看见“从单位组中删除单位”的触发(造成伤害过后就该移除了,这样一次攻击最多造成一次被动),这样极有可能导致 .. (2012-01-27 21:55)
开始用的并不是单位组

是单位变量

只是没办法满足幻像触发的条件

因此尝试用上了单位组

果然是旁观者清么,自己测试的时候并没有想到这些

虽然知道有辉耀是肯定会误触。
  


我刚刚测试了一次,似乎并不会出现你说的情况

也许是因为0.3秒的判定原因

我按你的设想测试了一次

先用单位A分出镜像

然后用单位A攻击单位B

同时命令镜像A来攻击单位B

单位A离开,但是站在HY类技能的有效范围内

测试发现

并不会出现镜像A攻击中,单位A的HY技能触发情况

但是单位A对着单位B攻击狂按S的时候才会触发HY技能

总结:不攻击HY不会触发,攻击狂按S的话HY必然会触发

但是你说的降低攻击速度确实是个问题,如果攻击速度下降了的话0.3秒的判定将会失效

一次被动都出不来……有待测试。


再次测试发现

如果把判定时间改为50,也就是0.5秒的判定时间,那么你的设想就会成立,也就是说先打一下,另一个上,然后站旁边HY烧,会触发被动

那么0.3秒的判定就是正确选择了

但同时测试了减速的问题

测试数值为:0.25、0.3、0.4、0.5、1.0

只有在0.3以及更低的的数值才不会影响触发被动效果

一旦数值为0.4或以上,那么被动则无法触发

修正设想:
如果是修改HY范围内误触的问题的话,在接受伤害的同时只把伤害来源移出单位组?

如果是修改减速而无法触发被动的问题的话,那把单位组方法取消,改回绑定单位变量?

具体方式是用整数变量记录每一个触发的单位,然后接受伤害是是匹配接受,除非是HY类持续伤害技能先误触被动

不然始终是一刀砍到目标身上才会移除单位变量,而不是用0.3秒的判定?
回复

使用道具 举报

发表于 2012-1-27 23:11:09 | 显示全部楼层
其实单位也可以满足幻像的嘛。

不过你需要把在“学习技能”中注册单位换成在“攻击事件”中注册单位,还需要排除单位已经注册的情况。

还有……其实我记得分身时,幻象是会触发学习技能事件的……这样的话,貌似不需要修改啦……不知道有没有记错~~

点评

个人认为捕捉攻击的 是法球比较好点肯定不误判但有局限性 还有个方法就是捕捉100%重击 基本都兼容 但有一个致命的 1、对建筑无效 2、每次攻击都有打断效果 可能会有影响 不过在攻击判断方面非常完美  详情 回复 发表于 2014-7-26 17:36
个人认为捕捉攻击的 是法球比较好点肯定不误判但有局限性 还有个方法就是捕捉100%重击 基本都兼容 但有一个致命的 1、对建筑无效 2、每次攻击都有打断效果 可能会有影响 不过在攻击判断方面非常完美  详情 回复 发表于 2014-7-26 17:36
回复

使用道具 举报

 楼主| 发表于 2012-1-27 23:31:17 | 显示全部楼层

回 煋 的帖子

:其实单位也可以满足幻像的嘛。

不过你需要把在“学习技能”中注册单位换成在“攻击事件”中注册单位,还需要排除单位已经注册的情况。

还有……其实我记得分身时,幻象是会触发学习技能事件的……这样的话,貌似不需要修改啦……不知道有没有记错~~ (2012-01-27 23:11)
我也是想到了单位变量绑定,Hero[1]必须砍到Unit[1]才会移除变量绑定

昨晚思考了一下

我发现似乎没办法做到判定Hero[1]砍到Unit[1]

而该技能和“盛宴”的最大分别就是该技能是机率触发的

所以感觉还是用单位组判定比较好

总结了以上讨论而最终修改出来的演示

裂焰 - 灰烬.w3x (22 KB, 下载次数: 4)

希望有其他高人更进一步的完善。
回复

使用道具 举报

发表于 2014-7-26 17:36:11 | 显示全部楼层
煋 发表于 2012-1-27 23:11
其实单位也可以满足幻像的嘛。

不过你需要把在“学习技能”中注册单位换成在“攻击事件”中注册单位,还需 ...

个人认为捕捉攻击的 是法球比较好点肯定不误判但有局限性  还有个方法就是捕捉100%重击 基本都兼容  但有一个致命的  1、对建筑无效  2、每次攻击都有打断效果 可能会有影响  不过在攻击判断方面非常完美
回复

使用道具 举报

发表于 2014-7-26 17:36:13 | 显示全部楼层
煋 发表于 2012-1-27 23:11
其实单位也可以满足幻像的嘛。

不过你需要把在“学习技能”中注册单位换成在“攻击事件”中注册单位,还需 ...

个人认为捕捉攻击的 是法球比较好点肯定不误判但有局限性  还有个方法就是捕捉100%重击 基本都兼容  但有一个致命的  1、对建筑无效  2、每次攻击都有打断效果 可能会有影响  不过在攻击判断方面非常完美
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 23:55 , Processed in 0.187756 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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