传奇服务端脚本命令是搭建和维护传奇游戏服务器的核心,所有脚本操作均依托服务端引擎执行,不同引擎命令通用度较高,实操中需结合脚本逻辑合理搭配,以下按功能分类详解常用命令,包含基础语法、实操用法及场景示例,所有命令均直接可用于脚本编写,无需额外转换。
基础核心命令,是所有脚本编写的基础,用于控制脚本流程、对话交互及基础操作,适配所有传奇服务端引擎,实操频率最高,需熟练掌握。
#IF:条件判断命令,用于触发后续操作的前提判定,单独使用无意义,需搭配#SAY、#ACT等命令使用,语法格式为#IF+空格+判定条件。例如判定玩家等级是否达到30级,可写为#IF CHECKLEVELEX 30,满足该条件则执行后续#ACT命令,不满足则执行#ELSEACT或跳过。
#SAY:对话输出命令,用于在游戏内显示NPC对话、提示信息或选项,语法格式为#SAY+空格+需显示的文字内容,可换行显示,换行需在文字末尾添加换行符。例如NPC对话脚本可写为#SAY 欢迎来到传奇世界!\n1.领取新手福利\n2.查询等级信息,玩家点击对应选项可触发后续脚本逻辑。
#ACT:执行命令,用于触发具体的游戏操作,需跟在#IF条件判断之后,语法格式为#ACT+空格+具体操作命令,可连续添加多个操作命令,按顺序执行。例如玩家满足等级条件后,给予金币和装备,可写为#IF CHECKLEVELEX 30 #ACT GAMEGOLD +1000 ADDITEM 新手剑 1,执行后玩家将获得1000金币和1把新手剑。
break:结束命令,用于终止当前脚本循环或语句执行,跳转到当前脚本段之后的代码继续执行,常搭配循环命令或条件判断使用,避免脚本无限制执行。例如在循环检测玩家物品时,检测到目标物品后使用break,可立即终止循环,语法格式为break(单独一行即可)。
close:对话关闭命令,用于关闭当前NPC对话窗口,结束脚本交互,语法格式为close(单独一行即可),常放在脚本末尾,确保玩家完成操作后自动关闭对话,例如玩家领取福利后,添加close命令,对话窗口自动关闭。
@exit:与close功能一致,均用于关闭NPC对话窗口,区别在于@exit可用于脚本任意位置,而close多用于脚本末尾,语法格式为@exit,实操中可互换使用,无需区分细节。
goto @段名:跳转命令,用于跳转到脚本中指定的段落,段落需用(@段名)定义,语法格式为goto @段名,例如脚本中定义(@福利领取)段落,在其他位置添加goto @福利领取,即可跳转到该段落执行对应操作,常用于多选项脚本的逻辑跳转。
人物相关条件命令,用于检测玩家的各项状态、属性及携带物品,是脚本条件判断的核心,常用于任务触发、福利领取、权限验证等场景,实操中需根据需求选择对应命令。
CHECKITEM:检测玩家背包中指定物品及数量,语法格式为CHECKITEM 物品名称 数量,例如检测玩家是否携带1个钢玉石,可写为CHECKITEM 钢玉石 1,常用于任务提交、物品兑换等场景,搭配#IF使用,满足条件则执行后续操作。
CHECKGOLD:检测玩家携带的金币数量,语法格式为CHECKGOLD 数量,可用于检测玩家金币是否满足消费、兑换条件,例如检测玩家是否有10000金币,写为CHECKGOLD 10000,可搭配#ACT命令实现金币消费操作。
CHECKLEVELEX:检测玩家等级,语法格式为CHECKLEVELEX 等级,支持检测等级范围,例如检测玩家等级在30-50级之间,可写为CHECKLEVELEX 30 50,常用于等级限制类脚本,如高级任务接取、高级装备兑换等。
CHECKJOB:检测玩家职业,语法格式为CHECKJOB 职业缩写,战士缩写为warr、法师为wizard、道士为taos,例如检测玩家是否为战士,写为CHECKJOB warr,常用于职业专属任务、职业专属装备发放等场景。
CHECKCREDITPOINT:检测玩家声望点数,语法格式为CHECKCREDITPOINT 点数,声望常用于沙城相关操作、特殊物品兑换,例如检测玩家声望是否达到100点,写为CHECKCREDITPOINT 100,满足条件可兑换特殊道具。
CHECKBAGGAGE:检测玩家背包是否已满,语法格式为CHECKBAGGAGE,无需添加额外参数,返回1表示背包已满,返回0表示有空格,常用于发放物品前的检测,避免物品发放失败。
ISADMIN:检测玩家是否为管理员,语法格式为ISADMIN,无需参数,返回1表示为管理员,返回0表示为普通玩家,常用于管理员专属命令、权限操作,例如管理员可执行刷怪、调级等操作。
HAVEGUILD:检测玩家是否加入行会,语法格式为HAVEGUILD,无需参数,返回1表示已加入行会,返回0表示未加入,常用于行会任务、行会活动触发等场景。
CHECKRENEWLEVEL:检测玩家转生次数,语法格式为CHECKRENEWLEVEL 次数,例如检测玩家转生次数是否达到3次,写为CHECKRENEWLEVEL 3,常用于转生相关任务、转生装备兑换等场景。
CHECKHP/CHECKMP:分别检测玩家的生命值和魔法值,语法格式为CHECKHP 数值(或范围)、CHECKMP 数值(或范围),例如检测玩家生命值是否高于500,写为CHECKHP 500,常用于战斗类脚本、药水兑换等场景。
人物操作命令,用于修改玩家的属性、等级、物品、技能等,需跟在#ACT命令之后执行,实操中需注意参数准确性,避免误操作导致玩家数据异常。
CHANGELEVEL:调整玩家等级,语法格式为CHANGELEVEL 等级,可直接设置玩家等级,也可调整等级增减,例如将玩家等级设置为50级,写为CHANGELEVEL 50;给玩家增加10级,写为CHANGELEVEL +10;减少5级,写为CHANGELEVEL -5。
GAMEGOLD:调整玩家元宝数量,语法格式为GAMEGOLD 数值,正数为增加,负数为减少,例如给玩家增加500元宝,写为GAMEGOLD +500;扣除200元宝,写为GAMEGOLD -200,常用于福利发放、物品购买等场景。
ADDITEM:给玩家添加指定物品,语法格式为ADDITEM 物品名称 数量,例如给玩家添加2个疗伤药,写为ADDITEM 疗伤药 2,物品名称需与服务端物品数据库中的名称一致,否则无法添加成功。
TAKEITEM:扣除玩家背包中指定物品,语法格式为TAKEITEM 物品名称 数量,例如扣除玩家1个钢玉石,写为TAKEITEM 钢玉石 1,需确保玩家背包中拥有足够数量的物品,否则扣除失败。
ADDSKILL:给玩家添加指定技能,语法格式为ADDSKILL 技能名称 等级,例如给玩家添加烈火剑法技能,等级为3级,写为ADDSKILL 烈火剑法 3,技能名称需与服务端技能数据库一致。
DELSKILL:删除玩家指定技能,语法格式为DELSKILL 技能名称,例如删除玩家的治愈术技能,写为DELSKILL 治愈术,可用于技能重置、违规技能清理等场景。
CHANGEJOB:修改玩家职业,语法格式为CHANGEJOB 职业缩写,例如将玩家职业改为道士,写为CHANGEJOB taos,修改后玩家原有职业技能会自动清除,需重新添加对应职业技能。
RENEWLEVEL:设置玩家转生次数及转生后等级,语法格式为RENEWLEVEL 转生次数 转生后等级,例如设置玩家转生1次,转生后等级为40级,写为RENEWLEVEL 1 40,转生后玩家属性会按服务端设置自动调整。
CHANGENAMECOLOR:修改玩家名字颜色,语法格式为CHANGENAMECOLOR 颜色代码,不同颜色对应不同代码,例如红色代码为255,写为CHANGENAMECOLOR 255,常用于会员、管理员、沙城成员等特殊身份标识。
地图相关命令,用于控制玩家移动、地图怪物管理、地图状态调整等,是场景脚本、活动脚本的核心命令,适配所有传奇服务端地图操作。
MAP:将玩家移动到指定地图,语法格式为MAP 地图编号,地图编号需与服务端地图数据库中的编号一致,例如将玩家移动到比奇城,地图编号为3,写为MAP 3,移动后玩家出现在该地图默认出生点。
MOVEMAP:将玩家移动到指定地图的指定坐标,语法格式为MOVEMAP 地图编号 X坐标 Y坐标,例如将玩家移动到比奇城(编号3)的坐标(100,200),写为MOVEMAP 3 100 200,精准控制玩家出现位置,常用于任务传送、活动集合等场景。
MONGEN:怪物刷新命令,用于在指定地图指定坐标刷新指定数量的怪物,语法格式为MONGEN 地图编号 X坐标 Y坐标 怪物名称 数量 刷新间隔(秒),例如在比奇城(3)坐标(150,250)刷新10只鸡,间隔60秒,写为MONGEN 3 150 250 鸡 10 60,常用于怪物刷新、活动刷怪等场景。
CLEARMAPMON:清除指定地图的所有怪物,语法格式为CLEARMAPMON 地图编号,例如清除比奇城(3)的所有怪物,写为CLEARMAPMON 3,常用于活动结束后清理怪物、地图重置等场景。
TIMERECALL:设置玩家在指定时间后被传送回当前位置,语法格式为TIMERECALL 时间(秒),例如设置玩家120秒后传送回当前位置,写为TIMERECALL 120,常用于临时传送、任务限时返回等场景。
BREAKTIMERECALL:中断TIMERECALL命令的执行,语法格式为BREAKTIMERECALL,无需参数,例如玩家提前完成任务后,执行该命令,可取消限时传送,避免玩家被强制传送回原位置。
RECALLMAP:将指定地图的所有玩家传送到当前位置,语法格式为RECALLMAP 地图编号,例如将盟重城(4)的所有玩家传送到当前NPC位置,写为RECALLMAP 4,常用于活动集合、紧急通知等场景。
变量相关命令,用于定义、修改脚本变量,实现脚本逻辑的灵活控制,常用于循环、随机事件、任务进度记录等场景,变量分为个人变量和服务器共享变量。
MOV:给变量赋值,语法格式为MOV 变量名 数值/字符,个人变量常用A0-A9、D0-D9,服务器共享变量常用N0-N9,例如给个人变量D0赋值为10,写为MOV D0 10;给共享变量N0赋值为5,写为MOV N0 5。
INC:给变量增加指定数值,语法格式为INC 变量名 数值,例如给变量D0增加3,写为INC D0 3,原数值为10,增加后为13,常用于任务进度累计、次数统计等场景。
DEC:给变量减少指定数值,语法格式为DEC 变量名 数值,例如给变量D0减少2,写为DEC D0 2,原数值为13,减少后为11,常用于次数扣除、倒计时等场景。
RANDOM:随机数命令,用于生成指定范围内的随机数,语法格式为RANDOM 数值,生成的随机数范围为0到该数值,例如RANDOM 10,可生成0-10之间的随机数,常用于随机奖励、随机事件触发等场景。
EQUAL:检测变量是否等于指定数值,语法格式为EQUAL 变量名 数值,搭配#IF使用,例如#IF EQUAL D0 10,满足条件则执行后续#ACT命令,常用于任务完成判定、次数达标检测等场景。
LARGE/SMALL:分别检测变量是否大于、小于指定数值,语法格式为LARGE 变量名 数值、SMALL 变量名 数值,例如#IF LARGE D0 5,检测变量D0是否大于5;#IF SMALL D0 15,检测变量D0是否小于15,常用于范围判定场景。
<$STR(变量名)>:将变量转为字符串,用于在#SAY命令中显示变量值,语法格式为<$STR(变量名)>,例如#SAY 您当前的任务进度:<$STR(D0)>,玩家可在对话中看到变量D0的具体数值。
行会与沙城相关命令,用于控制行会操作、沙城状态、沙城战斗相关逻辑,仅适用于开启行会和沙城功能的服务端,实操中需结合沙城设置使用。
CHECKOFGUILD:检测玩家所属行会名称,语法格式为CHECKOFGUILD 行会名称,例如检测玩家是否属于“传奇天下”行会,写为CHECKOFGUILD 传奇天下,常用于行会专属任务、行会奖励发放等场景。
ISCASTLEGUILD:检测玩家是否为沙城成员,语法格式为ISCASTLEGUILD,无需参数,返回1表示是沙城成员,返回0表示不是,常用于沙城成员专属福利、沙城任务等场景。
ISCASTLEMASTER:检测玩家是否为沙城老大,语法格式为ISCASTLEMASTER,无需参数,返回1表示是沙城老大,返回0表示不是,常用于沙城老大专属权限、沙城管理操作等场景。
CHECKCASTLEDOOR:检测沙城城门状态,语法格式为CHECKCASTLEDOOR 状态(0为关闭,1为开启),例如检测沙城城门是否开启,写为CHECKCASTLEDOOR 1,常用于沙城战斗脚本、城门状态提示等场景。
CASTLECHANGEDAY:检测沙巴克占领天数,语法格式为CASTLECHANGEDAY 天数,例如检测沙巴克占领天数是否达到7天,写为CASTLECHANGEDAY 7,常用于沙城占领奖励发放等场景。
ADDGUILDLIST:将玩家所属行会加入指定列表,语法格式为ADDGUILDLIST 列表名称,例如将玩家行会加入“友好行会”列表,写为ADDGUILDLIST 友好行会,常用于行会分类、行会权限控制等场景。
脚本常用实操示例,结合上述命令,整理3个高频场景脚本,可直接复制到服务端脚本文件中使用,根据服务端引擎稍作调整即可生效,覆盖新手福利、物品兑换、怪物刷新三大核心场景。
示例1:新手福利领取脚本,玩家等级达到10级可领取新手礼包,包含金币、药水和新手装备。(@新手福利)#IF CHECKLEVELEX 10 #ACT GAMEGOLD +500 ADDITEM 疗伤药 5 ADDITEM 新手剑 1 ADDITEM 新手盔甲 1 #SAY 恭喜您领取新手福利!\n获得:500金币、5个疗伤药、1把新手剑、1件新手盔甲。 #ELSESAY 您的等级未达到10级,无法领取新手福利! close
示例2:物品兑换脚本,玩家使用1个钢玉石可兑换1000金币和1个强化石。(@物品兑换)#IF CHECKITEM 钢玉石 1 #ACT TAKEITEM 钢玉石 1 GAMEGOLD +1000 ADDITEM 强化石 1 #SAY 兑换成功!\n消耗1个钢玉石,获得1000金币和1个强化石。 #ELSESAY 您未携带钢玉石,无法进行兑换! close
示例3:定时刷怪脚本,每5分钟在比奇城指定坐标刷新5只野猪。(@定时刷怪)#ACT MONGEN 3 120 220 野猪 5 300 TIMERECALL 300 goto @定时刷怪,该脚本会循环执行,每300秒(5分钟)刷新一次野猪,无需手动触发。
脚本命令使用注意,所有命令需严格遵循语法格式,参数需与服务端数据库中的物品名称、地图编号、技能名称一致,避免因参数错误导致脚本失效;脚本中不可出现禁止词,不可使用修改前文的模式,所有逻辑需一次性编写完成;不同服务端引擎可能存在细微差异,部分命令需根据引擎版本调整参数,实操中可先在测试服调试,确认无误后再应用到正式服。
此外,脚本编写中可合理搭配条件判断、变量控制和循环命令,实现更复杂的游戏功能,如任务链、活动副本、自动挂机等;避免频繁使用大额数值调整命令,防止玩家数据异常;定期检查脚本运行状态,及时修复脚本漏洞,确保服务端正常运行。

