传奇服务端脚本命令大全 实操用法与分类解析

来源: 作者: 点击:
一、核心流程控制命令

流程控制命令是脚本执行的骨架,用于定义执行顺序、分支跳转及对话交互,适配各类NPC、任务场景的逻辑搭建。

@段名:程序段标识,可由字母、数字组合命名,作为脚本跳转的核心节点,例:@Main、@Task1,是所有流程跳转的基础标记。

goto @段名:单向跳转命令,执行后立即跳转至指定程序段,中断当前流程,适用于固定路径的逻辑切换,无返回机制。

选择项目 文本/@段名:交互选项命令,在对话框生成可点击选项,玩家点击后跳转至对应程序段,常用于多分支对话设计。

#IF:条件判断起始标记,后续紧跟具体检测条件,为脚本提供逻辑判断依据,决定后续命令执行方向。

#SAY 文本内容:对话输出命令,直接在游戏对话框显示文本,支持换行符\实现多行显示,无需额外定界符。

#ACT:条件满足后执行的命令块,紧跟#IF使用,内部可衔接道具、坐标、变量等各类功能命令。

#ELSEACT:#IF条件不满足时执行的命令块,与#ACT形成互补逻辑,确保脚本无判断空白场景。

#ELSESAY 文本内容:条件不满足时的对话反馈,向玩家提示未达成条件的原因,完善交互体验。

@exit:手动关闭对话框命令,玩家触发后直接关闭当前NPC对话窗口,是交互结束的标准命令。

close:自动关闭命令,无需玩家操作,脚本执行到该命令后直接关闭对话框,适用于流程结束后自动收尾。

break:终止当前命令块执行,跳出循环或分支流程,避免后续代码继续运行,防止逻辑冲突。

Delaygoto 时长 @段名:延时跳转命令,设定时长(单位:秒)后自动跳转至指定段,可实现定时触发场景。

二、变量操作与数据存储命令

变量命令用于存储、修改脚本运行中的数据,支持数值计算、状态标记,是实现复杂逻辑的核心工具,按作用范围分为私人变量与共享变量。

(一)变量类型与定义

私人变量:仅对当前玩家生效,字符型(A0-A9、B0-B9)存储文本,数字型(D0-D9、P0-P9)存储数值,支持运算操作。

共享变量:全服通用,数字型(N0-N9)、字符型(B1-B9),可跨玩家、跨进程传递数据,适用于全局事件控制。

#Define 标识 变量:常量定义命令,为变量绑定固定标识,提升脚本可读性,例:#Define TaskFinish N0,将N0标记为任务完成变量。

(二)变量基础操作

mov 变量 内容:赋值命令,为变量赋予指定文本或数值,例:mov A0 任务完成、mov D0 50,是变量初始化的核心命令。

inc 变量 数值:自增命令,在变量原有值基础上增加指定数值,例:inc D0 10,即D0=D0+10,常用于计数场景。

dec 变量 数值:自减命令,在变量原有值基础上减少指定数值,例:dec D0 5,即D0=D0-5,适用于倒计时、次数扣除。

movr 变量 最大值:随机赋值命令,为变量赋予0至最大值(不含最大值)的随机数,例:movr S0 20,S0值范围为1-19。

random 数值:随机判断命令,生成1至指定数值的随机数,若等于1则触发后续逻辑,概率为1/数值,例:random 3对应33%触发概率。

$str(变量):变量解析命令,用于#SAY语句中,将变量值转化为文本显示,例:#SAY 当前次数:$str(D0)。

reset 起始变量 数量:变量重置命令,将起始变量开始的指定数量变量恢复为初始值0,例:reset D0 3,重置D0、D1、D2。

三、条件检测判断命令

条件检测命令配合#IF使用,通过检测玩家状态、资源、场景等信息,控制脚本逻辑走向,覆盖绝大多数交互场景需求。

逻辑变量检测:check (n) 1,检测编号为n的逻辑变量是否为1(状态激活);set (n) 1,将逻辑变量n设为1,标记状态达成。

