传奇服务端的脚本编写是构建游戏内NPC交互、任务系统、装备回收及各类自动化玩法的核心。掌握基础的脚本命令与逻辑控制,是进行服务端功能开发的前提。
基础逻辑控制指令
脚本的执行依赖于标准的逻辑判断与执行框架,通常由以下几个核心指令构成:
#IF:条件判断的起始标记。在此标记下方编写的条件,必须全部满足,脚本才会继续向下执行。
#ACT:动作执行标记。当上方的#IF条件全部成立时,系统会执行#ACT下方的具体命令(如给予物品、扣除金币等)。
#SAY:对话输出标记。用于向玩家弹出NPC对话框,显示文本内容或提供可点击的跳转选项。
#ELSEACT:条件否定执行标记。当#IF下方的条件不成立时,系统将执行该标记下方的命令。
break:结束当前脚本段落的执行,通常用于条件判断后直接中断后续代码的读取。
close:关闭当前NPC的对话窗口。
常用条件检测命令
在#IF标记下,需要编写各类检测命令来限制玩家的触发条件。常用的检测指令包括:
CHECKITEM物品名数量:检测玩家背包中是否拥有指定名称及数量的物品。
CHECKGOLD数值:检测玩家当前携带的金币数量是否大于或等于指定数值。
CHECKLEVELEX>数值:检测玩家等级是否大于指定数值(支持<、=等比较符号)。
CHECKJOBWarr:检测玩家当前职业是否为战士(法师为Wizard,道士为Taos)。
GENDERMAN:检测玩家性别是否为男性。
CHECKPKPOINT数值:检测玩家的PK值是否大于指定数值。
常用动作执行命令
在#ACT标记下,通常编写对玩家数据产生实际影响的指令:
GIVE物品名数量:向玩家背包中发放指定名称和数量的物品。
TAKE物品名数量:从玩家背包中扣除指定名称和数量的物品。
GIVEgold数值:给予玩家指定数量的金币。
TAKEgold数值:扣除玩家指定数量的金币。
CHANGELEVEL数值:直接调整玩家的角色等级。
CHANGEEXP数值:直接增加或扣除玩家的经验值。
变量与标识控制
变量和标识是记录玩家任务进度、功能状态的核心工具。
标识(Flag)控制:
标识主要用于记录布尔值(真/假,即1或0),常用于判断任务是否完成。
SET[n]1:将指定的标识(如[100])设置为真(1)。
CHECK[n]1:检测指定的标识是否为真。
RESET[n]数量:批量重置标识。例如RESET[100]5会将[100]到[104]这5个标识全部归零。
变量(Variable)操作:
变量用于记录具体的数值或字符串,分为个人变量(如P、D、M、U系列)和全局变量(如G、A、I系列)。
MOV变量数值:给变量赋值。例如MOVP010表示将私人变量P0的值设为10。
INC变量数值:让变量自动加上指定数值。例如INCP05相当于P0=P0+5。
DEC变量数值:让变量自动减去指定数值。
SMALL变量数值:判断变量是否小于指定数值。
LARGE变量数值:判断变量是否大于指定数值。
EQUAL变量数值:判断变量是否等于指定数值。
MOVR变量数值:定义随机变量,变量的值将在0到指定数值之间随机生成。
系统级管理命令
除了NPC交互,服务端还提供了一系列用于管理游戏环境的命令:
MonGen怪物名称数量时间:在指定地图和坐标生成指定数量的怪物。
Monclear地图名:清理指定地图内的所有怪物。
TimeRecall时间:设置地图或事件的时间限制。
@ReloadNpc:GM指令,用于在不重启服务端的情况下刷新所有NPC脚本信息。
@Kick人物名称:GM指令,将指定玩家踢下线。
基础逻辑控制指令
脚本的执行依赖于标准的逻辑判断与执行框架,通常由以下几个核心指令构成:
#IF:条件判断的起始标记。在此标记下方编写的条件,必须全部满足,脚本才会继续向下执行。
#ACT:动作执行标记。当上方的#IF条件全部成立时,系统会执行#ACT下方的具体命令(如给予物品、扣除金币等)。
#SAY:对话输出标记。用于向玩家弹出NPC对话框,显示文本内容或提供可点击的跳转选项。
#ELSEACT:条件否定执行标记。当#IF下方的条件不成立时,系统将执行该标记下方的命令。
break:结束当前脚本段落的执行,通常用于条件判断后直接中断后续代码的读取。
close:关闭当前NPC的对话窗口。
常用条件检测命令
在#IF标记下,需要编写各类检测命令来限制玩家的触发条件。常用的检测指令包括:
CHECKITEM物品名数量:检测玩家背包中是否拥有指定名称及数量的物品。
CHECKGOLD数值:检测玩家当前携带的金币数量是否大于或等于指定数值。
CHECKLEVELEX>数值:检测玩家等级是否大于指定数值(支持<、=等比较符号)。
CHECKJOBWarr:检测玩家当前职业是否为战士(法师为Wizard,道士为Taos)。
GENDERMAN:检测玩家性别是否为男性。
CHECKPKPOINT数值:检测玩家的PK值是否大于指定数值。
常用动作执行命令
在#ACT标记下,通常编写对玩家数据产生实际影响的指令:
GIVE物品名数量:向玩家背包中发放指定名称和数量的物品。
TAKE物品名数量:从玩家背包中扣除指定名称和数量的物品。
GIVEgold数值:给予玩家指定数量的金币。
TAKEgold数值:扣除玩家指定数量的金币。
CHANGELEVEL数值:直接调整玩家的角色等级。
CHANGEEXP数值:直接增加或扣除玩家的经验值。
变量与标识控制
变量和标识是记录玩家任务进度、功能状态的核心工具。
标识(Flag)控制:
标识主要用于记录布尔值(真/假,即1或0),常用于判断任务是否完成。
SET[n]1:将指定的标识(如[100])设置为真(1)。
CHECK[n]1:检测指定的标识是否为真。
RESET[n]数量:批量重置标识。例如RESET[100]5会将[100]到[104]这5个标识全部归零。
变量(Variable)操作:
变量用于记录具体的数值或字符串,分为个人变量(如P、D、M、U系列)和全局变量(如G、A、I系列)。
MOV变量数值:给变量赋值。例如MOVP010表示将私人变量P0的值设为10。
INC变量数值:让变量自动加上指定数值。例如INCP05相当于P0=P0+5。
DEC变量数值:让变量自动减去指定数值。
SMALL变量数值:判断变量是否小于指定数值。
LARGE变量数值:判断变量是否大于指定数值。
EQUAL变量数值:判断变量是否等于指定数值。
MOVR变量数值:定义随机变量,变量的值将在0到指定数值之间随机生成。
系统级管理命令
除了NPC交互,服务端还提供了一系列用于管理游戏环境的命令:
MonGen怪物名称数量时间:在指定地图和坐标生成指定数量的怪物。
Monclear地图名:清理指定地图内的所有怪物。
TimeRecall时间:设置地图或事件的时间限制。
@ReloadNpc:GM指令,用于在不重启服务端的情况下刷新所有NPC脚本信息。
@Kick人物名称:GM指令,将指定玩家踢下线。

