传奇脚本依托不同版本引擎编写,主流分为GOM、GEE、HERO、战神引擎,各类引擎的语法、内置命令、变量写法存在差异,制作脚本前要先确认当前使用的引擎类型,按照对应引擎的文档编写。脚本常见用途包括NPC对话、物品拾取触发、怪物爆率、地图传送、任务系统、技能自定义、检测身份发放奖励等,新手优先从简单NPC对话脚本入手,逐步熟悉语法规则,不要直接编写复杂任务或者活动脚本。
脚本文件一般使用记事本编写,保存格式为txt,部分引擎要求使用对应的脚本后缀,存放路径按照服务端目录规范放置,NPC脚本大多放在Mir200\Envir\Npc_def文件夹,怪物脚本位于MonGen文件夹,地图触发脚本放在MapQuest_def目录。编写时尽量使用英文半角符号,逗号、括号、引号全部不能使用中文符号,中文符号会直接导致脚本加载失败,这是新手最容易踩的错误。
新手入门首选NPC对话脚本,先掌握基础结构。一个标准NPC脚本分为标题、对话文本、跳转标签、执行命令。标签使用`[@main]`作为入口,玩家点击NPC首先读取这个区块内容,后面可以编写`[@xxx]`自定义标签,点击选项跳转到对应区块。每一个执行命令单独一行,命令前面添加`#ACT`,代表接下来的代码是执行动作。`#IF`代表条件判断,满足条件之后才执行后面的动作,`#ELSEACT`为条件不满足时执行的内容。基础条件可以检测等级、金币、背包物品、转生、身上buff状态。简单示例,编写传送NPC,检测玩家等级大于30级,扣除金币,传送到指定地图坐标,等级不足则弹出提示文字。
变量是脚本进阶核心,分为全局变量、个人变量,个人变量只对当前玩家生效,适合做单人任务计数,全局变量全服共用,适合活动计数、BOSS刷新标记。变量命名尽量简单,不要使用中文变量名。变量可以进行加减运算,用来记录击杀怪物数量、任务进度,完成任务之后重置变量,方便重复领取或者限制单次领取。使用变量时注意变量重置逻辑,防止变量数据异常,出现重复领取奖励的漏洞。
物品触发脚本,在物品数据库内设置触发编号,编写对应的QFunction脚本,玩家双击物品、拾取物品、穿戴装备时触发脚本。常用于双击使用道具、领取礼包、传送卷轴、自定义药品效果。编写时增加冷却检测,用变量记录使用时间,防止玩家无限点击重复领取奖励。物品触发脚本要做好背包空间检测,发放奖励前判断背包空位,空位不足弹出提示,避免奖励丢失。
怪物脚本主要用于自定义怪物AI、死亡触发奖励、击杀计数。在怪物死亡标签`@OnDeath`内编写代码,玩家击杀怪物之后执行脚本,可以实现击杀计数、概率掉落特殊道具、全服公告、召唤小怪。编写怪物脚本注意归属检测,判断最后击杀的玩家,奖励发放给击杀者,避免旁观者领取奖励。可以设置概率判断,使用RAND随机命令,实现一定概率触发额外奖励。
地图触发脚本,进入地图、离开地图、在地图内每秒检测都可以触发脚本。常用于地图内自动扣金币、限制进入等级、地图内禁止使用某些道具、定时刷怪、地图内自动给玩家增加buff。地图进入触发`@OnPlayerEnterMap`,玩家踏入地图瞬间执行条件判断,不满足条件直接传送出地图并弹出提示。地图触发脚本不要编写大量循环检测代码,高频检测会增加引擎负载,造成服务器卡顿。
脚本调试是制作脚本必不可少的环节,写完一段代码不要一次性大量新增内容,写完一小段就重启M2引擎加载脚本,进入游戏测试。M2引擎日志窗口会输出报错信息,查看日志可以定位错误行数,常见报错包括符号错误、标签不存在、命令拼写错误、路径不对。测试的时候优先使用GM号测试,快速验证功能,功能正常之后切换普通账号测试权限、条件限制。每次修改脚本后,部分引擎支持热加载,不需要重启服务端,热加载可以节省调试时间,但重大改动建议重启M2,防止缓存问题。
权限与漏洞防护,编写奖励类脚本必须增加多重条件校验,检测背包空位、每日领取标记,增加领取次数限制,防止玩家利用漏洞重复刷取道具和金币。不要直接开放无条件发放元宝、高级装备的脚本,尽量增加领取冷却、等级、转生等前置条件。涉及传送、清除属性、扣除道具的命令,增加二次确认弹窗,防止误操作。脚本内不要留下测试用GM命令,上线前清理全部测试代码。
不同引擎脚本差异,HERO引擎命令相对简洁,适合简单NPC和任务。GOM引擎支持更多自定义函数、UI界面、图片弹窗,功能强大,命令库丰富,但是语法细节多。GEE引擎兼容大部分GOM命令,同时新增部分内置功能。战神引擎用于手游端,脚本语法和PC端差别较大,多使用lua搭配引擎内置命令,移动端触发事件写法需要单独查阅对应文档。跨引擎脚本不能直接复制使用,直接粘贴大概率报错,需要逐行修改命令格式。
脚本制作常见错误,中英文符号混用导致脚本无法识别。标签跳转名称写错,点击选项没有任何反应。缺少`#ACT`,条件后面不执行动作。变量没有初始化,第一次触发脚本变量为空引发异常。没有背包空位检测,发放奖励直接丢失。高频循环检测脚本,造成服务器CPU占用过高,出现卡顿。没有领取次数限制,玩家无限刷奖励。
脚本制作学习顺序,先熟悉引擎帮助文档,查阅内置命令列表,看懂参数说明。从最简单的NPC对话、传送脚本开始编写,掌握IF条件判断、ACT执行逻辑。之后学习物品触发、变量计数,制作简单任务脚本。熟悉之后尝试怪物死亡触发、地图触发、活动脚本。编写脚本养成分段测试的习惯,每完成一个功能模块就进行测试,减少后期一次性排查大量bug的工作量。多看现成可用的开源脚本,拆解理解每一段代码作用,模仿结构练习,慢慢掌握脚本编写思路,再独立开发定制化脚本。
传奇脚本基础制作完整教程,引擎命令编写调试与常见错误排查
来源:
作者:
点击:

