传奇脚本引擎(以GOM、GEE、HERO、V8主流引擎为例)采用类C语言的条件分支结构,依托#IF、#ACT、#ELSEACT三大关键字组织逻辑,命令由大写字母与下划线构成,参数间严格区分空格与分隔符,以下分类详列常用命令的标准语法格式。
条件判断命令#IF段语法
IF段用于检测条件是否成立,支持单个或多个条件并用AND、OR、NOT连接,条件必须写在#IF与#ACT/#ELSEACT之间,每个条件独占一行。格式:
#IF
CHECKLEVEL>50
CHECKGOLD100000
#ACT
常用条件命令格式包括:
•CHECKLEVEL>数值/=数值/<数值:检测人物等级
•CHECKGOLD数值:检测金币是否大于等于指定值
•CHECKITEM物品名数量:检测背包指定物品数量
•CHECKBAGSIZE数值:检测背包空位是否大于等于数值
•CHECKJOB职业名:检测职业,职业名填Warrior/Wizard/Taoist或Warr/Wizard/Taoist
•CHECKGENDER性别:性别填MAN或WOMAN
•CHECKSLAVECOUNT数值:检测当前召唤物数量
•CHECKMAPNAME地图名:检测当前所在地图
•CHECK[数值]0/1:检测人物标识位,0为未开启,1为开启
•EQUAL变量名值:检测变量是否等于指定值
•LARGE变量名值:检测变量大于指定值
•SMALL变量名值:检测变量小于指定值
执行命令#ACT段语法
ACT段在#IF条件成立时执行,支持多条命令逐行写入,每条命令占一行。格式:
#ACT
GAMEGOLD+500
GIVE裁决之杖1
SENDMSG6恭喜获得奖励!
BREAK
常用执行命令格式包括:
•GAMEGOLD+/-/=数值:操作元宝数量
•GOLD+/-/=数值:操作金币数量
•GIVE物品名数量品质:给予物品,品质参数可选
•TAKE物品名数量:扣除物品
•MAPMOVE地图编号X坐标Y坐标:传送至指定地图坐标
•ADDSKILL技能名等级:学习技能,等级0-3
•DELSKILL技能名:删除技能
•SET[数值]0/1:设置人物标识位
•MOV变量名值:给变量赋值
•INC变量名值:变量增加
•DEC变量名值:变量减少
•CLEARMAPMON地图编号:清除指定地图怪物
•RECALLMOB怪物名数量等级叛变时间(秒):召唤怪物为宝宝
•SENDMSG消息类型消息内容:发送屏幕消息,类型0-7颜色不同
•CLOSE:关闭NPC对话框
条件不成立#ELSEACT段语法
IF条件不成立时执行#ELSEACT段,必须与#IF配对使用,中间不能插入其他段。格式:
#IF
CHECKLEVEL>40
#ACT
GAMEGOLD+1000
#ELSEACT
SENDMSG6等级不足40级,无法领取!
CLOSE
NPC对话与菜单跳转语法
NPC脚本以[@Main]为主入口标签,[@标签名]定义子菜单,通过goto跳转。格式:
[@Main]
欢迎来到土城药店!\
<购买药品/@BuyDrug>\
<离开/@Exit>
[@BuyDrug]
#IF
CHECKGOLD5000
#ACT
TAKE金币5000
GIVE太阳水1
SENDMSG6购买成功!
goto@Main
#ELSEACT
SENDMSG6金币不足!
goto@Main
常用NPC交互命令包括:
•<显示文字/@跳转标签>:创建可点击按钮
•{显示文字|颜色代码}:彩色文字
•\:换行符
•CLOSE:关闭对话框
•EXIT:退出脚本执行
变量系统与运算语法
变量分为人物变量、全局变量、临时变量,支持数值与字符串操作。格式:
•VARInteger/StringHUMAN/Global变量名:声明变量
•LOADVAR变量名文件名.txt:加载变量值
•SAVEVAR变量名文件名.txt:保存变量值
•CALCVAR变量名+/-/*//数值:变量运算
•MOV变量名值:赋值
•INC变量名值:累加
•DEC变量名值:递减
•EQUAL变量名值:判断相等
•LARGE变量名值:判断大于
•SMALL变量名值:判断小于
物品触发与装备镶嵌语法
装备穿戴、取下、使用可触发QFunction-0.txt中对应标签。格式:
•[@TakeOnX]:X为装备物品IDX,穿戴触发
•[@TakeOffX]:取下触发
•[@UseItemX]:使用触发
•[@StdModeFuncX]:X为物品数据库AniCount值,双击触发
定时器与全局事件语法
•SetOnTimer定时器编号间隔毫秒:启动定时器
•CloseOnTimer定时器编号:关闭定时器
•[@OnTimerX]:X为定时器编号,触发执行段
•[@Login]:人物登录触发,写在QManage.txt
•[@PlayDie]:人物死亡触发
•[@KillMonster]:杀死怪物触发
•[@GetExp]:获得经验触发
脚本文件编码与命名规范
所有脚本文件必须存为ANSI(GBK)编码,禁止UTF-8或带BOM格式,换行符为WindowsCRLF。文件路径区分大小写,Market_def文件夹内NPC脚本命名规则为NPC名字-地图编号.txt,全局脚本位于Envir根目录,任务脚本位于QuestDiary文件夹。变量名、标签名、物品名、地图名均区分大小写,书写时保持一致。命令与参数之间必须保留一个空格,禁止全角符号、中文标点混入代码,注释用;开头分行书写。
条件判断命令#IF段语法
IF段用于检测条件是否成立,支持单个或多个条件并用AND、OR、NOT连接,条件必须写在#IF与#ACT/#ELSEACT之间,每个条件独占一行。格式:
#IF
CHECKLEVEL>50
CHECKGOLD100000
#ACT
常用条件命令格式包括:
•CHECKLEVEL>数值/=数值/<数值:检测人物等级
•CHECKGOLD数值:检测金币是否大于等于指定值
•CHECKITEM物品名数量:检测背包指定物品数量
•CHECKBAGSIZE数值:检测背包空位是否大于等于数值
•CHECKJOB职业名:检测职业,职业名填Warrior/Wizard/Taoist或Warr/Wizard/Taoist
•CHECKGENDER性别:性别填MAN或WOMAN
•CHECKSLAVECOUNT数值:检测当前召唤物数量
•CHECKMAPNAME地图名:检测当前所在地图
•CHECK[数值]0/1:检测人物标识位,0为未开启,1为开启
•EQUAL变量名值:检测变量是否等于指定值
•LARGE变量名值:检测变量大于指定值
•SMALL变量名值:检测变量小于指定值
执行命令#ACT段语法
ACT段在#IF条件成立时执行,支持多条命令逐行写入,每条命令占一行。格式:
#ACT
GAMEGOLD+500
GIVE裁决之杖1
SENDMSG6恭喜获得奖励!
BREAK
常用执行命令格式包括:
•GAMEGOLD+/-/=数值:操作元宝数量
•GOLD+/-/=数值:操作金币数量
•GIVE物品名数量品质:给予物品,品质参数可选
•TAKE物品名数量:扣除物品
•MAPMOVE地图编号X坐标Y坐标:传送至指定地图坐标
•ADDSKILL技能名等级:学习技能,等级0-3
•DELSKILL技能名:删除技能
•SET[数值]0/1:设置人物标识位
•MOV变量名值:给变量赋值
•INC变量名值:变量增加
•DEC变量名值:变量减少
•CLEARMAPMON地图编号:清除指定地图怪物
•RECALLMOB怪物名数量等级叛变时间(秒):召唤怪物为宝宝
•SENDMSG消息类型消息内容:发送屏幕消息,类型0-7颜色不同
•CLOSE:关闭NPC对话框
条件不成立#ELSEACT段语法
IF条件不成立时执行#ELSEACT段,必须与#IF配对使用,中间不能插入其他段。格式:
#IF
CHECKLEVEL>40
#ACT
GAMEGOLD+1000
#ELSEACT
SENDMSG6等级不足40级,无法领取!
CLOSE
NPC对话与菜单跳转语法
NPC脚本以[@Main]为主入口标签,[@标签名]定义子菜单,通过goto跳转。格式:
[@Main]
欢迎来到土城药店!\
<购买药品/@BuyDrug>\
<离开/@Exit>
[@BuyDrug]
#IF
CHECKGOLD5000
#ACT
TAKE金币5000
GIVE太阳水1
SENDMSG6购买成功!
goto@Main
#ELSEACT
SENDMSG6金币不足!
goto@Main
常用NPC交互命令包括:
•<显示文字/@跳转标签>:创建可点击按钮
•{显示文字|颜色代码}:彩色文字
•\:换行符
•CLOSE:关闭对话框
•EXIT:退出脚本执行
变量系统与运算语法
变量分为人物变量、全局变量、临时变量,支持数值与字符串操作。格式:
•VARInteger/StringHUMAN/Global变量名:声明变量
•LOADVAR变量名文件名.txt:加载变量值
•SAVEVAR变量名文件名.txt:保存变量值
•CALCVAR变量名+/-/*//数值:变量运算
•MOV变量名值:赋值
•INC变量名值:累加
•DEC变量名值:递减
•EQUAL变量名值:判断相等
•LARGE变量名值:判断大于
•SMALL变量名值:判断小于
物品触发与装备镶嵌语法
装备穿戴、取下、使用可触发QFunction-0.txt中对应标签。格式:
•[@TakeOnX]:X为装备物品IDX,穿戴触发
•[@TakeOffX]:取下触发
•[@UseItemX]:使用触发
•[@StdModeFuncX]:X为物品数据库AniCount值,双击触发
定时器与全局事件语法
•SetOnTimer定时器编号间隔毫秒:启动定时器
•CloseOnTimer定时器编号:关闭定时器
•[@OnTimerX]:X为定时器编号,触发执行段
•[@Login]:人物登录触发,写在QManage.txt
•[@PlayDie]:人物死亡触发
•[@KillMonster]:杀死怪物触发
•[@GetExp]:获得经验触发
脚本文件编码与命名规范
所有脚本文件必须存为ANSI(GBK)编码,禁止UTF-8或带BOM格式,换行符为WindowsCRLF。文件路径区分大小写,Market_def文件夹内NPC脚本命名规则为NPC名字-地图编号.txt,全局脚本位于Envir根目录,任务脚本位于QuestDiary文件夹。变量名、标签名、物品名、地图名均区分大小写,书写时保持一致。命令与参数之间必须保留一个空格,禁止全角符号、中文标点混入代码,注释用;开头分行书写。

