一、词条脚本的本质与存放位置
“词条脚本”并非独立程序,而是服务端通过全局功能脚本(QFunction-0.txt)监听装备穿戴/脱下事件,动态修改人物属性的规则集。所有触发逻辑均写在 D:\MirServer\Mir200\Envir\Market_Def\QFunction-0.txt 文件中。
关键路径说明
• 脚本文件:Mir200\Envir\Market_Def\QFunction-0.txt
• 数据库关联:StdItems.DB 中的物品名称必须与脚本内的名称严格一致(区分大小写)。
二、基础穿戴触发脚本写法
以“屠龙刀佩戴后增加100点HP,脱下后还原”为例,演示标准格式。
1. 穿戴触发([@TakeOnX])
X 代表装备位置编号(武器=1,衣服=0,项链=3,头盔=4,手镯=5/6,戒指=7/8)。
[@TakeOn1] // 1代表武器位置
#IF
CheckItemw 屠龙 // 检测当前武器是否为屠龙
#ACT
ChangeHumAbility 11 + 100 // 11代表MaxHP,增加100点
SendMsg 5 触发词条:血量+100
Break
2. 脱下触发([@TakeOffX])
必须对应设置脱下逻辑,否则属性会永久保留导致BUG。
[@TakeOff1]
#IF
CheckTakeOffItem 屠龙
#ACT
ChangeHumAbility 11 - 100 // 减去100点HP
SendMsg 5 词条失效:血量恢复原状
Break
属性代码参考:1=防御下限,2=防御上限,5=攻击下限,6=攻击上限,11=MaxHP,12=MaxMP,21=幸运。
三、进阶随机词条与概率触发
若需实现“攻击时有10%概率触发致命一击”等动态效果,需结合攻击触发标签。
1. 攻击触发逻辑
在 QFunction-0.txt 中添加 [@Attack] 节,配合 RANDOM 实现概率判定。
[@Attack]
#IF
CheckItemw 倚天剑 // 检测武器
Random 10 // 10%概率
#ACT
PlayEffect 11 // 播放特效
M.HumanHP - 500 // 对目标造成500点额外伤害
SendMsg 6 倚天剑词条触发:剑气纵横!
Break
2. 随机属性变量
对于“鉴定类”随机词条,通常配合 MOVR(随机赋值变量)实现。例如装备生成时执行 MOVR S$额外攻击 1 5,将 S$额外攻击 设为1-5的随机数,穿戴时通过 ChangeHumAbility 6 + 应用该变量值。
四、套装词条(多件套)配置
当穿戴多件装备激活隐藏属性时,需使用套装触发标签。
1. 套装表定义
在 Mir200\Envir\ItemSetList.txt 中定义套装组成(如圣战套装包含项链、手镯、戒指)。
[圣战套装]
圣战项链
圣战手镯
圣战戒指
2. 脚本触发
在 QFunction-0.txt 中监听套装激活事件(标签中的数字对应套装ID)。
[@GroupItemOn1] // 套装ID=1激活
#ACT
ChangeHumAbility 6 + 10
SendMsg 5 圣战套装激活:攻击上限+10
[@GroupItemOff1] // 套装失效
#ACT
ChangeHumAbility 6 - 10
Break
五、常见问题与调试
1. 词条不生效
• 路径错误:确认脚本是否保存在 Market_Def\QFunction-0.txt,而非 MapQuest_Def。
- 名称不匹配:CheckItemw 中的装备名必须与数据库 StdItems.DB 的 Name 字段完全一致(如“屠龙”不能写成“屠龙刀”)。
- 位置码错误:手镯位置是5和6,戒指是7和8,写错位置码会导致脚本不执行。
2. 属性叠加BUG
务必成对编写 @TakeOnX 和 @TakeOffX。若只写穿戴不写脱下,角色下线再上线或切换装备时属性会重复叠加,导致数据异常。
3. 重载脚本
修改 QFunction-0.txt 后,必须在M2引擎控制台点击“重新加载 -> 功能脚本”或“重载QF脚本”,修改才会生效。直接重启服务端亦可。

