传奇服务端脚本命令大全实操用法及常见问题解决

来源: 作者: 点击:
传奇服务端脚本命令,是控制游戏玩法、NPC交互、任务触发、道具发放、怪物刷新的核心,所有脚本均基于固定语法框架编写,适配主流传奇引擎(战神、BLUE、GOM等),无需编程基础,掌握基础语法和常用命令,即可实现各类游戏功能配置,全程围绕实操展开,新手可直接跟随套用。
首先明确脚本命令的核心存放路径,所有传奇服务端脚本均集中在指定文件夹,不同功能的脚本对应不同文件,找到对应文件即可修改或编写命令,核心路径如下:
1.核心脚本文件夹:MirServer\Mir200\Envir,该文件夹是脚本命令的主要存放目录,包含各类功能脚本,其中QManage.txt(自定义命令脚本)、Market_Def(NPC脚本文件夹)、MapQuest_def(地图任务脚本文件夹)是最常用的三个核心位置,多数脚本命令均在此编写。
2.辅助脚本文件夹:MirServer\Mir200\Envir\MerChant.txt,用于存放NPC基础参数配置,配合NPC脚本使用;QFunction-0.txt用于配置用户自定义命令接口,部分引擎的特殊脚本命令需在此编写。
3.脚本核心语法框架,所有传奇服务端脚本命令均遵循固定语法,无需额外编写复杂代码,核心框架分为主体、条件、执行、输出四大模块,通用语法如下,所有脚本均围绕此框架展开:
基础语法结构:(@脚本标识);脚本开始标识,一个脚本对应一个唯一标识,如(@MAIN)为NPC主体脚本标识#IF;条件判断模块,满足所有条件即可执行后续命令#OR;条件或判断,满足任意一个条件即可执行后续命令#ACT;条件成立后执行的核心命令,可叠加多个命令#ELSEACT;条件不成立时执行的命令#SAY;条件成立时,NPC对话框输出的内容#ELSESAY;条件不成立时,NPC对话框输出的内容BREAK;结束当前脚本命令CLOSE;关闭NPC对话框EXIT;退出当前脚本段
补充说明:脚本中“;”后面的内容为注释,不影响脚本执行,可用于标注脚本功能,方便后续修改;“\”用于换行,常用于#SAY模块中,让对话框内容排版更清晰;所有脚本命令不区分大小写,但建议统一小写,避免格式混乱。
第一类:基础核心脚本命令(必学,适配所有引擎),这类命令是脚本编写的基础,涵盖NPC交互、基础操作,所有玩法脚本都需用到,实操性极强,重点掌握用法和参数格式。
1.NPC基础交互命令,用于控制NPC对话、跳转、关闭等基础操作,核心命令及用法如下:
(@MAIN);NPC主体脚本开始#SAY欢迎来到传奇世界!\请选择你要进行的操作:\<点击前往新手村/@GoNewMap>\<领取新手礼包/@GetGift>\<关闭对话框/@Close>;点击对应文字跳转至指定脚本标识(@GoNewMap)#ACTMapmove新手村100100;传送玩家至新手村,坐标100100BREAK(@GetGift)#ACTGive新手剑1;给玩家发放1把新手剑Give新手衣1;给玩家发放1件新手衣Give金币1000;给玩家发放1000金币#SAY新手礼包已发放,请查收!BREAK(@Close)#ACTClose;关闭NPC对话框BREAK
2.物品相关脚本命令,用于发放、回收物品,检测物品是否存在,是任务脚本、活动脚本的核心命令,常用命令如下:
Give物品名称数量;发放指定物品给玩家,例:Give裁决1(发放1把裁决)Take物品名称数量;从玩家背包回收指定物品,例:Take金币500(回收500金币)CheckItem物品名称数量;检测玩家背包是否有指定数量的物品,用于#IF条件判断,例:#IFCheckItem矿石10#ACTGive武器升级材料1(玩家有10个矿石,发放升级材料)CheckItemw物品名称;检测玩家身上是否佩戴指定物品,例:#IFCheckItemw麻痹戒指#SAY你已佩戴麻痹戒指,可进入特殊地图!
补充:物品名称必须与服务端DBC数据库StdItems表中的Name字段完全一致,若名称错误,命令无法执行;若物品有特殊属性,无需在命令中额外标注,仅填写基础物品名称即可。
3.玩家属性相关脚本命令,用于修改玩家等级、经验、攻击力、生命值等属性,适配所有职业,常用命令如下:
LEVEL等级数值;直接修改玩家等级,例:LEVEL35(将玩家等级改为35级)EXP经验数值;给玩家增加指定经验,例:EXP100000(增加10万经验)ATK攻击力数值;增加玩家攻击力,例:ATK10(增加10点攻击力)HP生命值数值;增加玩家生命值上限,例:HP200(增加200点生命值上限)JOBLV职业等级;修改玩家职业等级(如战士烈火等级、道士神兽等级),例:JOBLV3(将职业等级改为3级)
注意:修改玩家属性时,数值不可过高,避免破坏游戏平衡;部分引擎支持属性减少命令,在数值前加“-”即可,例:ATK-5(减少5点攻击力)。
4.地图相关脚本命令,用于控制玩家传送、地图切换、地图内操作,常用命令如下:
Map地图名称;将玩家传送到指定地图(仅切换地图,不指定坐标),例:Map沃玛寺庙Mapmove地图名称X坐标Y坐标;将玩家传送到指定地图的指定坐标,例:Mapmove沙巴克200200INMAP地图名称;检测玩家是否在指定地图,用于#IF条件判断,例:#IFINMAP猪洞七层#SAY你已进入猪洞七层,注意安全!MONCLEAR地图名称;清除指定地图内所有怪物,例:MONCLEAR新手村
补充:地图名称必须与服务端Map文件夹中的地图文件名一致(不含后缀),坐标需在地图有效范围内,否则传送失败。
第二类:怪物相关脚本命令,用于刷新怪物、控制怪物属性、清除怪物,常用于怪物刷新、BOSS刷新脚本,核心命令及用法如下:
1.怪物刷新命令:MonGen地图名称X坐标Y坐标怪物名称数量;在指定地图、指定坐标刷新指定数量的怪物,例:MonGen沃玛寺庙150150沃玛卫士5(在沃玛寺庙150150坐标刷新5只沃玛卫士)MonGenex地图名称X坐标Y坐标怪物名称范围数量名字颜色;高级刷新命令,可设置刷新范围和怪物名称颜色,例:MonGenex封魔殿200200虹魔教主101255(在封魔殿200200坐标、10格范围内,刷新1只名称为红色的虹魔教主)
2.怪物控制命令:MonKill地图名称怪物名称;杀死指定地图内所有指定怪物,例:MonKill祖玛寺庙祖玛教主MONHP地图名称怪物名称生命值;修改指定地图内怪物的生命值,例:MONHP赤月峡谷赤月恶魔10000(将赤月峡谷的赤月恶魔生命值改为10000)
注意:怪物名称必须与服务端DBC数据库MonsterDB表中的Name字段一致;刷新怪物时,坐标和范围需合理,避免怪物刷新在地图边界或无法到达的区域。
第三类:任务相关脚本命令,用于触发任务、完成任务、检测任务进度,是任务玩法的核心,常用命令及实操案例如下:
1.任务基础命令:SetTask任务ID任务进度;设置玩家任务进度,例:SetTask12(将ID为1的任务进度改为2)GetTask任务ID;获取玩家当前任务进度,用于#IF条件判断,例:#IFGetTask13#ACTGive任务奖励1#SAY任务已完成,奖励已发放!TaskClear任务ID;清除玩家指定任务,例:TaskClear1(清除ID为1的任务)
2.任务实操案例(新手杀怪任务):(@Main)#SAY新手杀怪任务:杀死10只稻草人,即可获得奖励!\<接受任务/@AcceptTask>\<放弃任务/@GiveUpTask>(@AcceptTask)#IFCheckTask10;检测任务1进度是否为0(未接受)#ACTSetTask11;设置任务进度为1(已接受)#SAY任务已接受,请前往新手村杀死10只稻草人!#ELSESAY你已接受该任务,无需重复接受!BREAK(@KillScarecrow)#IFGetTask11;检测任务进度为1(已接受)CheckKillMon稻草人10;检测是否杀死10只稻草人#ACTSetTask12;设置任务进度为2(已完成)Give金币5000Give新手武器1#SAY任务已完成,奖励已发放!#ELSESAY你还未杀死10只稻草人,请继续努力!BREAK(@GiveUpTask)#ACTTaskClear1;清除任务#SAY你已放弃任务,可重新接受!BREAK
补充:任务ID需唯一,避免与其他任务冲突;CheckKillMon命令用于检测玩家杀死指定怪物的数量,是杀怪任务的核心命令。
第四类:行会相关脚本命令,用于控制行会操作、检测行会状态,适配行会玩法配置,常用命令如下:
HAVEGUILD;检测玩家是否加入行会,用于#IF条件判断,例:#IFHAVEGUILD#SAY你已加入行会,可领取行会福利!ISGUILDMASTER;检测玩家是否为行会掌门人,例:#IFISGUILDMASTER#ACTGive行会掌门令牌1ISCASTLEMASTER;检测玩家是否为沙城城主,例:#IFISCASTLEMASTER#SAY你是沙城城主,可享受专属特权!GuildGive行会名称物品名称数量;给指定行会发放物品,例:GuildGive传奇第一行会金币100000
第五类:高级脚本命令(进阶用法),用于实现特殊功能,如字体设置、图片播放、随机事件等,适配中高级玩法配置,常用命令如下:
1.字体相关命令:FCOLOR颜色数值;设置对话框文字颜色,例:#SAY<FCOLOR=255>红色文字</FCOLOR>\<FCOLOR=69>蓝色文字</FCOLOR>(255为红色,69为蓝色)FSIZE字体大小;设置对话框文字大小,例:#SAY<FSIZE=14>14号字体</FSIZE>FBOLD1;设置文字加粗,例:#SAY<FBOLD=1>加粗文字</FBOLD>AUTOCOLOR颜色数值1颜色数值2;设置文字自动变色,例:#SAY<AUTOCOLOR=254168>自动变色文字</AUTOCOLOR>
2.图片相关命令:脚本中可插入图片、播放图片动画,需结合WIL文件使用,WIL文件序号可在M2引擎“查看-列表信息(二)”中查看,常用命令如下:<Img:F:N:X:Y:D/@Label>;插入静态图片,F为WIL文件序号,N为图片序号,X、Y为坐标,例:<Img:1:5:50:50:*/@Test>(插入WIL序号1、图片序号5的图片,坐标5050)<PlayImg:F:N:C:T:X:Y:M:备注/@Label>;播放图片动画,F为WIL文件序号,N为开始图片序号,C为播放张数,T为播放速度(毫秒),例:<PlayImg:5:510:3:100:10:10:1:动画演示/@Play>(播放WIL序号5、从510号图片开始、3张图片、速度100毫秒的动画)
3.随机事件命令:Random数值;设置随机数,用于随机触发事件,例:#IFRandom100;生成0-99的随机数#ACTIfEqual随机数0-29Give金币1000IfEqual随机数30-59Give矿石1IfEqual随机数60-99Give药水1BREAK
第六类:不同引擎脚本命令差异,主流引擎(战神、BLUE、GOM)核心命令一致,仅部分高级命令和文件路径有差异,针对性调整即可,无需重新学习:
1.GOM引擎:支持Pak文件加密,图片相关脚本命令需配合Pak文件使用,Pak文件序号可在登录器配置器中查看;新增<ImgEx>图片命令,可设置鼠标悬浮、点击效果,例:<ImgEx:F:U:H:D:X:Y:P/@Label>(U为默认图片序号,H为鼠标悬浮图片序号,D为点击图片序号);部分命令需在QFunction-0.txt中配置接口。
2.BLUE引擎:脚本命令更简洁,无需复杂配置,怪物刷新、属性修改命令可直接使用,无需额外添加参数;NPC脚本可直接在MerChant.txt中配置,无需单独创建文件夹。
3.战神引擎:与通用命令完全一致,重点注意脚本文件编码格式,需保存为ANSI编码,否则会出现脚本无法执行的情况;高级命令需重启M2引擎才能生效。
第七类:脚本命令常见故障及解决方法,无需逐一排查,根据故障现象即可快速定位问题,确保脚本正常执行:
1.脚本命令无法执行,无任何反应:核心原因是脚本语法错误(如缺少#IF、#ACT,或命令拼写错误)、物品/怪物/地图名称与数据库不一致,或脚本文件编码错误。解决方法:检查脚本语法,补充缺失的模块,核对名称与数据库一致;将脚本文件保存为ANSI编码(用Notepad++打开,点击“编码-转为ANSI”),重启M2引擎。
2.NPC对话框不显示,或点击无反应:核心原因是NPC脚本标识错误(如未写@MAIN)、脚本路径错误,或NPC参数配置错误。解决方法:检查NPC脚本是否有@MAIN标识,确认脚本文件放在对应文件夹(如Market_Def);打开MerChant.txt,核对NPC参数(地图名称、坐标、脚本标识)是否正确。
3.物品发放失败,提示“物品不存在”:核心原因是物品名称与DBC数据库StdItems表中的Name字段不一致,或物品ID错误。解决方法:打开DBC2000,找到StdItems表,核对物品名称,确保脚本中的物品名称与表中完全一致,无空格、符号。
4.玩家传送失败,提示“地图不存在”:核心原因是地图名称错误,或地图文件缺失。解决方法:核对地图名称与服务端Map文件夹中的文件名一致(不含后缀);检查Map文件夹中是否有对应地图文件,若缺失,从服务端安装包中重新复制。
5.脚本执行混乱,条件判断失效:核心原因是条件判断命令使用错误(如#IF与#OR混用不当),或脚本标识重复。解决方法:梳理条件判断逻辑,#IF用于“且”判断,#OR用于“或”判断;确保每个脚本标识唯一,不重复使用。
补充操作要点:编写脚本时,建议先备份原有脚本文件,避免修改失误导致功能异常;复杂脚本可分段编写,每编写一段就测试一次,及时发现错误;脚本中避免使用特殊符号、中文空格,所有参数之间用空格分隔,确保格式正确;修改脚本后,无需重启整个服务端,仅重启M2引擎即可生效。
此外,脚本命令可灵活组合,实现各类复杂玩法,如活动脚本(定时刷新BOSS、发放活动奖励)、副本脚本(进入条件、副本奖励)、装备回收脚本等,只需基于基础语法,搭配常用命令,即可完成配置。若需实现特殊功能,可参考对应引擎的脚本命令手册,补充高级命令即可。
总结:传奇服务端脚本命令的核心是“固定语法+精准参数”,无需编程基础,重点掌握基础核心命令和实操案例,即可完成大部分游戏功能配置。按“语法框架→常用命令→实操案例→故障排查”的顺序学习,新手可快速上手;注意不同引擎的细微差异,核对名称、路径、编码格式,即可避免大部分故障,确保脚本正常执行,实现各类游戏玩法需求。
[顶部]