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

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

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

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

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

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

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

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

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

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

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

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

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

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

示例2(多个执行命令叠加):#IF CheckGold 50 #ACT TAKE Gold 50 MAPMOVE 3 320 280 (玩家金币≥50,扣除50金币并传送至比奇城320,280坐标)

注意:#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 否定提示

示例:#IF CheckLevel 10 #ACT GIVE 中级武器 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只鸡! #ACT GOTO @task2 [@task2]#IF CheckMonsterDie 鸡 10 #ACT GIVE 任务奖励 1 #SAY 任务完成,奖励已发放! GOTO @exit [@exit]#SAY 感谢使用,再见!

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

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

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

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

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

示例:#IF CheckLevel 30 (玩家等级≥30级);#IF CheckLevel <20 (玩家等级<20级)

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

用法:#IF CheckGold 金币数值

示例:#IF CheckGold 500 (玩家金币≥500);#IF CheckGold >1000 (玩家金币>1000)

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

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

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

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

用法:#IF CheckJob 职业缩写

示例:#IF CheckJob Warr (玩家为战士);#IF CheckJob Tao (玩家为道士)

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

用法:#IF CheckMap 地图编号

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

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

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

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

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

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

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

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

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

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

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

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

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

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

用法:#ACT GIVE 道具名称 数量

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

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

用法:#ACT TAKE 道具名称 数量

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

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

用法:#ACT DELETEITEM 道具名称

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

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

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

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

示例:#ACT MAPMOVE 3 320 280 (传送玩家至比奇城320,280坐标);#ACT MAPMOVE 20 150 120 (传送玩家至沃玛神殿150,120坐标)

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

用法:#ACT LoadMap 地图编号

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

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

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

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

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

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

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

示例:#ACT MonGen 鸡 10 3 300 280 (在比奇城300,280坐标刷出10只鸡)

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

用法:#ACT MonClear 地图编号

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

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

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

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

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

用法:#ACT SetMonsterAI 怪物ID AI脚本路径

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

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

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

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

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

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

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

用法:#ACT INC 变量名 数值

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

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

用法:#ACT DEC 变量名 数值

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

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

用法:#ACT MUL 变量名 数值

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

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

用法:#ACT MOVR 变量名 最小值 最大值

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

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

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

用法:#ACT SENDMSG 提示类型 提示文本

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

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

用法:#ACT Delay 延迟时间

示例:#ACT Delay 1000 (延迟1秒执行下一个命令);#ACT Delay 500 (延迟0.5秒执行下一个命令)

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

用法:#ACT AutoPickUp 0/1

示例:#ACT AutoPickUp 1 (开启自动拾取);#ACT AutoPickUp 0 (关闭自动拾取)

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

用法:#ACT AttackMonster 怪物名称

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

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

用法:#ACT StopScript

示例:#IF CheckLevel 20 #ACT StopScript #SAY 等级达到20级,自动打怪脚本停止执行!

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

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

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

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

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

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

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

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

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

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

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

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

用法:GOM引擎:#ACT SetIcon 1-9 WIL文件序号 图片序号 X Y 播放张数;GEE引擎用法与GOM一致。

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

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

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

示例:#ACT ReadDB Data\PlayerDB.txt 等级 N0 (读取玩家数据库中等级字段,赋值给变量N0);#ACT WriteDB Data\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、地图触发、自动打怪等各类脚本功能。