传奇游戏命令脚本触发事件详解

来源: 作者: 点击:
在传奇服务端配置中,人物升级、杀人、使用物品及执行游戏命令等行为均可通过特定脚本实现自动响应。这些脚本集中存放在服务器目录下的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开头。

实际部署时,应确保脚本语法无误,避免因格式错误导致服务端异常。建议在测试服先行验证逻辑,再上线正式环境。