31

回帖

1568

金币

884

积分

积分
884
发表于 2024-5-28 15:23:17 | 显示全部楼层 |阅读模式

马上注册,下载996引擎,与更多游戏开发者交流。

您需要 登录 才可以下载或查看,没有账号?注册

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



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






QQ图片20240528152220.png
QQ图片20240528152246.png
最后回复时间:2024-08-08 16:02:42官方回复了此贴
回复

使用道具 举报

9610

回帖

1万

金币

1万

积分

积分
15311
发表于 2024-5-29 10:25:50 | 显示全部楼层
效率基本一样的 都是在触发里弄的
回复

使用道具 举报

26

回帖

2358

金币

1270

积分

积分
1270
发表于 2024-7-25 16:55:48 | 显示全部楼层
你这个做法我有点没搞懂,你弄这个10044是干嘛的,单纯用来检测是否要ADDBUFF 10026

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


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

使用道具 举报

119

回帖

6882

金币

3755

积分

积分
3755
发表于 2024-7-30 19:53:14 | 显示全部楼层
BUFF监听你敢这么玩,卡不死才怪
回复

使用道具 举报

31

回帖

1568

金币

884

积分

积分
884
 楼主| 发表于 2024-8-3 17:29:53 | 显示全部楼层
空心菜菜 发表于 2024-7-25 16:55
你这个做法我有点没搞懂,你弄这个10044是干嘛的,单纯用来检测是否要ADDBUFF 10026

那你增加10044的时候 ...

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

使用道具 举报

31

回帖

1568

金币

884

积分

积分
884
 楼主| 发表于 2024-8-3 17:33:42 | 显示全部楼层
sunkun25184 发表于 2024-8-3 17:29
10044上面,还有一个10043,这个10043是万分比的攻击触发,
10043触发了,就会激活10044,和10045。通过 ...

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

使用道具 举报

26

回帖

2358

金币

1270

积分

积分
1270
发表于 2024-8-5 13:56:24 | 显示全部楼层
sunkun25184 发表于 2024-8-3 17:29
10044上面,还有一个10043,这个10043是万分比的攻击触发,
10043触发了,就会激活10044,和10045。通过 ...

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

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

使用道具 举报

31

回帖

1568

金币

884

积分

积分
884
 楼主| 发表于 2024-8-7 21:48:20 | 显示全部楼层
空心菜菜 发表于 2024-8-5 13:56
不卡是因为10044和10045被触发的概率本身不高,所以监听不频繁。

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

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

使用道具 举报

31

回帖

1568

金币

884

积分

积分
884
 楼主| 发表于 2024-8-7 21:50:28 | 显示全部楼层
空心菜菜 发表于 2024-8-5 13:56
不卡是因为10044和10045被触发的概率本身不高,所以监听不频繁。

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

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

使用道具 举报

26

回帖

2358

金币

1270

积分

积分
1270
发表于 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冷却的要求,我是这么做的,不知道你觉得如何

001.png


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


回复

使用道具 举报