找回密码
 立即注册
查看: 279|回复: 21

脚本大神知识分享,关于各种属性效果叠加的最佳写法。学会让你事半功倍。

[复制链接]

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
发表于 2026-3-27 15:28:25 | 显示全部楼层 |阅读模式

      我之前已经在论坛分享了很多脚本写法的小技巧。今天再来分享一期硬核的。也是经常有各种小白在论坛问的。关于各种属性效果叠加效果的正确写法。
      首先我们写脚本要明确一点,就是为了防止玩家卡BUG,我们最好在玩家每次上线或者更新指定装备以及开启指定功能的时候,就要对其的叠加的属性进行一次新的检测和刷新。这样才能最大程度降低游戏出现卡属性的问题。广大GM们真的不要试图低估玩家的智商,不然就不会出现各种开服的小白 这里被刷 那里被刷了。基本都是自己的不严谨造成的
      好了回到正题。比如我的服会员爆率提升200%,狂暴爆率提升50%,沙城捐献爆率提升100%,佩戴开天爆率提升100%,佩戴天魔神甲爆率提升50%。而且玩家一旦取下装备,狂暴没了,还要实时刷新玩家当前的爆率,这样一个脚本怎么写呢??
       首先我们在QuestDiary文件内新建一个记事本文件。命名为“爆率倍数叠加.txt\",当然这个的名字可以随便取。
里面内容如下
[@爆率叠加检测]
{
#IF
#ACT
MOV  N20  100    ;这里是将玩家爆率倍数先设置到初始倍数。变量N20是叠加的倍数值。

#IF
check [30] 1
#ACT
INC  N20 200    ;我的服会员的个人标识是[30],你们根据自己的来,N20值增加200.

#IF
check [31] 1
#ACT
INC  N20 50    ;我的服狂暴的个人标识是[31],你们根据自己的来,N20值增加50


#IF
check [32] 1
#ACT
INC  N20 100    ;我的服捐献的个人标识是[32],你们根据自己的来,N20值增加100

#IF
check [32] 1
#ACT
INC  N20 100    ;我的服捐献的个人标识是[32],你们根据自己的来,N20值增加100

#IF
checkitemw 开天
#ACT
INC  N20 100    ;佩戴开天N20值增加100


#IF
checkitemw 天魔神甲
#ACT
INC  N20 100    ;佩戴天魔神甲N20值增加100

#IF
#ACT
KILLMONBURSTRATE  <$STR(N20)>   0   1   ;最后这里结算玩家所有东西总加成的爆率
break

你的服有什么功能加爆率或者什么装备加爆率你就往里面加,但是检测段切记不能加break。不然后面的脚本就不能正常执行了。只有执行段可以加break。

QM内上线触发添加。这样玩家上线系统就会自动检测和刷新叠加倍数了。
[@Login]
#CALL [\\\\爆率倍数叠加.txt] @爆率叠加检测


因为有佩戴装备触发爆率功能,所以我们在QF内添加穿戴触发检测就行了。10月1日的引擎已经添加了所有装备统一佩戴脱下触发,写起来更方便了。

[@TakeOnEx]
#CALL [\\\\爆率倍数叠加.txt] @爆率叠加检测
[@TakeOffEx]
#CALL [\\\\爆率倍数叠加.txt] @爆率叠加检测


这样玩家不管脱装备还是戴装备都会实时刷新个人爆率了。


至于玩家开会员,狂暴,捐献的时候加的爆率如果你提示让玩家下线再刷新爆率就QM上线触发那里加一段就行了,如果你想实时刷新,让玩家省事点不用下线,就在开会员狂暴捐献的执行段脚本内加入”#CALL [\\\\爆率倍数叠加.txt] @爆率叠加检测” 。


如果你的服有那种死亡后不用小退几秒后回城的,或者玩家死了后狂暴掉了,装备掉了。一定要在死亡触发内加入#CALL [\\\\爆率倍数叠加.txt] @爆率叠加检测。。。这样爆率也会实时刷新了。。



所有的属性叠加都适用以上方法,比如倍攻,经验倍数,吸血值。伤害附加等等。不一一举例了。





2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 15:28:25 | 显示全部楼层
学到了!66666666666666666666666666666

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 15:28:25 | 显示全部楼层
弱弱的问一句  这写法 有什么特别的嘛 我看了半天 平时不都这样用吗?

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 15:28:25 | 显示全部楼层
我是直接用U变量的。
至需要最后刷新倍率脚本即可

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 15:28:25 | 显示全部楼层
442671 发表于 2020-10-19 10:22 我是直接用U变量的。
至需要最后刷新倍率脚本即可
曾经 U变量是非常珍贵的 不可再生资源

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 15:28:25 | 显示全部楼层
这个方法很实用。学废了

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 15:28:25 | 显示全部楼层
学到了!66666666666666666666666666666

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 15:28:25 | 显示全部楼层
有99+ 吗我

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 15:28:25 | 显示全部楼层
分享一下我经常用的写法,可以应用到定时器和各种实时监测数据,和登录检测!
========================
;===========================初始化爆率
#IF
#ACT
MOV N$杀怪爆率 100
;===========================狂暴之力
#IF
CHECKFENGHAO 狂暴之力
#ACT
INC N$杀怪爆率 20
;===========================元宝捐献
#IF
equal A4 <$USERNAME>
#ACT
INC N$杀怪爆率 50
#IF
equal A5 <$USERNAME>
#ACT
INC N$杀怪爆率 40
#IF
equal A6 <$USERNAME>
#ACT
INC N$杀怪爆率 30
#IF
equal A7 <$USERNAME>
#ACT
INC N$杀怪爆率 20
#IF
equal A8 <$USERNAME>
#ACT
INC N$杀怪爆率 10
;===========================杀怪爆率生效
#IF
NOT equal  N$杀怪爆率 <$STR(N$杀怪爆率2)>
#ACT
MOV N$杀怪爆率2 <$STR(N$杀怪爆率)>
KILLMONBURSTRATE <$STR(N$杀怪爆率)> 0 0
BREAK
;===========================
我的这段脚本是用在定时器的,为了实时更新爆率数据!
最后这段这样写是为了优化脚本,节约系统资源。

2797

主题

3万

回帖

2801

积分

金牌会员

积分
2801
 楼主| 发表于 2026-3-27 15:28:25 | 显示全部楼层
jiafan98 发表于 2020-10-18 20:36 弱弱的问一句  这写法 有什么特别的嘛 我看了半天 平时不都这样用吗?
分享是一种美德,总有一些新手不知道的,总能帮助一些人嘛

© 2026 折翼天使社区 版权所有