传奇脚本命令是控制游戏逻辑、NPC交互、地图功能、人物操作的核心,新手不用死记硬背,重点掌握常用命令,结合实例就能快速上手,下面按“核心基础命令、人物相关命令、物品相关命令、地图相关命令、怪物相关命令、逻辑判断命令”分类讲解,每类命令都附具体用法和实例,全程直白无专业废话,拿来就能用。
先明确核心前提:传奇脚本命令主要用于服务端MirServer→Mir200→Envir→QuestDiary文件夹下的脚本文件(后缀多为.qdb、.txt),用记事本或专用脚本编辑器打开就能编写、修改,修改后保存,重启M2引擎即可生效,无需重启整个服务端。
所有脚本命令区分大小写,输入时严格按照格式来,多一个空格、少一个符号都会导致命令失效,新手编写时尽量复制命令格式,再修改对应参数,避免出错。
第一类:核心基础命令(必学,所有脚本都要用),这类命令是脚本的骨架,控制脚本执行流程、对话显示,新手优先掌握这4个。
1. #SAY 命令:用于显示对话内容,给玩家展示信息,比如NPC对话、任务提示,是最常用的基础命令。
用法:#SAY 后面直接跟要显示的文字,不用加任何符号,换行用“/”分隔。
实例:#SAY 欢迎来到传奇世界!/我这里可以兑换装备,需要什么尽管说!/输入@兑换 即可查看兑换列表。
补充:文字中可以加入简单符号,比如【】、★,让显示更清晰,比如#SAY 【新手福利】/等级达到30级可领取新手套装!
2. #ACT 命令:用于执行具体操作,比如给物品、传地图、调等级,必须跟在#IF或#SAY后面,单独使用无效,是脚本的核心执行命令。
用法:#ACT 后面跟具体操作命令,每个操作命令单独一行,按顺序执行。
实例:#SAY 领取新手福利吗?/是(@getgift) #ACT give 新手头盔 1 give 新手铠甲 1 changelevel +5
3. #IF 命令:用于条件判断,满足条件就执行#ACT后面的操作,不满足则执行#ELSESAY或#ELSEACT后面的内容,相当于“如果…就…”。
用法:#IF 后面跟判断条件,条件成立则执行下方#ACT,不成立则执行#ELSESAY。
实例:#IF checklevel >=30 #SAY 恭喜你达到30级,可领取奖励!/领取奖励(@get30gift) #ACT give 沃玛项链 1 #ELSESAY 抱歉,你等级不足30级,无法领取奖励!
4. goto @段 命令:用于跳转脚本段落,让脚本执行更灵活,避免重复编写相同内容,“@段”后面跟英文或数字均可。
用法:先定义段落(比如@start、@end),再用goto @段跳转,段落名前面必须加@。
实例:#SAY 你要做什么?/1. 领取福利(@gift)/2. 传送地图(@map) goto @start @gift #SAY 正在发放福利… #ACT give 金币 10000 goto @end @map #SAY 请选择要传送的地图! @end #SAY 操作完成,欢迎下次再来!
第二类:人物相关命令(控制人物属性、状态),主要用于调整人物等级、经验、职业、属性等,常用命令6个,覆盖新手高频需求。
1. changelevel 命令:调整人物等级,可增加、减少或直接设置等级,新手常用它给新手调等级。
用法:changelevel +数值(增加等级)、changelevel -数值(减少等级)、changelevel =数值(直接设置等级)。
实例:changelevel +10(给人物增加10级)、changelevel =50(将人物等级直接设为50级)、changelevel -3(给人物减少3级)。
2. changeexp 命令:调整人物经验值,用法和等级命令类似,可增加、减少或设置经验。
用法:changeexp +数值(增加经验)、changeexp -数值(减少经验)、changeexp =数值(直接设置经验)。
实例:changeexp +100000(给人物增加10万经验)、changeexp =500000(将人物经验设为50万)。
3. checklevel 命令:判断人物等级,常和#IF配合使用,用于等级相关的条件判断。
用法:#IF checklevel >=数值(等级大于等于)、checklevel <=数值(等级小于等于)、checklevel =数值(等级等于)。
实例:#IF checklevel >=40 #ACT give 祖玛戒指 1(等级大于等于40级,就给祖玛戒指)。
4. checkjob 命令:判断人物职业,用于职业专属任务、装备兑换,传奇职业分为Warrior(战士)、Wizard(法师)、Taoist(道士)。
用法:#IF checkjob 职业名称,后面跟#ACT执行对应操作。
实例:#IF checkjob Warrior #SAY 战士专属福利!/领取(@warriorgift) #ACT give 裁决 1 #ELSESAY 你不是战士,无法领取专属福利!
5. addskill 命令:给人物添加指定技能,可设置技能等级,新手常用它给新手添加基础技能。
用法:addskill 技能名称 技能等级(等级范围1-7,7级为满级)。
实例:addskill 烈火剑法 3(给人物添加3级烈火剑法)、addskill 治愈术 7(给人物添加满级治愈术)。
6. changesex 命令:修改人物性别,可用于性别相关的任务或道具效果。
用法:changesex 0(男)、changesex 1(女),直接设置即可。
实例:#ACT changesex 1(将人物性别改为女性)。
第三类:物品相关命令(控制物品发放、回收、检测),核心用于NPC兑换、任务奖励、物品检测,常用命令7个,全程直白好记。
1. give 命令:给人物发放物品,最常用的物品命令,可发放装备、药品、金币等。
用法:give 物品名称 数量(数量不写默认1个)。
实例:give 强效金创药 10(给10瓶强效金创药)、give 金币 5000(给5000金币)、give 沃玛手镯 2(给2个沃玛手镯)。
2. take 命令:回收人物身上的物品,和give命令相反,用于任务提交、物品兑换。
用法:take 物品名称 数量(数量不写默认1个),可添加参数0或1(0不检测装备改名,1检测)。
实例:take 沃玛号角 1(回收1个沃玛号角)、take 金币 1000 0(回收1000金币,不检测金币是否改名)。
3. checkitem 命令:检测人物身上是否有指定物品及数量,常和#IF配合使用,用于任务提交、物品兑换。
用法:#IF checkitem 物品名称 数量(数量不写默认1个)。
实例:#IF checkitem 僵尸牙齿 10 #SAY 你收集够了僵尸牙齿,可兑换奖励! #ACT take 僵尸牙齿 10 give 金币 20000。
4. checkitemw 命令:检测人物是否佩戴指定物品,区别于checkitem(检测背包),这个命令检测身上佩戴的装备。
用法:#IF checkitemw 物品名称(无需写数量,检测是否佩戴)。
实例:#IF checkitemw 沃玛头盔 #SAY 你已佩戴沃玛头盔,可进入沃玛寺庙! #ACT map 沃玛寺庙。
5. checkbagsize 命令:检测人物背包空格数量,用于发放物品前判断,避免背包满了无法发放。
用法:#IF checkbagsize 数量(检测背包是否有足够空格)。
实例:#IF checkbagsize 3 #ACT give 强效金创药 3 #ELSESAY 你的背包空格不足3个,无法领取药品!
6. clearitem 命令:清空人物背包内指定物品,可用于重置任务、清理垃圾物品。
用法:clearitem 物品名称(清空该物品所有数量)。
实例:#ACT clearitem 僵尸牙齿(清空人物背包内所有僵尸牙齿)。
7. checkduraeva 命令:检测人物所带物品的品质,多用于矿物、宝石等有品质的物品检测。
用法:#IF checkduraeva 物品名称 数值(数值为品质等级)。
实例:#IF checkduraeva 金矿 10 #SAY 你有高品质金矿,可兑换丰厚奖励! #ACT take 金矿 1 give 金币 5000。
第四类:地图相关命令(控制人物传送、地图状态),用于NPC传送、任务地图跳转,常用命令5个,新手一看就会。
1. map 命令:将人物传送到指定地图的随机坐标,不用设置具体位置,简单快捷。
用法:map 地图名称(地图名称需和服务端地图文件名称一致,比如“沃玛寺庙”“比奇城”)。
实例:#ACT map 比奇城(将人物传送到比奇城随机坐标)、map 祖玛寺庙(传送到祖玛寺庙随机坐标)。
2. mapmove 命令:将人物传送到指定地图的具体坐标,精准传送,适合任务指定位置。
用法:mapmove 地图名称 横坐标 纵坐标(范围留空或填0则为定点传送)。
实例:#ACT mapmove 比奇城 320 280(将人物传送到比奇城320,280坐标)、mapmove 沃玛寺庙 120 100 0(定点传送到沃玛寺庙120,100坐标)。
3. monclear 命令:清除指定地图内的所有怪物,用于清理地图、重置怪物刷新。
用法:monclear 地图名称(填写要清理的地图名称)。
实例:#ACT monclear 沃玛寺庙(清除沃玛寺庙内所有怪物)。
4. timerecall 命令:设置人物在指定地图的停留时间,时间到后自动传送回原位置。
用法:timerecall 数值(数值为分钟,设置停留时间)。
实例:#ACT map 幻境 timerecall 10(将人物传送到幻境,10分钟后自动传送回原位置)。
5. breaktimerecall 命令:中断timerecall命令设置的停留时间,让人物立即传送回原位置。
用法:直接使用#ACT breaktimerecall,无需添加其他参数。
实例:#ACT breaktimerecall(中断幻境停留时间,人物立即返回原位置)。
第五类:怪物相关命令(控制怪物刷新、召唤),用于NPC刷怪、任务怪物召唤,常用命令4个,操作简单。
1. mongen 命令:在指定地图、指定坐标刷出指定数量的怪物,可设置刷新时间。
用法:mongen 怪物名称 数量 时间(时间单位为秒,不写则刷新后不消失)。
实例:#ACT mongen 僵尸 5 300(在当前地图刷出5只僵尸,300秒后自动消失)、mongen 沃玛教主 1(在当前地图刷出1只沃玛教主,不自动消失)。
2. recallmob 命令:召唤指定怪物作为人物宝宝,可设置宝宝等级、叛变时间。
用法:recallmob 怪物名称 宝宝等级 叛变时间(宝宝等级最高7级,叛变时间单位为分钟)。
实例:#ACT recallmob 神兽 7 10(召唤1只7级神兽作为宝宝,10分钟后叛变)。
3. checkmonmap 命令:检测指定地图内的怪物数量,常和#IF配合使用,用于刷怪条件判断。
用法:#IF checkmonmap 地图名称 数值(检测该地图内怪物数量是否满足条件)。
实例:#IF checkmonmap 沃玛寺庙 0 #SAY 沃玛寺庙内无怪物,可刷新怪物! #ACT mongen 沃玛卫士 10。
4. clearmon 命令:清除当前地图内的所有怪物,和monclear命令类似,区别在于无需指定地图,只清除当前所在地图。
用法:直接使用#ACT clearmon,无需添加其他参数。
实例:#ACT clearmon(清除人物当前所在地图的所有怪物)。
第六类:逻辑判断与变量命令(脚本进阶,控制脚本灵活执行),新手先掌握基础用法,后续可逐步深入,常用命令6个。
1. equal 命令:判断变量是否等于指定数值,变量用字母表示(如P0-P9、D0-D9),常和#IF配合使用。
用法:#IF equal 变量 数值。
实例:#IF equal P0 1 #ACT give 金币 10000 #ELSESAY 你未完成任务,无法领取奖励!(P0=1表示完成任务)。
2. small 命令:判断变量是否小于指定数值,用法和equal命令类似。
用法:#IF small 变量 数值。
实例:#IF small P0 3 #ACT give 药品 1 #ELSESAY 你已领取3次奖励,无法再领取!(P0小于3表示可领取)。
3. large 命令:判断变量是否大于指定数值,用于变量范围判断。
用法:#IF large 变量 数值。
实例:#IF large P0 5 #ACT give 装备 1(P0大于5表示满足条件)。
4. mov 命令:给变量赋值,用于设置变量初始值、记录任务进度。
用法:mov 变量 数值。
实例:#ACT mov P0 1(给变量P0赋值1,标记任务完成)、mov D0 0(给变量D0赋值0,重置任务进度)。
5. inc 命令:给变量增加指定数值,用于累计任务次数、奖励次数。
用法:inc 变量 数值(数值不写默认加1)。
实例:#ACT inc P0 1(给变量P0加1,累计领取奖励1次)、inc D0 2(给变量D0加2)。
6. random 命令:随机概率判断,数值越大,概率越低,用于随机奖励、随机事件。
用法:#IF random 数值(数值=1为100%概率,数值=2为50%概率,数值=4为25%概率)。
实例:#IF random 2 #ACT give 祖玛装备 1 #ELSESAY 很遗憾,未获得奖励!(50%概率获得祖玛装备)。
下面拆解新手编写脚本命令时最常见的6个问题,每个问题都有简单解决方法,遇到问题直接对照排查,不用慌。
常见问题一:输入命令后,脚本不生效,无任何反应。解决方法:检查命令大小写是否正确,是否多输、少输空格或符号;检查脚本文件路径是否正确(必须在QuestDiary文件夹下);修改后重启M2引擎,未重启则命令不生效。
常见问题二:#ACT后面的命令只执行第一个,后面的不执行。解决方法:每个命令单独一行,不要写在同一行;检查命令格式是否正确,避免某个命令出错导致后续命令无法执行。
常见问题三:give、take命令提示“物品不存在”。解决方法:检查物品名称是否和服务端StdItems.DB中的物品名称一致,不能有错别字;确认物品数据库中存在该物品,物品名称区分大小写。
常见问题四:map、mapmove命令无法传送,提示“地图不存在”。解决方法:检查地图名称是否和服务端地图文件名称一致,地图名称不能有错别字;确认服务端已加载该地图,未加载则无法传送。
常见问题五:变量命令使用后,判断无效。解决方法:检查变量名称是否正确(只能用P0-P9、D0-D9);检查变量赋值和判断的数值是否对应,避免赋值和判断不一致。
常见问题六:脚本编写后,NPC对话显示乱码。解决方法:用记事本打开脚本文件,点击“文件”→“另存为”,将编码格式改为“ANSI”,保存后覆盖原文件,重启M2引擎即可。
新手专属小技巧:1. 编写脚本时,先复制文中的命令实例,再修改物品名称、数值、地图等参数,避免手动输入出错;2. 复杂脚本可分段编写,用goto命令跳转,便于修改和查看;3. 修改脚本前,备份原脚本文件,避免修改错误导致脚本失效;4. 常用命令可单独记录在记事本,方便随时查看,不用死记硬背。
还有一种特殊情况,部分服务端引擎(如GOM、GEE)的部分脚本命令名称略有差异,但核心用法一致,比如“mapmove”在部分引擎中可写为“movemap”,若命令不生效,可尝试更换类似命令名称,或查看服务端自带的脚本示例。
另外,新手初期不用掌握所有命令,重点掌握“核心基础命令+人物+物品+地图”这四类常用命令,能编写简单的NPC对话、物品兑换、地图传送脚本即可,后续再逐步学习逻辑判断和变量命令,提升脚本复杂度。
再给大家梳理一遍核心重点:传奇脚本命令按功能分类记忆,编写时严格注意格式、大小写和符号,修改后重启M2引擎生效;新手优先用实例修改参数,避免手动输入出错;遇到命令不生效,优先排查格式、路径和引擎重启问题。
总结一下,传奇脚本命令不难,核心是掌握常用命令的用法和格式,结合实例多练习,就能快速上手,不用懂复杂的电脑技术,新手跟着文中的命令用法和实例编写,就能完成简单的游戏脚本,满足日常的NPC交互、任务、传送等需求,后续可根据自身需求,逐步学习进阶命令,编写更复杂的脚本。

