当英雄佩戴武器时,引擎会触发@HeroTakeOnX事件(X为装备位置),取下时触发@HeroTakeOffX。通过监听武器位置(通常为位置1),读写自定义变量即可实现攻击倍数动态调整。
完整脚本(添加到QFunction-0.txt末尾)
;=============英雄攻击倍数核心脚本=============
;注意:位置1默认是武器栏(根据引擎调整)
;使用变量U3存储英雄原始倍数(避免与其他变量冲突)
[@HeroTakeOn1];英雄佩戴武器时触发
#IF
;检查武器是否带倍数标识(例如:AniCount=100为2倍武器)
CHECKHEROITEMVALUE1AniCount=100
#ACT
;保存英雄原始倍数到U3变量
MOVU3<$HERO.ATTACKMUL>
;设置新倍数(这里2倍,可自定义)
H.CHANGEATTACKMUL2
SENDMSG6〖英雄〗佩戴特效武器!攻击倍数激活:2.0倍
[@HeroTakeOff1];英雄取下武器时触发
#IF
#ACT
;恢复佩戴前保存的原始倍数
H.CHANGEATTACKMUL<$STR(U3)>
SENDMSG6〖英雄〗卸下武器!攻击倍数恢复:<$STR(U3)>倍
配置说明(必做步骤)
1.物品数据库设置(DBC2000或M2数据库)
•找到你的武器:将AniCount字段设为100(作为倍数触发标识)
•示例:屠龙刀的设置
Name屠龙刀
AniCount100;触发倍数标识
...其他字段...
2.位置对应表(常见引擎)
位置编号装备部位
0头盔
1武器
3项链
5手镯(右)
6戒指(右)
3.调试命令(游戏中实时测试)
•查看当前倍数:@查看倍数
[@查看倍数]
#ACT
SENDMSG5主号倍数:<$ATTACKMUL>英雄倍数:<$HERO.ATTACKMUL>
常见问题排查
1.英雄无反应?
•✅检查@HeroTakeOn1是否拼写正确(部分引擎用@HeroEquip1)
•✅确认武器AniCount=100(数据库需重启生效)
•✅M2引擎→选项→功能设置→英雄触发确保已启用
2.取下后倍数错误?
•✅变量冲突:将脚本中的U3改为其他未用变量(如U99)
•✅添加调试命令:
[@HeroTakeOff1]
#ACT
SENDMSG6"调试:正在恢复原始倍数[<$STR(U3)>]"
H.CHANGEATTACKMUL<$STR(U3)>
3.引擎兼容性
•GOM引擎:将H.CHANGEATTACKMUL改为Hero.CHANGEATTACKMUL
•GEE引擎:使用SETATTACKMUL命令:
#ACT
Hero.SETATTACKMUL20;0代表永久生效
完整脚本(添加到QFunction-0.txt末尾)
;=============英雄攻击倍数核心脚本=============
;注意:位置1默认是武器栏(根据引擎调整)
;使用变量U3存储英雄原始倍数(避免与其他变量冲突)
[@HeroTakeOn1];英雄佩戴武器时触发
#IF
;检查武器是否带倍数标识(例如:AniCount=100为2倍武器)
CHECKHEROITEMVALUE1AniCount=100
#ACT
;保存英雄原始倍数到U3变量
MOVU3<$HERO.ATTACKMUL>
;设置新倍数(这里2倍,可自定义)
H.CHANGEATTACKMUL2
SENDMSG6〖英雄〗佩戴特效武器!攻击倍数激活:2.0倍
[@HeroTakeOff1];英雄取下武器时触发
#IF
#ACT
;恢复佩戴前保存的原始倍数
H.CHANGEATTACKMUL<$STR(U3)>
SENDMSG6〖英雄〗卸下武器!攻击倍数恢复:<$STR(U3)>倍
配置说明(必做步骤)
1.物品数据库设置(DBC2000或M2数据库)
•找到你的武器:将AniCount字段设为100(作为倍数触发标识)
•示例:屠龙刀的设置
Name屠龙刀
AniCount100;触发倍数标识
...其他字段...
2.位置对应表(常见引擎)
位置编号装备部位
0头盔
1武器
3项链
5手镯(右)
6戒指(右)
3.调试命令(游戏中实时测试)
•查看当前倍数:@查看倍数
[@查看倍数]
#ACT
SENDMSG5主号倍数:<$ATTACKMUL>英雄倍数:<$HERO.ATTACKMUL>
常见问题排查
1.英雄无反应?
•✅检查@HeroTakeOn1是否拼写正确(部分引擎用@HeroEquip1)
•✅确认武器AniCount=100(数据库需重启生效)
•✅M2引擎→选项→功能设置→英雄触发确保已启用
2.取下后倍数错误?
•✅变量冲突:将脚本中的U3改为其他未用变量(如U99)
•✅添加调试命令:
[@HeroTakeOff1]
#ACT
SENDMSG6"调试:正在恢复原始倍数[<$STR(U3)>]"
H.CHANGEATTACKMUL<$STR(U3)>
3.引擎兼容性
•GOM引擎:将H.CHANGEATTACKMUL改为Hero.CHANGEATTACKMUL
•GEE引擎:使用SETATTACKMUL命令:
#ACT
Hero.SETATTACKMUL20;0代表永久生效

