传奇人物触发命令脚本与QFunction-0配置详解

来源: 作者: 点击:
核心触发命令与脚本文件定位

传奇引擎的人物事件触发(升级、杀人、使用物品)均通过QFunction-0.txt(功能脚本)与QManage.txt(登录脚本)实现。QFunction-0位于Mir200\Envir\Market_Def\目录,是处理实时游戏事件的核心文件。

升级触发脚本命令

当人物等级提升时,自动执行[@PlayLevelUp]段内的逻辑。常用于发放等级奖励或开启功能。

标准升级触发脚本
[@PlayLevelUp]
#IF
CHECKLEVELEX = 35
#ACT
GIVE 雷霆剑法 1
SENDMSG 0 玩家【<$USERNAME>】达到35级,领悟雷霆剑法!
BREAK
#IF
CHECKLEVELEX = 50
#ACT
GAMEGOLD + 1000
SENDMSG 0 恭喜【<$USERNAME>】达到50级,奖励1000元宝!
BREAK

• CHECKLEVELEX:检测当前等级,支持 =、>、< 逻辑。

• BREAK:防止脚本继续向下执行,避免重复触发。

杀人触发脚本命令

当玩家击杀另一名玩家(非怪物)时,触发[@KillPlay]段。可用于增加PK惩罚或击杀奖励。

杀人触发与死亡判定脚本
[@KillPlay]
#IF
#ACT
SENDMSG 0 玩家【<$USERNAME>】刚刚击杀了【<$KILLER>】,技压群雄!
BREAK

[@PlayDie]
#IF
KILLBYHUM
#ACT
SENDMSG 0 玩家【<$KILLER>】在%m(%x,%y)击杀了【<$USERNAME>】
BREAK
#IF
KILLBYMON
#ACT
SENDMSG 0 【<$USERNAME>】在%m(%x,%y)被怪物【<$KILLER>】击杀
BREAK

• <$KILLER>:系统变量,代表击杀者的名字。

• KILLBYHUM / KILLBYMON:判断是被玩家杀死还是被怪物杀死。

使用物品触发脚本命令

通过物品数据库的Anicount或Reserved字段绑定脚本。物品使用后触发[@StdModeFuncX],其中X为物品字段中填写的数字编号。

数据库与脚本联动配置
1. 数据库设置:在物品DB中,将需要触发脚本的物品的Anicount字段设置为一个唯一数字(如100)。
2. 脚本编写:在QFunction-0.txt中编写对应编号的脚本段。

经验卷轴触发示例
;使用“经验卷轴”触发(数据库Anicount=100)
[@StdModeFunc100]
#IF
#ACT
CHANGEEXP + 1000000
SENDMSG 7 使用经验卷轴,获得100万经验!
BREAK

• CHANGEEXP:增加人物经验值。

• 编号匹配:[@StdModeFunc100]中的100必须与数据库中的Anicount值完全一致。

游戏命令与自定义触发

玩家在聊天框输入特定命令(如@会员)时,触发对应的脚本段。命令与脚本标签的映射关系在UserCmd.txt中定义。

命令触发配置流程
1. 定义命令:在Envir\UserCmd.txt中添加一行:会员 Member(格式:显示文字 脚本标签)。
2. 编写脚本:在QFunction-0.txt中编写[@Member]段。

会员命令脚本示例
[@Member]
#IF
CHECKGAMEGOLD > 99
#ACT
GAMEGOLD - 100
SENDMSG 7 成功开通会员功能!
#ELSEACT
MESSAGEBOX 开通会员需要100元宝!

• CHECKGAMEGOLD:检测玩家元宝数量。

• #ELSEACT:条件不满足时执行的动作。

登录触发与地图杀怪触发

登录触发(位于QManage.txt)
玩家上线时自动执行[@Login]段,常用于初始化变量或发放上线奖励。
[@Login]
#IF
ISNEWHUMAN
#ACT
GIVE 新手剑 1
GIVE 布衣 1
BREAK

• ISNEWHUMAN:检测是否为新人(首次上线)。

杀怪触发(地图事件)
需在MapInfo.txt中为地图添加ONKILLMON参数,并在QFunction-0.txt中使用[@OnKillMob]标签。
;MapInfo.txt中配置
[0 比奇省] ONKILLMON

;QFunction-0.txt脚本
[@OnKillMob]
#IF
CheckKillMonName 鸡
#ACT
SENDMSG 7 你杀死了一只鸡!

• CheckKillMonName:检测被杀死的怪物名称。

引擎差异与常见问题

• GOM/GEE引擎:完全支持上述@PlayLevelUp、@StdModeFuncX标准格式,兼容性最好。

• HGE/翎风引擎:部分版本对变量(如<$KILLER>)的引用方式略有不同,需参考对应引擎说明书。

• 触发无效排查:检查QFunction-0.txt是否保存为ANSI编码;确认物品的Anicount编号与脚本中的X是否匹配;M2引擎需重载QF脚本(@ReloadManage)才能生效。