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

