在传奇服务端配置中,人物升级、杀人、使用物品及执行游戏命令等行为均可通过特定脚本实现自动响应。这些脚本集中存放在服务器目录下的QFunction-0.txt文件中,路径通常为:\Mir200\Envir\Market_def\QFunction-0.txt。以下列出各类触发事件的标准写法与功能说明。
人物升级触发使用[@PlayLevelUp]标签。当角色经验值达到下一等级要求并完成升级动作时,系统自动执行该段脚本。例如:
[@PlayLevelUp]
ACT
SENDMSG 0 恭喜你升到%L级!
其中%L为等级变量,SENDMSG用于向玩家发送提示信息。
杀人触发对应[@KillPlay]标签。当玩家成功击杀另一名玩家后激活。典型应用包括记录击杀次数、发放奖励或触发公告。示例如下:
[@KillPlay]
IF
CHECKPKPOINT > 0
ACT
GIVE 黄金戒指 1
SENDMSG 7 {}击杀了{}!
代表当前角色名,为被杀者名称。
使用物品触发通过[@UseItem]实现。当玩家右键使用背包中的特定道具时触发。需配合CheckItem或CheckItemName判断物品类型。例如检测使用“祝福油”:
[@UseItem]
IF
CHECKITEMNAME 祝福油
ACT
CHANGELEVEL +1
DELITEM 祝福油 1
SENDMSG 5 使用祝福油,等级临时提升!
注意:部分版本需在物品数据库(如StdItems.txt)中设置UseRule=1才能启用此触发。
游戏命令触发依赖[@UserCm]系列标签,为数字编号(如UserCmd0、UserCmd1等)。每个编号对应一个自定义命令,命令前缀通常为@或!。例如定义@checklevel命令:
[@UserCmd0]
IF
ISADMIN
ACT
SENDMSG 0 当前等级:%L,血量:%H/%MHP
需在GameCommand.txt中注册该命令:
0 checklevel 查看角色状态
除上述基础触发外,杀死怪物使用[@OnKillMob],需在地图参数文件(MapInfo.txt)中为对应地图添加ONKILLMON标识;人物死亡触发为[@PlayDie];登录触发为[@Login];退出游戏为[@Logout]。所有脚本均区分大小写,条件判断使用#IF/#ELSE,执行动作以#ACT开头。
实际部署时,应确保脚本语法无误,避免因格式错误导致服务端异常。建议在测试服先行验证逻辑,再上线正式环境。

