传奇服务端脚本命令是控制游戏玩法、NPC交互、地图机制、任务触发的核心,所有游戏内的操作逻辑,均通过脚本命令实现。无论是新手搭建服务端,还是修改现有玩法,都需要熟练掌握常用脚本命令,了解其格式、参数及实操注意事项,以下详细整理各类常用脚本命令,按功能分类说明,全程直奔主题,每一条命令都附带具体用法,新手也能直接套用。
首先明确传奇服务端脚本命令的基础格式,所有脚本命令均需在指定脚本文件中编写,核心格式为“命令 参数1 参数2 参数3 ...”,部分命令无需参数,直接输入命令即可执行。常用脚本文件路径为D:\MirServer\Mir200\Envir\MapQuest_def\QManage.txt(全局脚本)、D:\MirServer\Mir200\Envir\Robot_def\RobotManage.txt(机器人脚本),以及各类NPC专属脚本文件,所有命令需在对应脚本文件中编写,保存后重启服务端即可生效。
第一类:基础交互命令,主要用于NPC对话、菜单显示,是所有脚本的基础,常用命令及用法如下,直接套用即可。
1. #say 命令:用于显示NPC对话内容或菜单选项,无额外参数,直接在命令后输入需要显示的文字,支持颜色代码设置。用法示例:#say 欢迎来到传奇世界!\n1. 进入泡点地图/@免费泡点\n2. 购买装备/@购买装备,其中“\n”用于换行,“@+文字”用于绑定后续脚本段,点击对应选项即可触发对应操作。该命令是NPC交互的核心,所有NPC对话、功能菜单,均需用#say命令搭建基础界面。
2. @main 命令:用于定义脚本主入口,所有NPC脚本或机器人脚本,均需以@main作为开头,标识脚本的起始位置,无需参数,单独一行编写即可。用法示例:(@main)#say 我是土城管理员,可为你提供各类服务!\n1. 传送至苍月岛/@mapcy,其中(@main)是脚本主段标识,必须放在脚本最开头,后续紧跟#say命令显示菜单。
3. goto 命令:用于跳转至脚本中指定的段,实现脚本逻辑的循环或跳转,参数为目标脚本段名称(以@开头)。用法示例:goto @main,该命令可将脚本执行逻辑跳转回@main段,常用于菜单返回、错误提示后重新显示主菜单,避免脚本执行中断。
4. close 命令:用于关闭NPC对话窗口,无需参数,直接输入命令即可,常用于玩家完成操作后,自动关闭对话界面。用法示例:#act close,通常搭配在给予物品、完成传送等操作后,执行close命令,让玩家返回游戏界面,无需手动关闭对话窗口。
第二类:物品相关命令,用于给予、扣除玩家物品、检测物品数量,是道具兑换、装备购买、任务奖励等玩法的核心命令,常用命令如下。
1. give 命令:用于给予玩家指定物品及数量,参数1为物品名称(需与Item.txt文件中物品名称完全一致),参数2为物品数量,可选参数为物品品质、强化等级(无需可省略)。用法示例:give 屠龙 1,代表给予玩家1把屠龙;give 强效太阳水 10,代表给予玩家10瓶强效太阳水,该命令是任务奖励、NPC兑换的核心,输入时需确保物品名称无错别字、大小写一致。
2. take 命令:用于扣除玩家身上的指定物品及数量,参数1为物品名称,参数2为数量,可选参数为是否检测装备改名(0或空不检测,1检测)。用法示例:take 金币 1000,代表扣除玩家1000金币;take 裁决 1 1,代表扣除玩家身上1把未改名的裁决,若玩家身上无对应物品或数量不足,该命令不执行,脚本后续操作也会中断。
3. checkitem 命令:用于检测玩家身上是否拥有指定物品及对应数量,属于条件判断命令,常搭配#IF使用,参数1为物品名称,参数2为数量。用法示例:#IF checkitem 元宝 10 #act give 屠龙 1,代表检测玩家身上是否有10个元宝,若有则给予1把屠龙,若无则不执行后续操作,该命令广泛用于道具兑换、任务提交等场景。
4. checkitemw 命令:用于检测玩家身上是否携带指定物品(不限制数量),仅判断物品是否存在,不检测数量,参数为物品名称。用法示例:#IF checkitemw 家书 #act goto @huaban,代表检测玩家身上是否有“家书”道具,若有则跳转至@huaban脚本段,触发后续招募剧情,常用于任务前置条件检测。
第三类:玩家属性相关命令,用于修改、检测玩家等级、经验、金币、元宝等属性,是升级、奖励、惩罚等玩法的核心,常用命令如下。
1. ChangeExp 命令:用于增加或减少玩家经验值,参数为经验值(正数增加,负数减少),无需其他参数。用法示例:ChangeExp + 12000,代表给玩家增加12000点经验;ChangeExp - 5000,代表扣除玩家5000点经验,该命令常用于泡点、任务奖励、惩罚等场景,比如免费泡点每秒增加固定经验。
2. checklevel 命令:用于检测玩家等级是否达到指定要求,搭配#IF使用,参数为等级数值。用法示例:#IF checklevel 48 #act goto @收费泡点 #ELSEACT SENDMSG 5 等级不足48级,无法进入收费泡点,代表检测玩家等级是否达到48级,达到则跳转至收费泡点脚本,未达到则发送提示信息。
3. GAMEGOLD 命令:用于增加或扣除玩家元宝(游戏金币),参数为元宝数量(正数增加,负数减少)。用法示例:GAMEGOLD + 10,代表给玩家增加10个元宝;GAMEGOLD - 10,代表扣除玩家10个元宝,常用于收费泡点、装备购买等场景,比如收费泡点每秒扣除10个元宝。
4. checkgold 命令:用于检测玩家身上的金币数量是否达到指定要求,搭配#IF使用,参数为金币数值。用法示例:#IF checkgold 10000 #act give 强效太阳水 5,代表检测玩家身上是否有10000金币,若有则给予5瓶强效太阳水,常用于低级道具兑换场景。
第四类:地图相关命令,用于玩家传送、地图怪物刷新、地图状态控制,是地图玩法、活动触发的核心命令,常用命令如下。
1. mapmove 命令:用于将玩家传送到指定地图的指定坐标,参数1为地图编号或地图名称,参数2为X坐标,参数3为Y坐标,可选参数为传送范围(0为定点传送)。用法示例:mapmove 3 333 333,代表将玩家传送到3号地图(土城)333,333坐标;mapmove mfjqpd,代表将玩家传送到免费泡点地图(地图名称为mfjqpd)的随机坐标,该命令是传送NPC、任务传送的核心。
2. MonGen 命令:用于在指定地图刷新指定怪物,参数1为怪物名称,参数2为刷新数量,参数3为刷新时间(0为立即刷新,不自动消失)。用法示例:MonGen 祖玛教主 1 0,代表在当前地图立即刷新1只祖玛教主,不自动消失;MonGen 骷髅兵 10 60,代表在当前地图刷新10只骷髅兵,60秒后自动消失,常用于定时活动、地图刷怪场景。
3. monclear 命令:用于清除指定地图上的所有怪物,参数为地图编号或地图名称,无需其他参数。用法示例:monclear 3,代表清除3号地图(土城)上的所有怪物;monclear sfjqpd,代表清除收费泡点地图上的所有怪物,常用于活动结束后清理地图怪物。
4. isonmap 命令:用于检测玩家是否在指定地图内,搭配#IF使用,参数为地图编号或地图名称。用法示例:#IF isonmap mfjqpd #act ChangeExp + 12000,代表检测玩家是否在免费泡点地图,若是则每秒增加12000点经验,是泡点脚本的核心判断命令。
第五类:定时器相关命令,用于设置定时操作、定时触发脚本,常用于泡点、定时活动等场景,常用命令如下。
1. SetScTimer 命令:用于设置定时器,参数1为定时器编号(1-9),参数2为定时时间(单位为秒)。用法示例:SetScTimer 3 1,代表设置3号定时器,每1秒触发一次对应脚本段,常用于泡点脚本,每秒给玩家增加经验。
2. KillScTimer 命令:用于关闭指定定时器,参数为定时器编号,与SetScTimer命令的编号对应。用法示例:KillScTimer 3,代表关闭3号定时器,停止定时触发操作,常用于玩家离开泡点地图后,停止增加经验。
3. #AutoRun 命令:用于设置脚本自动运行时间,参数1为运行周期(SEC秒、MIN分、HOUR小时、DAY天),参数2为运行时间,参数3为目标脚本段。用法示例:#AutoRun NPC RUNONDAY 15:00:00 @祖玛教主,代表每天15:00自动触发@祖玛教主脚本段,刷新祖玛教主并发送全服提示。
第六类:条件判断命令,用于判断玩家状态、物品、等级等条件,控制脚本执行逻辑,常用命令如下,均需搭配#IF使用。
1. #IF 命令:用于开启条件判断,无参数,单独一行编写,后续紧跟判断条件(如checkitem、checklevel),条件满足则执行#act后的命令,不满足则执行#ELSEACT后的命令(可选)。用法示例:#IF checklevel 48 checkitem 元宝 10 #act mapmove sfjqpd #ELSEACT SENDMSG 5 等级或元宝不足,无法进入收费泡点。
2. #act 命令:用于执行条件满足后的操作,紧跟#IF或#ELSEACT之后,后续可编写各类执行命令(如give、mapmove),多个命令可分行编写,依次执行。用法示例:#IF checkitem 家书 1 #act give 屠龙 1 close,代表玩家拥有家书时,给予1把屠龙并关闭对话窗口。
3. #ELSEACT 命令:用于执行条件不满足后的操作,可选命令,紧跟#act之后,当#IF的条件不满足时,执行该命令后的操作。用法示例:#IF checklevel 48 #act goto @收费泡点 #ELSEACT SENDMSG 5 等级不足,无法进入,代表玩家等级未达48级时,发送提示信息。
4. checkjob 命令:用于检测玩家职业,参数为职业名称(Warr战士、Wizard法师、Taos道士),搭配#IF使用。用法示例:#IF checkjob Warr #act give 裁决 1,代表检测玩家是否为战士职业,若是则给予1把裁决,常用于职业专属奖励场景。
第七类:变量相关命令,用于设置、修改脚本变量,实现复杂脚本逻辑,常用命令如下,适合需要搭建复杂玩法的场景。
1. mov 命令:用于给变量赋值,参数1为变量名称(P0-P9、D0-D9),参数2为数值。用法示例:mov P0 1,代表给P0变量赋值为1,常用于标记玩家任务进度、活动参与状态。
2. inc 命令:用于给变量增加指定数值,参数1为变量名称,参数2为增加的数值。用法示例:inc P0 1,代表将P0变量的数值增加1,常用于累计玩家任务次数、活动参与次数。
3. DEC 命令:用于给变量减少指定数值,参数1为变量名称,参数2为减少的数值。用法示例:DEC P0 1,代表将P0变量的数值减少1,常用于任务步骤推进、次数扣除。
4. EQUAL 命令:用于检测变量数值是否等于指定数值,搭配#IF使用,参数1为变量名称,参数2为数值。用法示例:#IF EQUAL P0 3 #act give 元宝 100,代表检测P0变量是否等于3,若是则给予100个元宝,常用于任务多步骤触发。
第八类:其他常用命令,涵盖信息发送、玩家状态修改等,是脚本完善的重要补充,常用命令如下。
1. SENDMSG 命令:用于给玩家发送提示信息,参数1为信息频道(1全服、5私聊),参数2为提示文字,可选参数为文字颜色代码。用法示例:SENDMSG 1 全服通知:祖玛教主已刷新在土城书店!,代表向全服玩家发送提示信息;SENDMSG 5 你的元宝不足,无法进入收费泡点,代表向当前对话玩家发送私聊提示。
2. LOADVAR 命令:用于读取指定文件中的变量数据,参数1为变量类型(HUMAN玩家变量),参数2为变量名称,参数3为文件路径。用法示例:LOADVAR HUMAN CWFY ..\QuestDiary\诚意网络\CWFYSave.txt,代表读取该文件中的CWFY玩家变量,常用于读取玩家任务进度、数据存档,若文件缺失则会触发脚本错误。
3. hairstyle 命令:用于修改玩家发型,参数为发型编号(0-10)。用法示例:hairstyle 5,代表将玩家发型修改为5号发型,常用于个性化设置、任务奖励。
4. checknamelist 命令:用于检测玩家是否在指定名单文件中,参数为文件路径。用法示例:checknamelist ..\QuestDiary\会员名单\会员名单.txt,代表检测玩家是否在会员名单中,常用于会员专属功能、专属泡点的权限判断。
实操注意事项:1. 所有脚本命令均需严格按照格式编写,参数之间用空格分隔,不能多空格、少空格,否则会触发脚本错误;2. 物品名称、地图名称、变量名称需与服务端配置文件(Item.txt、Map.txt)完全一致,大小写、错别字都会导致命令失效;3. 编写脚本时,需在对应脚本文件中编写,比如全局命令写在QManage.txt,机器人定时命令写在RobotManage.txt;4. 所有脚本修改后,必须重启传奇服务端,命令才能生效,未重启则脚本不执行;5. 若触发脚本错误,优先检查命令格式、参数是否正确,或对应文件(如名单文件、配置文件)是否缺失。
总结:传奇服务端脚本命令按功能可分为8大类,核心常用命令集中在交互、物品、属性、地图四大类,新手可优先掌握这四类命令,即可实现基础的NPC交互、道具兑换、地图传送等玩法。编写脚本时,严格遵循命令格式,注意参数一致性,修改后重启服务端,即可确保命令正常执行。若遇到命令失效或脚本错误,可对照上述命令用法,排查格式、参数或文件缺失问题,无需复杂操作,就能快速解决。

