当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇技术脚本学习指南常用脚本命令大全(新手必看)

热度:
传奇技术脚本学习核心是“先懂基础逻辑,再记常用命令,最后实操运用”,脚本命令是制作、执行脚本的核心,所有脚本功能(NPC对话、地图触发、自动打怪等)均通过命令组合实现。以下按命令功能分类,详解各类常用脚本命令,标注用法、示例及注意事项,全程贴合实际学习场景,新手可直接对照记忆、套用,无需复杂理论铺垫。

先明确脚本学习基础前提:传奇脚本均为.txt文本格式,命令需遵循固定语法,核心依托游戏引擎(如GOM、GEE),不同引擎部分命令存在差异,学习时需先明确自身所用引擎,避免命令无效。脚本命令不分大小写,但变量名、地图名、怪物名、物品名区分大小写,书写时需严谨,避免拼写错误。

脚本学习优先级:先掌握“基础核心命令”,再学习“功能扩展命令”,最后练习“组合运用”,新手无需死记硬背所有命令,重点掌握常用命令,其余命令可在实操中逐步积累、对照查阅,实操是掌握脚本命令的关键。

第一类:基础核心命令(必学,脚本必备,所有类型脚本均会用到)

此类命令是脚本的基础框架,负责条件判断、执行动作、提示反馈,掌握后可搭建简单脚本逻辑,是新手入门的核心。

