传奇服务端的所有商业脚本,核心运行载体是服务端的M2引擎,也就是GOM、GEE、翎风等主流传奇引擎的主程序模块,所有脚本逻辑都由引擎底层的脚本解释器直接解析执行,完全运行在服务端本地环境中,不会在玩家的游戏客户端上执行任何核心逻辑。这种运行架构完全符合传奇的经典C/S设计,客户端只负责接收引擎返回的执行结果,完成界面展示和操作反馈,所有涉及角色属性修改、物品发放、地图传送、经济系统调整的核心运算,全部在服务端引擎内部完成,从底层避免了客户端篡改脚本逻辑的风险,保障商业版本的经济系统稳定。
不同类型的商业脚本,在服务端内有明确的专属存放目录,只有放到对应路径下,引擎启动时才能自动加载识别。NPC交互类商业脚本,比如定制的装备合成NPC、会员福利NPC、活动报名NPC,统一存放在MirServer\Envir\Market_Def目录下,每个NPC对应一个独立的txt脚本文件,文件名和NPC在引擎NPC配置列表里的命名完全对应,引擎启动时会自动扫描这个目录下的所有脚本文件,完成NPC交互逻辑的注册。全局事件类商业脚本,比如玩家上线弹窗、击杀怪物触发奖励、穿戴装备激活套装属性这类全服通用的逻辑,全部写入Market_Def目录下的QFunction-0.txt文件中,引擎会在对应的全局事件触发时,自动调用这个文件里的对应标签段执行逻辑。
任务类、专属活动类的商业脚本,统一存放在MirServer\Envir\QuestDiary目录下,你可以按照功能模块创建不同的子文件夹分类存放,比如把日常签到脚本放在Sign子文件夹,把跨服攻城活动脚本放在GuildWar子文件夹,每个独立功能对应一个单独的txt脚本文件。部分引擎还要求在Envir\Config目录下的QuestDiaryList.txt配置文件里,添加新脚本的路径条目,设置好加载顺序,确保引擎启动时能按正确优先级加载所有自定义商业脚本,避免出现脚本调用顺序错乱导致的功能失效。
定时执行的机器人商业脚本,比如全服定时怪物攻城、定点刷新世界BOSS、自动清理服务器冗余数据这类不需要玩家触发的定时任务,统一存放在MirServer\Envir\Robot_def目录下,这类脚本由引擎的定时调度模块直接驱动,按照脚本里设定的时间间隔自动运行。需要注意的是,商业脚本里的高频定时任务,不要设置成1秒级触发,这类高频率轮询会大幅增加引擎的运算压力,导致服务器在线人数上升后出现明显卡顿,常规的全服状态检测任务建议设置10秒以上的间隔,全服公告类任务设置60秒以上的间隔,避免占用过多引擎性能。
怪物刷新配置类商业脚本,也就是MonGen.txt文件,存放在MirServer\Envir目录下,所有自定义的怪物刷新坐标、刷新间隔、刷新数量的配置都在这里完成,引擎启动时会直接读取这个文件的全部内容,生成全服地图的怪物刷新规则。商业版本里的高阶BOSS刷新逻辑,建议把同类BOSS的刷新时间错开设置,不要全部设置成统一的30分钟刷新,避免引擎在同一时间点集中处理大量刷新逻辑,形成性能波峰,导致全服玩家出现集体卡顿的情况。
脚本运行的基础系统环境,要求使用Win10/Win11 64位操作系统,提前安装好.NET Framework 4.8及以上版本、DirectX 11组件,同时把整个MirServer服务端目录加入杀毒软件和系统防火墙的白名单排除项,避免杀毒软件误删脚本文件或者拦截引擎的脚本解释进程,导致商业脚本加载失败。所有脚本文件必须使用ANSI编码格式保存,不能使用UTF-8编码,否则引擎读取脚本时会出现中文乱码,导致脚本里的中文提示信息显示异常,甚至直接触发脚本语法报错,功能完全失效。
脚本部署完成后,不需要重启整个服务器,大部分主流引擎都自带脚本热加载功能,在M2引擎的控制面板里找到重新加载NPC脚本、重新加载任务脚本的对应按钮,点击之后就能直接刷新修改后的脚本内容,不需要重启服务器中断玩家的正常游玩。如果脚本运行出现异常,可以直接查看引擎Logs目录下的运行日志,日志里会精准记录脚本报错的行号、错误指令类型,快速定位语法错误、变量未定义、路径配置错误等问题,完成调试修正。
传奇服务端商业脚本运行位置与全流程部署指南
来源:
作者:
点击:

