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

来源: 作者: 点击:
传奇服务端脚本命令,是控制游戏玩法、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 新手村 100 100 ;传送玩家至新手村,坐标100,100BREAK(@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 等级数值 ;直接修改玩家等级,例:LEVEL 35(将玩家等级改为35级)EXP 经验数值 ;给玩家增加指定经验,例:EXP 100000(增加10万经验)ATK 攻击力数值 ;增加玩家攻击力,例:ATK 10(增加10点攻击力)HP 生命值数值 ;增加玩家生命值上限,例:HP 200(增加200点生命值上限)JOBLV 职业等级 ;修改玩家职业等级(如战士烈火等级、道士神兽等级),例:JOBLV 3(将职业等级改为3级)
注意:修改玩家属性时,数值不可过高,避免破坏游戏平衡;部分引擎支持属性减少命令,在数值前加“-”即可,例:ATK -5(减少5点攻击力)。
4. 地图相关脚本命令,用于控制玩家传送、地图切换、地图内操作,常用命令如下:
Map 地图名称 ;将玩家传送到指定地图(仅切换地图,不指定坐标),例:Map 沃玛寺庙Mapmove 地图名称 X坐标 Y坐标 ;将玩家传送到指定地图的指定坐标,例:Mapmove 沙巴克 200 200INMAP 地图名称 ;检测玩家是否在指定地图,用于#IF条件判断,例:#IFINMAP 猪洞七层#SAY你已进入猪洞七层,注意安全!MONCLEAR 地图名称 ;清除指定地图内所有怪物,例:MONCLEAR 新手村
补充:地图名称必须与服务端Map文件夹中的地图文件名一致(不含后缀),坐标需在地图有效范围内,否则传送失败。
第二类:怪物相关脚本命令,用于刷新怪物、控制怪物属性、清除怪物,常用于怪物刷新、BOSS刷新脚本,核心命令及用法如下:
1. 怪物刷新命令:MonGen 地图名称 X坐标 Y坐标 怪物名称 数量 ;在指定地图、指定坐标刷新指定数量的怪物,例:MonGen 沃玛寺庙 150 150 沃玛卫士 5(在沃玛寺庙150,150坐标刷新5只沃玛卫士)MonGenex 地图名称 X坐标 Y坐标 怪物名称 范围 数量 名字颜色 ;高级刷新命令,可设置刷新范围和怪物名称颜色,例:MonGenex 封魔殿 200 200 虹魔教主 10 1 255(在封魔殿200,200坐标、10格范围内,刷新1只名称为红色的虹魔教主)
2. 怪物控制命令:MonKill 地图名称 怪物名称 ;杀死指定地图内所有指定怪物,例:MonKill 祖玛寺庙 祖玛教主MONHP 地图名称 怪物名称 生命值 ;修改指定地图内怪物的生命值,例:MONHP 赤月峡谷 赤月恶魔 10000(将赤月峡谷的赤月恶魔生命值改为10000)
注意:怪物名称必须与服务端DBC数据库MonsterDB表中的Name字段一致;刷新怪物时,坐标和范围需合理,避免怪物刷新在地图边界或无法到达的区域。
第三类:任务相关脚本命令,用于触发任务、完成任务、检测任务进度,是任务玩法的核心,常用命令及实操案例如下:
1. 任务基础命令:SetTask 任务ID 任务进度 ;设置玩家任务进度,例:SetTask 1 2(将ID为1的任务进度改为2)GetTask 任务ID ;获取玩家当前任务进度,用于#IF条件判断,例:#IFGetTask 1 3#ACTGive 任务奖励 1#SAY任务已完成,奖励已发放!TaskClear 任务ID ;清除玩家指定任务,例:TaskClear 1(清除ID为1的任务)
2. 任务实操案例(新手杀怪任务):(@Main)#SAY新手杀怪任务:杀死10只稻草人,即可获得奖励!\<接受任务/@AcceptTask>\<放弃任务/@GiveUpTask>(@AcceptTask)#IFCheckTask 1 0 ;检测任务1进度是否为0(未接受)#ACTSetTask 1 1 ;设置任务进度为1(已接受)#SAY任务已接受,请前往新手村杀死10只稻草人!#ELSESAY你已接受该任务,无需重复接受!BREAK(@KillScarecrow)#IFGetTask 1 1 ;检测任务进度为1(已接受)CheckKillMon 稻草人 10 ;检测是否杀死10只稻草人#ACTSetTask 1 2 ;设置任务进度为2(已完成)Give 金币 5000Give 新手武器 1#SAY任务已完成,奖励已发放!#ELSESAY你还未杀死10只稻草人,请继续努力!BREAK(@GiveUpTask)#ACTTaskClear 1 ;清除任务#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>FBOLD 1 ;设置文字加粗,例:#SAY<FBOLD=1>加粗文字</FBOLD>AUTOCOLOR 颜色数值1,颜色数值2 ;设置文字自动变色,例:#SAY<AUTOCOLOR=254,168>自动变色文字</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的图片,坐标50,50)<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 数值 ;设置随机数,用于随机触发事件,例:#IFRandom 100 ;生成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、发放活动奖励)、副本脚本(进入条件、副本奖励)、装备回收脚本等,只需基于基础语法,搭配常用命令,即可完成配置。若需实现特殊功能,可参考对应引擎的脚本命令手册,补充高级命令即可。
总结:传奇服务端脚本命令的核心是“固定语法+精准参数”,无需编程基础,重点掌握基础核心命令和实操案例,即可完成大部分游戏功能配置。按“语法框架→常用命令→实操案例→故障排查”的顺序学习,新手可快速上手;注意不同引擎的细微差异,核对名称、路径、编码格式,即可避免大部分故障,确保脚本正常执行,实现各类游戏玩法需求。