1.条件判断命令(#IF):核心用于判断玩家状态、道具、等级等条件,只有满足条件,才会执行后续#ACT命令,无参数,仅作为条件判断的起始标识。

用法:#IF后跟具体判断条件(如等级、金币、道具等),条件可单个或多个叠加,叠加时直接连续书写即可。

示例1(单个条件):#IFCheckLevel10(判断玩家等级是否达到10级)

示例2(多个条件叠加):#IFCheckLevel10CheckGold1000(判断玩家等级≥10级且金币≥1000)

注意:条件判断需搭配#ACT使用,无#ACT则条件判断无意义;多个条件叠加时,需确保所有条件均满足,才会执行#ACT命令。

2.执行动作命令(#ACT):跟随在#IF之后,用于执行具体操作(发放道具、传送地图、扣除金币等),是实现脚本功能的核心命令,无参数,仅作为执行动作的起始标识。

用法:#IF条件#ACT后跟具体执行命令,可单个或多个执行命令叠加,叠加时换行或连续书写均可。

示例1(单个执行命令):#IFCheckLevel1#ACTGIVE新手剑1(玩家等级≥1级,发放新手剑1把)

示例2(多个执行命令叠加):#IFCheckGold50#ACTTAKEGold50MAPMOVE3320280(玩家金币≥50,扣除50金币并传送至比奇城320280坐标)

注意:#ACT必须跟随#IF使用,不可单独使用;多个执行命令叠加时,按书写顺序依次执行,前一个命令执行失败,不影响后一个命令执行。

3.提示语句命令(#SAY):用于显示NPC对话、任务提示、执行结果等,直接跟随文本内容,无需额外符号,玩家可直观看到提示信息。

用法:#SAY后跟提示文本,可使用“\”实现换行,让提示信息更整洁;也可显示变量值,格式为<$STR(变量名)>。

示例1(基础提示):#SAY欢迎来到新手村!点击领取新手装备。\1.领取装备@领取装备\2.传送比奇@传送比奇(换行显示选项,方便玩家点击)

示例2(显示变量):#SAY当前等级:<$STR(LEVEL)$>当前金币:<$STR(GOLD)$>(显示玩家当前等级和金币)

注意:#SAY可单独使用(如NPC对话),也可搭配#IF、#ACT使用(如执行命令后显示结果);文本中不可包含特殊符号(如@、#、&等),避免显示异常。

4.否定条件命令(#ELSEACT、#ELSESAY):搭配#IF使用,#ELSEACT用于条件不满足时执行动作,#ELSESAY用于条件不满足时显示提示,完善脚本逻辑。

用法:#IF条件#ACT执行命令#SAY提示#ELSEACT否定执行命令#ELSESAY否定提示

示例:#IFCheckLevel10#ACTGIVE中级武器1#SAY等级达标,中级武器已发放!#ELSEACT#ELSESAY等级不足10级,无法领取中级武器!

注意:#ELSEACT、#ELSESAY必须紧跟#IF、#ACT、#SAY之后,不可单独使用;二者可单独搭配#IF(如仅用#ELSESAY,不使用#ELSEACT)。

5.跳转命令(@段名、GOTO@段名):用于脚本多步骤跳转,避免脚本冗长,适合多步骤任务脚本,@段名定义跳转节点,GOTO@段名实现跳转。

用法:先定义跳转节点(格式为[@段名]),再用GOTO@段名跳转至该节点,段名可自定义(如@start、@task1、@end)。

示例:[@start]#SAY请选择操作:\1.开始任务@task1\2.退出@exit[@task1]#SAY任务开始,请前往比奇城击杀10只鸡!#ACTGOTO@task2[@task2]#IFCheckMonsterDie鸡10#ACTGIVE任务奖励1#SAY任务完成,奖励已发放!GOTO@exit[@exit]#SAY感谢使用,再见!

注意:跳转节点名称需唯一,不可重复;GOTO@段名必须对应已定义的[@段名],否则脚本会执行失败。

第二类:常用判断条件命令(搭配#IF使用,核心用于脚本条件筛选)

此类命令是#IF的核心搭配命令,用于判断玩家、地图、怪物等各类状态,覆盖脚本制作常见场景,新手重点掌握常用命令,其余可按需查阅。

1.等级判断(CheckLevel):判断玩家等级,参数为等级数值,可用于等级限制、任务触发等场景。

用法:#IFCheckLevel等级数值(默认≥该等级,若需≤等级,可加符号,如CheckLevel<10)

示例:#IFCheckLevel30(玩家等级≥30级);#IFCheckLevel<20(玩家等级<20级)

2.金币判断(CheckGold):判断玩家背包内金币数量,参数为金币数值,默认≥该数量,可用于交易、传送等场景。

用法:#IFCheckGold金币数值

示例:#IFCheckGold500(玩家金币≥500);#IFCheckGold>1000(玩家金币>1000)

3.道具判断(CheckItem):判断玩家背包内指定道具的数量,参数为道具名称、数量,默认≥该数量,可用于任务、兑换等场景。

用法:#IFCheckItem道具名称数量(数量可省略,默认≥1)

示例:#IFCheckItem任务道具1(玩家背包有1个及以上任务道具);#IFCheckItem小红药5(玩家背包有5个及以上小红药)

4.职业判断(CheckJob):判断玩家职业,参数为职业缩写(Warr=战士、Wiz=法师、Tao=道士),可用于职业专属任务、装备发放等场景。

用法:#IFCheckJob职业缩写

示例:#IFCheckJobWarr(玩家为战士);#IFCheckJobTao(玩家为道士)

5.地图判断(CheckMap):判断玩家当前所在地图,参数为地图编号,可用于地图触发、区域限制等场景。

用法:#IFCheckMap地图编号

示例:#IFCheckMap3(玩家在比奇城,地图编号3);#IFCheckMap20(玩家在沃玛神殿,地图编号20)

6.怪物击杀判断(CheckMonsterDie):判断玩家是否击杀指定数量的怪物,参数为怪物名称、数量,可用于任务进度判断。

用法:#IFCheckMonsterDie怪物名称数量(数量可省略,默认≥1)

示例:#IFCheckMonsterDie鸡10(玩家击杀10只及以上鸡);#IFCheckMonsterDie沃玛卫士1(玩家击杀1只及以上沃玛卫士)

7.变量判断(CheckVar):判断变量数值,参数为变量名、数值,可用于任务进度、状态记录等场景,搭配变量命令使用。

用法:#IFCheckVar变量名数值(默认≥该数值,可加符号,如CheckVarN0<5)

示例:#IFCheckVarN010(变量N0数值≥10);#IFCheckVarS10(变量S1数值=0)

8.在线状态判断(CheckOnline):判断指定玩家是否在线,参数为玩家角色名,可用于组队、交易等场景,不同引擎用法略有差异。

用法:GOM引擎:#IF角色名.CheckOnline;GEE引擎:#IFCheckOnline角色名

示例:GOM引擎:#IF张三.CheckOnline;GEE引擎:#IFCheckOnline张三(判断玩家张三是否在线)

第三类:常用执行动作命令(搭配#ACT使用,实现脚本核心功能)

此类命令跟随#ACT执行,覆盖道具、地图、怪物、变量等各类操作,是实现脚本功能的关键,按功能分类详解,方便新手查阅使用。

一、道具操作命令(发放、扣除、删除道具)

1.发放道具(GIVE):给玩家发放指定道具,参数为道具名称、数量,数量可省略,默认发放1个。

用法:#ACTGIVE道具名称数量

示例:#ACTGIVE新手布衣1(发放新手布衣1件);#ACTGIVE大红药10(发放大红药10个)

2.扣除道具(TAKE):扣除玩家背包内指定道具,参数为道具名称、数量,数量可省略,默认扣除1个,需确保玩家背包有足够道具。

用法:#ACTTAKE道具名称数量

示例:#ACTTAKE任务道具1(扣除1个任务道具);#ACTTAKE金币500(扣除500金币)

3.删除道具(DELETEITEM):删除玩家背包内所有指定道具,参数为道具名称,无数量限制,慎用。

用法:#ACTDELETEITEM道具名称

示例:#ACTDELETEITEM过期道具(删除玩家背包内所有过期道具)

二、地图操作命令(传送、地图属性设置)

1.传送玩家(MAPMOVE):将玩家传送到指定地图、指定坐标,参数为地图编号、X坐标、Y坐标,缺一不可。

用法:#ACTMAPMOVE地图编号X坐标Y坐标

示例:#ACTMAPMOVE3320280(传送玩家至比奇城320280坐标);#ACTMAPMOVE20150120(传送玩家至沃玛神殿150120坐标)

2.加载地图(LoadMap):加载指定地图,参数为地图编号,用于地图触发、动态加载地图场景。

用法:#ACTLoadMap地图编号

示例:#ACTLoadMap20(加载沃玛神殿地图,地图编号20)

3.设置地图属性(SetMapProperty):修改指定地图的属性(如禁止PK、禁止拾取),参数为地图编号、属性名称、属性值。

用法:#ACTSetMapProperty地图编号属性名称属性值

示例:#ACTSetMapProperty3NoPK1(设置比奇城禁止PK,1为开启禁止,0为关闭)

三、怪物操作命令(刷怪、清怪、修改怪物属性)

1.刷怪(MonGen):在指定地图、指定坐标刷出指定数量的怪物,参数为怪物名称、数量、地图编号、X坐标、Y坐标。

用法:#ACTMonGen怪物名称数量地图编号X坐标Y坐标

示例:#ACTMonGen鸡103300280(在比奇城300280坐标刷出10只鸡)

2.清怪(MonClear):清除指定地图内的所有怪物,参数为地图编号,可用于任务结束、地图重置场景。

用法:#ACTMonClear地图编号

示例:#ACTMonClear20(清除沃玛神殿内所有怪物)

3.设置怪物爆率(LoadMonItems):修改指定怪物的爆率,参数为怪物名称、爆率脚本路径,用于自定义怪物掉落。

用法:#ACTLoadMonItems怪物名称爆率脚本路径

示例:#ACTLoadMonItems沃玛卫士MonItems\沃玛卫士.txt(加载沃玛卫士的自定义爆率脚本)

4.设置怪物AI(SetMonsterAI):修改指定怪物的AI行为(如主动攻击、被动攻击),参数为怪物ID、AI脚本路径。

用法:#ACTSetMonsterAI怪物IDAI脚本路径

示例:#ACTSetMonsterAI1001AI\主动攻击.txt(设置ID为1001的怪物使用主动攻击AI)

四、变量操作命令(赋值、运算、重置变量)

变量用于存储数据(如任务进度、数量统计),此类命令用于变量的赋值、运算,让脚本更灵活,常用变量格式为字母+数字(P0-P9、D0-D9)或自定义前缀变量。

1.变量赋值(MOV):给变量赋值,参数为变量名、数值/字符串,覆盖变量原有值。

用法:#ACTMOV变量名数值/字符串

示例:#ACTMOVN00(将变量N0赋值为0,用于记录任务初始进度);#ACTMOVS1新手任务(将变量S1赋值为字符串“新手任务”)

2.变量相加(INC):给变量数值加指定数值,参数为变量名、数值,仅适用于数值型变量。

用法:#ACTINC变量名数值

示例:#ACTINCN01(将变量N0数值加1,用于任务进度递增);#ACTINCN15(将变量N1数值加5)

3.变量相减(DEC):给变量数值减指定数值,参数为变量名、数值,仅适用于数值型变量,不可减至负数。

用法:#ACTDEC变量名数值

示例:#ACTDECN01(将变量N0数值减1);#ACTDECN23(将变量N2数值减3)

4.变量相乘(MUL):给变量数值乘指定数值,参数为变量名、数值,仅适用于数值型变量。

用法:#ACTMUL变量名数值

示例:#ACTMULN32(将变量N3数值乘2)

5.随机变量赋值(MOVR):给变量赋值随机数值,参数为变量名、最小值、最大值,适用于随机奖励、随机触发场景。

用法:#ACTMOVR变量名最小值最大值

示例:#ACTMOVRS1110(将变量S1赋值为1-10之间的随机数)

五、其他常用执行命令(覆盖脚本常见辅助功能)

1.系统提示(SENDMSG):给玩家发送系统提示,参数为提示类型、提示文本,提示类型0为全服提示,6为玩家自身可见提示。

用法:#ACTSENDMSG提示类型提示文本

示例:#ACTSENDMSG6任务完成,获得奖励!(仅当前玩家可见提示);#ACTSENDMSG0全服通知:新手任务已开启!(全服玩家可见提示)

2.延迟命令(Delay):设置脚本执行延迟,参数为延迟时间(毫秒),用于避免脚本执行过快导致卡顿,常用于自动脚本。

用法:#ACTDelay延迟时间

示例:#ACTDelay1000(延迟1秒执行下一个命令);#ACTDelay500(延迟0.5秒执行下一个命令)

3.自动拾取(AutoPickUp):开启/关闭玩家自动拾取功能,参数为0(关闭)、1(开启),常用于自动打怪脚本。

用法:#ACTAutoPickUp0/1

示例:#ACTAutoPickUp1(开启自动拾取);#ACTAutoPickUp0(关闭自动拾取)

4.攻击怪物(AttackMonster):让玩家自动攻击指定怪物,参数为怪物名称,常用于自动打怪脚本。

用法:#ACTAttackMonster怪物名称

示例:#ACTAttackMonster鸡(自动攻击鸡);#ACTAttackMonster沃玛卫士(自动攻击沃玛卫士)

5.停止脚本(StopScript):停止当前自动脚本的执行,无参数,常用于自动脚本的停止条件。

用法:#ACTStopScript

示例:#IFCheckLevel20#ACTStopScript#SAY等级达到20级,自动打怪脚本停止执行!

6.调用子程序(#CALL):调用外部子程序脚本,参数为子程序脚本路径,用于简化主脚本,实现代码复用。

用法:#ACT#CALL子程序脚本路径

示例:#ACT#CALLQuestDiary\子程序\奖励脚本.txt(调用QuestDiary文件夹下子程序中的奖励脚本)

第四类:进阶扩展命令(新手熟练基础命令后学习,实现更复杂脚本功能)

此类命令用于实现更复杂的脚本功能,如输入框、对话框、数据库操作等,不同引擎支持度不同,学习时需结合自身引擎。

1.输入框命令(InPutString):弹出输入框,让玩家输入文本/数值,参数为输入框编号、提示文本,不同引擎格式略有差异。

用法:GOM/GEE引擎:#ACT@InPutStringXX提示文本(XX为输入框编号,如01、02),需注意GOM引擎需将@@InPutStringXX改为@InPutStringXX。

示例:#ACT@InPutString01请输入角色名称:(弹出输入框,提示玩家输入角色名称)

2.对话框命令(OpenBigDialogBox):弹出大型对话框,用于显示大量提示文本、图片,参数为对话框参数,不同引擎格式有差异。

用法:GOM引擎需将OpenBigDialogBox按引擎要求修改格式,GEE引擎可直接使用。

示例:#ACTOpenBigDialogBox00500300欢迎界面.txt(弹出500*300大小的对话框,显示欢迎界面.txt中的内容)

3.图片显示命令(SetIcon):在对话框中显示图片,参数为图片参数,不同引擎格式有差异。

用法:GOM引擎:#ACTSetIcon1-9WIL文件序号图片序号XY播放张数;GEE引擎用法与GOM一致。

示例:#ACTSetIcon110001(在对话框1位置显示WIL文件1中序号为0的图片,无播放动画)

4.数据库操作命令(ReadDB、WriteDB):读取、修改游戏数据库中的数据(如玩家等级、道具数量),需具备基础数据库知识。

用法:#ACTReadDB数据库路径字段名变量名(读取数据);#ACTWriteDB数据库路径字段名数值(写入数据)

示例:#ACTReadDBData\PlayerDB.txt等级N0(读取玩家数据库中等级字段,赋值给变量N0);#ACTWriteDBData\PlayerDB.txt金币1000(将玩家金币字段改为1000)

第五类:脚本命令学习技巧与常见问题(新手必看,快速避坑)

1.学习技巧:新手无需死记硬背所有命令,先掌握基础核心命令(#IF、#ACT、#SAY、跳转命令),再逐步学习判断、执行命令;结合实操练习,编写简单脚本(如新手NPC脚本),在实操中记忆命令用法;可借鉴游戏安装目录下的默认脚本,修改参数套用,提升学习效率;整理常用命令笔记,方便随时查阅。

2.常见问题及解决方法(高频踩坑点,直接对照排查):

(1)命令无效,引擎提示“命令错误”:原因是命令拼写错误、命令与引擎不匹配,或命令参数缺失。解决方法:检查命令拼写(如CheckLevel不可误写为CheckLvel);确认命令适配当前引擎(如GOM引擎的部分命令不可用于GEE引擎);补充命令参数(如MAPMOVE需填写地图编号、坐标,不可遗漏);参考引擎命令规范,修正语法错误。

(2)条件判断无效,脚本不执行:原因是条件叠加错误、变量判断错误,或条件与执行命令不匹配。解决方法:检查条件叠加逻辑,确保所有叠加条件均可满足;检查变量数值,确保变量判断符合预期;确认#IF与#ACT对应,无遗漏#ACT命令。

(3)跳转命令失效,脚本执行混乱:原因是跳转节点名称不一致、节点未定义,或跳转逻辑错误。解决方法:检查GOTO@段名与[@段名]完全一致,无拼写错误;确保每个GOTO@段名均有对应的节点定义;梳理跳转逻辑,避免循环跳转(如@start跳转至@task1,@task1又跳转至@start)。

(4)引擎提示“路径错误”:原因是调用子程序、加载爆率脚本时,路径填写错误,或文件不存在。解决方法:检查路径填写是否正确,GOM、GEE引擎需注意路径中“.”的数量(如将.\改为..\);确认路径中的文件存在,若不存在,将文件放入对应路径。

(5)输入框、对话框无法正常显示:原因是命令格式错误,不同引擎对输入框、对话框命令的格式要求不同。解决方法:根据自身引擎修改命令格式(如GOM引擎将@@InPutStringXX改为@InPutStringXX);检查命令参数,确保参数完整。

3.学习注意要点:编写脚本时,每行只写一条命令,换行清晰,可使用“;”开头添加注释,标注命令用途,便于后续修改和排查;命令书写严谨,变量名、地图名、怪物名区分大小写,避免拼写错误;每次修改命令后,保存脚本,NPC脚本、地图触发脚本需重启引擎生效,自动脚本需重新启动;优先使用简单命令组合,熟练后再尝试进阶命令,避免一开始追求复杂功能导致脚本执行失败。

补充说明:不同传奇引擎的脚本命令存在细微差异,部分命令仅适配特定引擎(如GOM引擎的AutoPlay插件命令,GEE引擎不支持),学习时需先明确自身所用引擎,针对性记忆命令;可参考引擎官方文档、开源脚本教程,补充学习对应引擎的专属命令;脚本命令的学习是一个循序渐进的过程,多实操、多测试、多修改,才能熟练掌握,灵活运用命令组合实现各类脚本功能。

总结:传奇技术脚本学习的核心是掌握脚本命令的用法与组合逻辑,新手从基础核心命令入手,逐步积累常用判断、执行命令,结合实操练习,就能快速上手。本文整理的脚本命令涵盖新手入门到进阶所需,按功能分类详解,标注用法、示例及引擎差异,可直接作为学习手册、查阅工具使用。学习过程中,重点避开命令拼写、参数缺失、引擎适配等基础错误,多借鉴、多实操,就能逐步提升脚本编写能力,实现NPC、地图触发、自动打怪等各类脚本功能。
[顶部]