当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

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

热度:
核心触发命令与脚本文件定位

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

升级触发脚本命令

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

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

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

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

杀人触发脚本命令

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

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

[@PlayDie]
#IF
KILLBYHUM
#ACT
SENDMSG0玩家【<$KILLER>】在%m(%x%y)击杀了【<$USERNAME>】
BREAK
#IF
KILLBYMON
#ACT
SENDMSG0【<$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
SENDMSG7使用经验卷轴,获得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
SENDMSG7成功开通会员功能!
#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
SENDMSG7你杀死了一只鸡!

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

引擎差异与常见问题

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

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

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