白庙吴彦祖 发表于 2025-3-24 03:48:23

分享一个关于爆率控制的心得(翎风)

本帖最后由 白庙吴彦祖 于 2025-3-24 03:51 编辑

接触传奇差不多个把月吧,就单纯的几个朋友玩,从开始某玩然后到各种BBK,吃过亏上过当(也可能是自己菜),感觉还是奇速有爱!

话不多说,言归正传,如有不对,还请指教!
爆率控制:
爆率是由KILLMONBURSTRATE来赋予的,一般版本脚本里面都有爆率控制的文件。
比如下面所示:
脚本开头设定初始值为0(这个初始值可以自由变更),假爆(就是游戏里面显示的爆率),真爆(实际KILLMONBURSTRATE赋予的值)。

#IF
#ACT

MOV N$假爆 0



MOV N$真爆 0

检测条件来增加爆率值,可以是区名、装备、称号、货币、变量等等。

#IF
CHECKFENGHAO 奇速      ;检测拥有称号奇速
#ACT
INC N$假爆 50                ;增加假爆50
INC N$真爆 50                ;增加真爆50


#IF


CheckContainsText <$SERVERNAME> 01区   ;检测区名包含01区
CheckContainsText <$SERVERNAME> 一区   ;检测区名包含一区
#ACT
MOV N$假爆 100            ;设置假爆100
MOV N$真爆 100            ;设置真爆100



#IF
CHECKITEM **            ;检测是否拥有物品**


#ACT
INC N$假爆 50                ;增加假爆50
INC N$真爆 50                ;增加真爆50




#IF
CHECKITEMW ** 1      ;检测是否装备物品**
#ACT
INC N$假爆 50               ;增加假爆50
INC N$真爆 50             ;增加真爆50



其他检测条件就不列举出来了,翎风引擎说明书里面也有。
下面说关于个人变量,比如杀怪来增加爆率,杀怪数量,增加爆率数值。
首先我们要用到两个变量来控制,自己查询未使用的变量,一个变量是统计杀怪数量,一个是来用于计算杀怪增加爆率。
下面假设用U110和U111来控制:
在QF文件里面找到[@OnKillMob](如果没有可以自己添加),在下面添加以下内容:
[@OnKillMob]                                                       ;击杀怪物触发


#IF


LARGE <$ATTACKMONSTER_MAXHP> 1000             ;检测击杀目标血量大于1000

SMALL <$ATTACKMONSTER_MAXHP> 2000             ;检测击杀目标血量小于2000
NOT CHECKCURRTARGETRACE = 0                         ;检测击杀目标不是玩家(人物)
;看情况自行添加或者删除检测条件
#ACT
INC U110 1                                                    ;个人变量U110增加1

;杀怪货币也是OnKillMob控制的哦,可以自己延伸。
#IF
LARGE U110 1999                                                 ;检测U110大于1999,也就是击杀2000个怪
#ACT
INC U111 1                                                           ;个人变量U111增加1
MOV U110 0                                                          ;设置个人变量U110为0,也就是清空杀怪数
#CALL [\属性\爆率.txt] @爆率                                ;重载一次爆率文件,路径、文件名、字段名称参考自己的版本
BREAK                                                                  ;OnKillMob到此结尾。


好了,咱们回到爆率控制文件,在后面添加以下内容:

#IF
LARGE U111 99                                                   ;检测个人变量U111大于99
#ACT

MOV U111 100                                                      ;设置个人变量U111为100,相当于5000爆率封顶
;其实可以在QF击杀触发检测条件里面添加一条SMALL U111 100 (相当于只有U111小于100才会触发后面的条件),就样就不用在爆率文件里面添加上面这几条了,只不过我现在是这样设置的,懒得改了,直接复制过来了。


#IF
#ACT

MOV N$爆率系数 50                                                                   ;设置一个爆率系数,后面要用。
FORMULATION <$STR(u111)>*<$str(n$爆率系数)> N$打怪爆率    ;计算打怪增加爆率数值,前文提到U110要大于1999才会在U111增加1,这一条的意思就是每打2000个怪增加50的爆率。






#IF
#ACT
INC N$假爆 <$STR(N$打怪爆率)>                      ;增加虚假爆率,数值就是上面计算出来的数值。
INC N$真爆 <$STR(N$打怪爆率)>                     ;增加真实爆率,数值就是上面计算出来的数值。



#IF
#ACT
KILLMONBURSTRATE <$STR(N$真爆)> 0 0 1                                            ;设置真实爆率为本脚本所有真爆数值的总和。

SENDMSG 7 系统提示:当前杀怪爆率为<$KILLMONBURSTRATE>倍!           ;聊天信息里面提示当前杀怪爆率为多少倍,比如真爆数值最后的和为5566,这里就会提示55.66倍。
假爆的数值一直没有提到,这个具体的看版本设置是否有这个需求。


下面再延伸一个会员相关的设定,比如卖背包神器,或者卖会员,然后来实现爆率翻倍,同样也是在爆率控制文件里面,最后增加下面内容:

#IF
CHECKITEM 奇速会员                                                                                             ;检测是否拥有物品奇速会员,这个检测条件根据自己服的设定来,也可以是称号。
#ACT
MOV N$会员系数 2                                                                                                    ;设置翻倍系数。
FORMULATION <$STR(N$真爆)>*<$str(N$会员系数)> N$最终爆率                              ;计算最终爆率,就是所有真爆的数值乘以会员系数。
KILLMONBURSTRATE <$STR(N$最终爆率)> 0 0 1                                                       ;设置真实爆率为最终爆率数值。
SENDMSG 7 系统提示:会员爆率已激活,当前杀怪爆率为<$KILLMONBURSTRATE>倍!;聊天信息里面提示当前杀怪爆率为多少倍,设置真实爆率为最终爆率数值。


更多爆率控制,也是同样的道理,献丑了!




sd8074263 发表于 2025-3-24 04:34:43

技术贴 顶啊

小马 发表于 2025-3-24 09:36:39

学习了!顶

qq20800 发表于 2025-3-24 16:11:51

还得的是彦祖啊
:):):):)

qszymj 发表于 2025-3-24 18:39:25

不错,谢谢分享

ldwz 发表于 2025-3-24 19:34:10

新人学习一下。。。高端帖子。。
页: [1]
查看完整版本: 分享一个关于爆率控制的心得(翎风)