sunkun25184 发表于 2024-5-28 15:23:17

利用buff表,攻击触发,带参数的的BUFF的问题

引擎版本:2024.5.23.0   
问题描述:因为无法直接用BUFF表实现带参数和冷却CD的BUFF,所以采用BUFF了表的攻击触发做了一个监听来实现带参数和冷却CD的BUFF功能,这样写是否比脚本触发节省资源?



编号10043的BUFFID,为常驻BUFF,作为攻击触发用
10043攻击触发,监听触发,获取是否是10044触发的,最后在监听里面判断。






996技术-wang 发表于 2024-5-29 10:25:50

效率基本一样的 都是在触发里弄的

空心菜菜 发表于 2024-7-25 16:55:48

你这个做法我有点没搞懂,你弄这个10044是干嘛的,单纯用来检测是否要ADDBUFF 10026

那你增加10044的时候改成增加10026不就行了。


还有你说的BUFF冷却的问题,我也遇到过,用脚本是可以增加一个倒计时解决,用BUFF表的话,是不是挺尴尬,其实也是可以实现的,仔细看看忽视组的功能,搞一个忽视组的冷却BUFF,这样在这个BUFF存在期间,就不能继续再中BUFF,相当于也是冷却。不过我也是菜鸟,测试通过了有效,还没有经过实战。

vweilai 发表于 2024-7-30 19:53:14

BUFF监听你敢这么玩,卡不死才怪:D

sunkun25184 发表于 2024-8-3 17:29:53

空心菜菜 发表于 2024-7-25 16:55
你这个做法我有点没搞懂,你弄这个10044是干嘛的,单纯用来检测是否要ADDBUFF 10026

那你增加10044的时候 ...

10044上面,还有一个10043,这个10043是万分比的攻击触发,
10043触发了,就会激活10044,和10045。通过监听这两个BUFF(新增),就给对应的状态,我试过了1000的**器,将近300人不卡。

sunkun25184 发表于 2024-8-3 17:33:42

sunkun25184 发表于 2024-8-3 17:29
10044上面,还有一个10043,这个10043是万分比的攻击触发,
10043触发了,就会激活10044,和10045。通过 ...

我主要的几个BUFF,都是执行一个10043(万分比攻击触发),触发监听就会给对应的BUFF(BUFF有冷却CD)

空心菜菜 发表于 2024-8-5 13:56:24

sunkun25184 发表于 2024-8-3 17:29
10044上面,还有一个10043,这个10043是万分比的攻击触发,
10043触发了,就会激活10044,和10045。通过 ...

不卡是因为10044和10045被触发的概率本身不高,所以监听不频繁。

我不明白的是,为啥要通过监听10044和10045,再给10026,直接给10026不行吗?
我猜测是为了给冷却,判断冷却

sunkun25184 发表于 2024-8-7 21:48:20

空心菜菜 发表于 2024-8-5 13:56
不卡是因为10044和10045被触发的概率本身不高,所以监听不频繁。

我不明白的是,为啥要通过监听10044和1 ...

直接给10026也是需要触发条件(触发概率,触发冷却,BUFF数值是否大于0)

sunkun25184 发表于 2024-8-7 21:50:28

空心菜菜 发表于 2024-8-5 13:56
不卡是因为10044和10045被触发的概率本身不高,所以监听不频繁。

我不明白的是,为啥要通过监听10044和1 ...

你可以去试下,这两种方式的耗时,只监听新增,别监听所有。

空心菜菜 发表于 2024-8-7 23:45:48

sunkun25184 发表于 2024-8-7 21:50
你可以去试下,这两种方式的耗时,只监听新增,别监听所有。

你这个我明白了,主要是10026带了时间和层数的参数,时间好说吧默认表里的,层数如果BUFF表触发出来的BUFF,每次应该是1吧
所以你这么做的目的是能直接给到指定BUFF层数,这是BUFF表触发不具备的,所以你才绕了一个弯子,用监听来触发,并且这个监听的频率也不高
技术也说这样效率差不多,那也是一种途径吧,特殊需求。
根据你这个启发,有一些情形我反而觉得你这个更优化啊,
比如玩家血量低于20%的时候,被攻击有几率触发BUFF
我现在是攻击的时候检测血量,加上几率是否执行触发BUFF
这样就可以改成按几率触发BUFF,新增BUFF的时候在监听里检测一下血量是否符合要求即可触发BUFF
感觉好像是要灵活一点,而且避免了每次攻击都去检测血量,应该是优化了吧。


纯属探讨啊兄弟,我是新来的996菜鸟
如果10026不是有参数要求,只有CD冷却的要求,我是这么做的,不知道你觉得如何




10027是新建一个无属性BUFF,只有120秒时效
10043同时按攻击几率触发10026和10027
10027在续存的120秒内,因为忽视组的设置,是无法再触发出10026的,这样就达到了120秒冷却的效果。


页: [1] 2
查看完整版本: 利用buff表,攻击触发,带参数的的BUFF的问题