数值比较检测:small 变量 数值(变量<数值)、large 变量 数值(变量>数值)、equal 变量 数值(变量=数值),适用于数值条件判断。

职业与性别检测:checkjob warr/wizard/taos,分别检测玩家是否为战士/法师/道士;gender man/woman,检测玩家性别。

资源检测:checkgold 数值(金币≥数值)、checklevel 数值(等级≥数值)、checkitem 物品 数量(背包拥有指定物品及数量)。

装备检测:checkitemw 物品,检测玩家是否佩戴指定装备;checkduraeva 物品 数值,检测物品品质≥指定数值。

场景与数量检测:checkhum 地图 数值(指定地图玩家数量达标)、checkmonmap 地图 数值(指定地图怪物数量达标)。

技能与宠物检测:checkmagic 技能名(已掌握指定技能)、chkmagiclevel 技能名 等级(技能等级达标)、checkmonrecall(拥有宠物)。

权限与列表检测:ISADMIN(检测是否为管理员)、checknamelist 文件名(检测玩家名在指定列表中)、addnamelist 文件名(添加玩家名至列表)。

四、功能执行核心命令

功能命令用于实现具体游戏玩法,配合#ACT执行,涵盖道具收发、坐标移动、怪物控制、状态调整等核心操作。

(一)道具与货币操作

give 物品 数量:向玩家背包发放指定物品及数量,支持叠加物品自动合并。

take 物品 数量 检测标识:收回玩家背包内指定物品,检测标识为1时检测物品改名,0则不检测。

takew 物品:直接收回玩家佩戴的指定装备,无需玩家手动卸下。

GAMEGOLD 符号 数量:调整元宝数量,符号支持=(赋值)、+(增加)、-(减少),例:GAMEGOLD + 100。

(二)坐标与地图控制

map 地图名:将玩家传送至指定地图随机坐标,适用于随机传送场景。

mapmove 地图名 X坐标 Y坐标 范围:传送至指定地图精准坐标,范围为0时定点传送,大于0时随机偏移。

TIMERECALL 时长:设定分钟数后,将玩家传送回当前位置,适用于临时外出场景。

BREAKTIMERECALL:中断TIMERECALL设定的自动传送,取消返程标记。

(三)怪物与宠物控制

monclear 地图名:清除指定地图内所有已刷新的怪物,快速重置地图状态。

MonGen 怪物名 数量 时长:在当前位置刷新指定怪物,设定数量及存在时长(秒),超时自动消失。

RECALLMOB 怪物名 等级 叛变时长:为玩家召唤怪物作为宠物,等级最高为7,叛变时长后宠物失控攻击玩家。

(四)外观与状态调整

hairstyle 数值:修改玩家头发样式,不同数值对应不同外观。

haircolor 红 绿 蓝:调整头发颜色,数值范围0-255,自由搭配色彩。

SETRANKLEVELNAME 封号:修改玩家头顶封号,支持自定义文本内容。

setautogetexp 命令 时长 经验:设置在线自动获取经验,可指定是否仅安全区生效。

五、商人NPC专属命令

商人NPC脚本需通过专属命令定义交易类型与价格,以下为常用交易标识及价格控制方式。

价格倍率:%数值 控制交易价格,%100为原价,%150为1.5倍价格,%50为半价,适用于买卖价格调整。

交易类型标识:+0(买药水)、+3(买卷轴/书类)、+5(买武器/修炼武器)、+10(买衣服)、+11(修衣服)。

补充标识:+22(买戒指)、+24(买手镯)、+25(买特殊水)、+26(修手镯/卖手镯)、+30(买蜡烛等杂物)。

六、脚本编写基础规范

; 注释符号:添加在语句开头,该行内容不参与编译,仅用于备注说明,方便后期维护。

换行与分隔:\ 用于#SAY语句换行,/ 区分文本与命令,例:关闭对话框/@exit,玩家看到文本并触发命令。

文件路径:NPC脚本存放于D:\Mirserver\Mir200\Envir\Market_def,坐标设置在Merchant.txt中。

逻辑优先级:not(非)>and(与)>or(或),组合多条件时需注意优先级,避免逻辑冲突。