传奇技术脚本学习的核心的是掌握各类常用命令,熟悉命令格式、用法及适用场景,所有脚本命令均需依托传奇服务端脚本文件(RobotManage.txt、NPC脚本等)编写,遵循“标识→条件→执行”的核心逻辑,无需复杂基础,新手可先记常用命令,结合实例练习,逐步掌握脚本编写技巧。以下是全场景常用脚本命令,按功能分类详解,直奔主题,无冗余,适配Hero、GOM、GEE、3km2等主流引擎,可直接套用。
首先明确核心前提:所有传奇脚本命令均区分大小写(部分引擎不区分,但建议统一规范),命令后参数需用空格分隔,脚本编写时需遵循“@标识 #IF #ACT #SAY”的基础格式,其中@后为脚本触发标识,#IF后为执行条件,#ACT后为执行动作,#SAY后为对话显示内容。编写脚本需用记事本编辑,编码格式设为ANSI,避免中文乱码,保存后重启服务端生效,所有命令均需结合服务端实际路径和参数填写,避免路径、ID错误导致脚本失效。
一、基础核心命令(必学,所有脚本都需用到)
基础命令是脚本编写的基石,涵盖脚本触发、条件判断、对话显示等核心功能,所有引擎通用,新手需熟练掌握,无需记忆复杂参数,重点记住命令格式和基础用法。
1. 脚本触发标识命令(@开头,自定义命名,唯一不可重复)
格式:@标识名称(如@NewPlayer、@GetItem、@GoMap)
用法:作为脚本的触发入口,可通过GM命令、NPC点击、物品使用等方式触发,标识名称可自定义,建议贴合脚本功能,便于后续修改和识别,避免与系统默认标识重复(如@Admin、@GM等系统标识不可占用)。
实例:(@NewPlayer) // 新手引导脚本触发标识,玩家点击新手NPC即可触发
2. 条件判断命令(#IF后使用,判断是否执行后续动作)
(1)checklevel 等级 // 检测玩家等级
格式:#IF checklevel 数值(如checklevel 10,检测玩家等级是否≥10级)
用法:最常用的条件命令,可用于限制脚本执行的等级门槛,如新手任务需等级≥1级才可触发,高阶脚本需等级≥50级才可执行。
实例:#IF checklevel 10 // 判断玩家等级是否≥10级 #ACT give 金币 1000 // 满足条件则给予1000金币
(2)checkjob 职业 // 检测玩家职业
格式:#IF checkjob 职业缩写(Warr=战士、Wizard=法师、Taos=道士)
用法:用于区分不同职业执行不同脚本动作,如战士领取专属武器,法师领取专属法术书,道士领取专属宠物道具。
实例:#IF checkjob Warr // 判断玩家是否为战士 #ACT give 裁决 1 // 满足条件则给予裁决武器1把
(3)checkitem 物品名称/物品ID 数量 // 检测玩家背包物品及数量
格式:#IF checkitem 物品名称 数值(如checkitem 疗伤药 5,检测背包是否有5个疗伤药);也可使用物品ID(如checkitem 1001 5,1001为疗伤药ID)
用法:用于道具兑换、任务提交等场景,检测玩家是否拥有指定数量的道具,无道具则不执行后续动作。
实例:#IF checkitem 铁矿石 10 // 检测背包是否有10个铁矿石 #ACT take 铁矿石 10 // 拿走10个铁矿石 give 生铁 1 // 给予1个生铁
(4)checkgold 金币数量 // 检测玩家背包金币
格式:#IF checkgold 数值(如checkgold 5000,检测玩家金币是否≥5000)
用法:用于金币兑换、NPC交易等场景,限制玩家需拥有足够金币才可执行脚本动作。
实例:#IF checkgold 5000 // 检测金币是否≥5000 #ACT take gold 5000 // 扣除5000金币 give 沃玛号角 1 // 给予沃玛号角1个
(5)checkpkpoint 数值 // 检测玩家PK值
格式:#IF checkpkpoint 数值(如checkpkpoint 0,检测玩家PK值是否为0;checkpkpoint <5,检测PK值是否小于5)
用法:用于限制红名玩家执行脚本,如红名玩家无法领取任务、无法兑换道具,需PK值清零后才可执行。
实例:#IF checkpkpoint 0 // 检测PK值是否为0 #ACT give 声望值 10 // 给予10点声望值
3. 对话显示命令(#SAY后使用,显示NPC对话或提示信息)
格式:#SAY 对话内容(可换行,换行用换行符,无需额外命令)
用法:用于NPC对话、脚本提示,可添加触发按钮(格式:<按钮名称/@标识>),引导玩家触发后续脚本动作。
实例:#SAY 欢迎来到新手村! 我可以给你新手装备,需要领取吗? <领取装备/@GetNewEquip> <离开/@Close>
4. 中断脚本命令(break)
格式:#ACT break
用法:用于中断当前脚本流程,避免后续动作执行,常与条件判断配合使用,如玩家不满足条件时,中断脚本并提示。
实例:#IF checklevel 5 // 判断玩家等级是否≥5级 #ACT give 新手剑 1 #ELSEACT #SAY 你的等级不足5级,无法领取新手剑! break // 中断脚本,不执行后续动作
二、物品操作命令(常用,道具发放、扣除、属性修改)
物品操作命令是脚本中最常用的一类,涵盖道具发放、扣除、属性修改、背包检测等功能,适配所有引擎,重点注意物品名称或ID需与服务端物品数据库一致,避免无法识别。
1. 物品发放命令(give)
格式1:give 物品名称 数量(如give 新手衣 1,发放1件新手衣)
格式2:give 物品ID 数量(如give 1002 3,1002为新手衣ID,发放3件)
补充:give gold 数值(发放金币,如give gold 10000,发放10000金币);give 声望值 数值(发放声望,如give 声望值 5)
用法:用于新手福利、任务奖励、NPC兑换等场景,发放指定物品或资源,数量可自定义,超出背包容量时,物品会掉落在地面。
实例:#IF checklevel 1 // 玩家等级≥1级 #ACT give 新手剑 1 give 疗伤药 5 give gold 500 // 发放新手剑1把、疗伤药5个、金币500
2. 物品扣除命令(take)
格式1:take 物品名称 数量(如take 疗伤药 2,扣除2个疗伤药)
格式2:take 物品ID 数量(如take 1001 2,扣除2个疗伤药)
补充:take gold 数值(扣除金币,如take gold 2000,扣除2000金币);take 声望值 数值(扣除声望)
用法:用于道具兑换、任务提交、消耗类玩法,扣除玩家背包中的指定物品或资源,玩家背包中物品不足时,脚本不执行后续动作。
实例:#IF checkitem 沃玛凭证 1 // 检测是否有1个沃玛凭证 #ACT take 沃玛凭证 1 give 沃玛手镯 1 // 扣除凭证,发放手镯
3. 物品属性修改命令(ChangeItemAttr)
格式:ChangeItemAttr 物品名称/ID 属性 数值(如ChangeItemAttr 裁决 攻击 10,将裁决的攻击属性增加10点)
常用属性:攻击、魔法、道术、防御、魔防、持久、幸运、诅咒
用法:用于自定义物品属性,如打造专属装备、道具升级等场景,可增加或减少物品属性数值(数值为负则减少)。
实例:#IF checkitem 裁决 1 // 检测是否有裁决 #ACT ChangeItemAttr 裁决 攻击 5 ChangeItemAttr 裁决 幸运 1 // 裁决攻击+5,幸运+1
4. 背包检测命令(checkbaggage)
格式:#IF checkbaggage // 检测背包是否有空闲格子
用法:发放物品前检测背包,避免物品掉落,常与give命令配合使用,背包无空闲格子时,提示玩家清理背包。
实例:#IF checkbaggage checklevel 10 // 背包有空闲且等级≥10级 #ACT give 祖玛头盔 1 #ELSEACT #SAY 你的背包已满,请清理后再领取!
5. 物品回收命令(RecycleItem)
格式:RecycleItem 物品名称/ID 数量 奖励物品 奖励数量(如RecycleItem 废铁 10 金币 1000,回收10个废铁,奖励1000金币)
用法:用于物品回收玩法,玩家提交指定数量的废弃道具,获取对应奖励,简化道具处理流程。
实例:#SAY 回收废铁啦!10个废铁可兑换1000金币,需要回收吗? <回收/@RecycleIron> #IF checkitem 废铁 10 #ACT RecycleItem 废铁 10 金币 1000
三、地图与移动命令(常用,场景切换、坐标定位)
地图与移动命令用于实现玩家场景切换、指定坐标移动、地图清理等功能,适配所有主流引擎,重点注意地图名称需与服务端地图数据库一致,坐标需准确,避免移动到地图外导致异常。
1. 地图移动命令(mapmove)
格式:mapmove 地图名称 坐标X 坐标Y(如mapmove 新手村 320 280,将玩家移动到新手村320,280坐标)
补充:map 地图名称(如map 沃玛寺庙,直接移动到该地图默认坐标,无需填写具体坐标)
用法:用于NPC传送、任务场景切换、随机传送等场景,如新手村NPC传送玩家到比奇城,任务完成后传送玩家到指定地图。
实例:#IF checklevel 15 // 等级≥15级 #ACT mapmove 比奇城 330 350 // 传送玩家到比奇城指定坐标 #SAY 已为你传送到比奇城,开启新的冒险吧!
2. 随机移动命令(RandomMove)
格式:RandomMove 地图名称 坐标X1 坐标Y1 坐标X2 坐标Y2(如RandomMove 蜈蚣洞 200 200 300 300,在蜈蚣洞200-300坐标范围内随机移动)
用法:用于随机传送道具、随机任务场景,让玩家在指定地图的指定区域内随机移动,增加玩法随机性。
实例:#IF checkitem 随机传送卷 1 // 检测是否有随机传送卷 #ACT take 随机传送卷 1 RandomMove 蜈蚣洞 200 200 300 300 // 消耗传送卷,随机移动
3. 地图清理命令(monclear)
格式:monclear 地图名称(如monclear 新手村,清空新手村所有怪物);monclear 地图名称 怪物名称(如monclear 蜈蚣洞 蜈蚣,清空蜈蚣洞所有蜈蚣)
用法:用于任务清理、活动场景重置,清空指定地图的所有怪物或指定怪物,避免怪物干扰脚本执行。
实例:#IF checkjob Wizard // 法师玩家 #ACT monclear 猪洞 白野猪 // 清空猪洞所有白野猪 #SAY 猪洞白野猪已清空,快去寻宝吧!
4. 地图人数检测命令(checkhum)
格式:checkhum 地图名称 数值(如checkhum 沙巴克 10,检测沙巴克地图人数是否≥10人)
用法:用于攻城战、团队活动等场景,检测指定地图的玩家人数,满足人数条件才可触发后续脚本动作。
实例:#IF checkhum 沙巴克 10 // 沙巴克人数≥10人 #ACT #SAY 沙巴克人数已达标,攻城战即将开启!
四、玩家属性操作命令(常用,等级、血量、技能修改)
玩家属性操作命令用于修改玩家等级、血量、魔法值、技能等核心属性,适配所有引擎,常用于新手福利、任务奖励、GM脚本等场景,修改时需注意数值合理性,避免破坏玩法平衡。
1. 等级修改命令(ChangeLevel)
格式:ChangeLevel 数值(如ChangeLevel 10,将玩家等级修改为10级);ChangeLevel +数值(如ChangeLevel +5,玩家等级提升5级)
用法:用于新手升级、任务奖励,快速提升玩家等级,减少升级时间,数值可自定义,最高等级不超过服务端设置的上限。
实例:#IF checkitem 升级卷轴 1 // 检测是否有升级卷轴 #ACT take 升级卷轴 1 ChangeLevel +3 // 消耗卷轴,等级+3 #SAY 恭喜你,等级提升3级!
2. 血量/魔法值修改命令(ChangeHp、ChangeMp)
格式:ChangeHp 数值(如ChangeHp 100,将玩家当前血量修改为100点);ChangeHp +数值(如ChangeHp +50,血量增加50点)
同理:ChangeMp 数值(修改魔法值)、ChangeHpMax 数值(修改血量上限)、ChangeMpMax 数值(修改魔法值上限)
用法:用于回血、回蓝道具、任务奖励,快速恢复玩家血量或魔法值,提升玩家生存能力。
实例:#IF checkitem 强效疗伤药 1 // 检测是否有强效疗伤药 #ACT take 强效疗伤药 1 ChangeHp +200 ChangeMp +150 // 回血200、回蓝150
3. 技能学习命令(LearnSkill)
格式:LearnSkill 技能名称 等级(如LearnSkill 烈火剑法 1,让玩家学会1级烈火剑法);也可使用技能ID(如LearnSkill 201 1,201为烈火剑法ID)
用法:用于新手技能发放、技能书兑换,让玩家直接学会指定技能,无需手动使用技能书,等级可设置为1-3级(根据服务端技能上限调整)。
实例:#IF checkjob Warr checklevel 25 // 战士且等级≥25级 #ACT give 烈火剑法 1 LearnSkill 烈火剑法 1 // 发放技能书并学会1级技能
4. 声望/荣誉值修改命令(ChangeRepute)
格式:ChangeRepute 数值(如ChangeRepute 10,增加10点声望);ChangeRepute -数值(如ChangeRepute -5,减少5点声望)
用法:用于任务奖励、行会操作,修改玩家声望值,声望可用于兑换道具、提升行会等级。
实例:#IF checkitem 声望令牌 1 // 检测是否有声望令牌 #ACT take 声望令牌 1 ChangeRepute 5 // 消耗令牌,声望+5
五、NPC与机器人脚本专用命令(核心,交互与定时)
此类命令专门用于NPC交互、机器人脚本编写,涵盖NPC对话控制、定时执行、文件操作等功能,是实现自动化脚本(如定时清理、自动发奖)的核心,不同引擎用法基本一致,细微差异可参考服务端说明。
1. NPC对话关闭命令(Close)
格式:#ACT Close 或 <离开/@Close>
用法:用于关闭NPC对话窗口,玩家点击“离开”按钮后,关闭当前对话,返回游戏界面,是NPC脚本必备命令。
实例:#SAY 请问需要什么帮助? <领取福利/@GetGift> <离开/@Close> #IF @Close #ACT Close
2. 定时执行命令(#AutoRun)
格式1(Hero/3km2引擎):#AutoRun NPC RUNONDAY 时间 @脚本标识(如#AutoRun NPC RUNONDAY 00:00:00 @ClearSabuk,每天00:00执行@ClearSabuk脚本)
格式2(GOM/GEE引擎):#AutoRun NPC HOUR 时间 @脚本标识(如#AutoRun NPC HOUR 20:00:00 @SendGift,每天20:00执行@SendGift脚本)
用法:用于机器人定时脚本,实现每天固定时间自动执行脚本动作,如定时发福利、定时清理地图、定时重置数据。
实例:#AutoRun NPC RUNONDAY 20:00:00 @SendSystemMsg 全服福利发放!在线玩家可领取金币10000 // 每天20:00全服提示
3. 文件操作命令(ClearFile、WriteFile)
(1)ClearFile 路径/文件名(如ClearFile Mir200\Castle\SabukW.txt,清空该文件内容,不删除文件)
(2)WriteFile 路径/文件名 内容(如WriteFile Mir200\Castle\SabukW.txt OwnGuild=,向文件写入指定内容)
用法:用于修改服务端配置文件,如清空沙巴克占领信息、写入玩家数据、保存脚本执行记录,常与定时命令配合使用。
实例:#ACT ClearFile Mir200\Castle\AttackSabukWall.txt WriteFile Mir200\Castle\AttackSabukWall.txt "" // 清空攻城记录文件
4. 全服提示命令(SendSystemMsg)
格式:SendSystemMsg 提示内容(如SendSystemMsg 全服公告:攻城战将于今晚20:00开启!)
用法:用于全服公告、脚本执行提示,所有在线玩家均可看到提示信息,可配合定时命令、任务完成提示使用。
实例:#IF checklevel 100 // 有玩家达到100级 #ACT SendSystemMsg 恭喜玩家XXX达到100级,获得全服祝福! // 全服提示
六、变量操作命令(进阶,脚本逻辑优化)
变量操作命令用于脚本逻辑优化,实现复杂脚本功能(如任务进度记录、随机事件触发),适合有一定基础后学习,新手可先掌握基础用法,后续逐步进阶,所有引擎通用,变量名称可自定义。
1. 变量赋值命令(mov)
格式:mov 变量名 数值(如mov p1 1,将变量p1赋值为1;mov d0 10,将变量d0赋值为10)
用法:用于记录任务进度、标记玩家状态,如玩家领取任务后,变量赋值为1,完成任务后赋值为2,判断变量值执行不同动作。
实例:#IF checkitem 任务道具 1 // 领取任务道具 #ACT take 任务道具 1 mov p1 1 // 变量p1赋值为1,标记任务开始 #SAY 任务已开始,快去完成吧!
2. 变量增减命令(inc、dec)
格式:inc 变量名 数值(如inc p1 1,变量p1增加1);dec 变量名 数值(如dec p1 1,变量p1减少1)
用法:用于累计任务进度、计数,如玩家击杀1个怪物,变量增加1,累计达到指定数值后,完成任务并给予奖励。
实例:#IF checkmon 僵尸 1 // 击杀1个僵尸 #ACT inc p1 1 // 变量p1+1 #SAY 已击杀1个僵尸,还需击杀9个!
3. 变量判断命令(equal、large、small)
格式:#IF equal 变量名 数值(判断变量是否等于指定数值,如equal p1 10);large 变量名 数值(判断变量是否大于指定数值);small 变量名 数值(判断变量是否小于指定数值)
用法:配合变量赋值、增减命令,实现复杂逻辑,如任务累计击杀10个怪物(变量p1=10),则完成任务并给予奖励。
实例:#IF equal p1 10 // 变量p1等于10(击杀10个僵尸) #ACT give 任务奖励 1 mov p1 0 // 发放奖励,重置变量 #SAY 任务完成,恭喜你获得奖励!
4. 随机变量命令(movr)
格式:movr 变量名 数值(如movr d0 6,随机给变量d0赋予1-6之间的数值)
用法:用于随机事件、骰子玩法,随机生成数值,根据数值执行不同脚本动作,增加玩法趣味性。
实例:#ACT movr d0 6 // 随机生成1-6的数值 #IF equal d0 6 #SAY 恭喜你,抽到大奖! give 金币 10000 #ELSEACT #SAY 谢谢参与,下次好运!
七、脚本学习注意事项与实战技巧(新手必看)
1. 所有命令需在对应脚本文件中编写,NPC脚本放在“Mir200\Envir\NPC”文件夹,机器人脚本放在“Mir200\Envir\Robot_def”文件夹,不可放错路径,否则脚本无法触发。
2. 编写脚本前,建议备份对应脚本文件,若修改错误,可直接替换备份文件,避免脚本失效或服务端异常。
3. 物品名称、地图名称、技能名称需与服务端数据库完全一致,可在服务端“物品数据库”“地图数据库”中查询准确名称和ID,避免因名称错误导致脚本无法执行。
4. 新手学习建议:先从基础命令入手,练习简单脚本(如新手领取装备、道具兑换),熟悉命令格式后,再学习变量命令,编写复杂脚本(如任务脚本、定时脚本)。
5. 脚本编写完成后,需重启服务端生效,测试时优先用GM账号手动触发,排查命令错误、路径错误,确认脚本正常执行后,再开放给普通玩家。
6. 不同引擎命令细微差异:GOM/GEE引擎部分命令需添加“HOUR”参数(如定时命令),3km2引擎需开启机器人定时功能,若命令无法执行,可查看服务端引擎说明文档,调整命令格式。
8. 实战练习建议:新手可先编写“新手引导脚本”,整合基础命令(@标识、#IF、#ACT、give、mapmove),练习条件判断和物品发放,逐步掌握脚本编写逻辑,再尝试编写任务脚本、回收脚本,积累实战经验。
传奇技术脚本学习的核心是多记、多练、多排查,以上命令涵盖新手入门到进阶的全场景用法,无需记忆所有命令,重点掌握常用命令的格式和用法,结合实例练习,即可快速上手脚本编写。遇到命令无法执行、脚本失效等问题,优先检查命令格式、路径、参数是否正确,多数问题均可通过核对修改解决,熟练掌握后,可根据自身需求编写自定义脚本,丰富游戏玩法。

