传奇服务端按玩家提需求改功能标准化评估NPC机器人数据库M2参数测试回滚防刷教程

来源: 作者: 点击:
接功能需求先让提报人按固定格式写清楚:引擎名称、当前版本类型、功能名称、触发方式、参与条件、消耗与产出、时间规则、界面入口、异常处理、是否允许热更。引擎名称写HeroM2、GOM、GEE、BLUE、LEG、3K、C3之一,不写引擎只说“加个功能”会导致脚本命令全错。当前版本类型写内功连击、英雄合击、单职业、复古1.76、微变、超变、三端之一。功能名称避免“弄个好玩的”“做个自动的”这类词,改成“土城NPC批量买药输入数量扣金币”“每周六20点自动攻沙”“装备打孔镶嵌宝石”“主号内功三连击”“英雄合击怒气槽”等可执行名称。触发方式写点击NPC、输入数字、地图进入触发、击杀怪物触发、在线时长触发、定时机器人触发、登录触发之一。参与条件写等级、职业、行会、VIP、充值、元宝、金币、道具、每日次数。消耗与产出写扣多少、给什么、给几个、是否绑定的具体数值。时间规则写每天、每周几、几点到几点、持续多少分钟、是否开区第几天开始。界面入口写NPC放哪张地图哪个坐标、菜单几级、是否弹输入框。异常处理写背包满、钱不够、重复点击、维护期、合区期怎么提示。是否允许热更写只改脚本可重载,还是必须改数据库、M2参数、客户端补丁并重启。

评估阶段先分四类文件。第一类纯NPC交互,改Mir200\Envir\Market_Def或npc_def,Merchant.txt登记名称地图坐标脚本名,文件编码用ANSI,改完M2重新加载所有NPC或用@ReloadNpc/@loadnpc,坐标地图与MapInfo一致,外观代码按原NPC表取 。第二类定时自动,改Mir200\Envir\AutoRunRobot.txt写触发时间,RobotManage.txt写执行标签,自动攻沙、整点发奖、零点重置、在线计时都走这里 。第三类数值与物品,改StdItems、Magics、Monster、MonItems、ExpTable、!Setup,涉及新装备、新技能、新怪物、爆率、经验、货币规则,改完按引擎重载物品或重启M2。第四类引擎开关与客户端,改M2功能设置、GlobalParam.ini、HeroM2.ini、 castle配置、MapInfo、登录器、Data/PAK/WIL,涉及内功连击、英雄合击、攻沙、打孔、四格、内功栏、显示异常。

需求拆完做最小可运行方案,不一次性堆全部规则。批量买药只做输入数量、算总价、查背包、查金币、扣钱、发药;攻沙只做城堡开关、申请NPC、攻城时间、占据皇宫判定;打孔只做打孔NPC、孔位变量、成功率、镶嵌宝石数据库;连击只做M2连击开关、Magics连击技能、内功等级、连击槽脚本;合击只做英雄开关、火龙之心、怒气、职业组合技能。每加一个边缘规则都单独测试,避免条件嵌套出错。

NPC类需求改法。Merchant.txt加一行:脚本名 地图号 X Y NPC显示名 标志 外观 范围 参数,Market_Def建同名脚本。菜单用[@main]写选项,条件分支用#IF、#ACT、#ELSEACT,错误提示用#SAY或MESSAGEBOX。输入数量用本引擎输入数字命令,回传变量存数量,先判等于0、小于1、超过上限,再乘单价得总价;用背包空格命令按数量检查,用金币检查命令校验,满足后扣钱发物品。改NPC脚本后若只动对话和功能,GOM/GEE走M2控制重新加载所有NPC,Hero走重新加载NpcTalk脚本,BLUE按对应重载菜单,改Merchant坐标地图后重载无效再重启M2 。脚本不生效先查文件名与Merchant注册名一致、ANSI编码、标签@符号完整、#IF/#ACT/#SAY配对、变量名不被其它脚本污染。

机器人类需求改法。AutoRunRobot.txt写定时:#AutoRun NPC RUNONDAY 20:00 @标签名,RobotManage.txt写[@标签名]及执行命令。自动攻沙可用加入攻城列表命令按本引擎替换,Hero/GOM常用AddAttackSabukAll思路,LEG可用AddToCastleWarList思路,同时配合城堡配置文件与M2攻城时间 。整点发奖用机器人读全局变量或HUMAN每日标记,先判日期再发,发完写已领标记。零点重置单独一个标签,清每日次数、每日元宝、每日限购、行会临时状态。机器人只做调度和简单变量,复杂物品判定放回NPC或QFunction,避免Robot标签过长难维护。改完机器人保存,部分引擎重载Robot,不生效再重启M2。

数据库类需求改法。新装备进StdItems,填名称、StdMode、Shape、AC/DC/MC/SC/HP/MP、耐久、重量、等级、价格、特殊字段;新技能进Magics,填技能名、职业、等级分段、内力消耗、特效字段、连击或内功标识;新怪物进Monster,填等级、血量、攻击、经验、视野、攻速;爆率进MonItems对应怪物文件,写物品名和分数如1/100。连击技能在Hero类引擎要Magics的Descr标注内功、Spell填内力消耗,GlobalParam写SupportCombo=1、ComboMaxStep=3,内功栏另开EnableInnerPower或对应参数 。改数据库前备份原DB,字段顺序按本引擎编辑器表头改,不随意插列;改完重载物品/技能,Hero内功连击异常优先查M2开关、GlobalParam旧参数、Magics内力值、客户端内功PAK/WIL是否配套 。

M2与地图类需求改法。攻沙改castle配置Enable、WarDay、StartTime、EndTime、ReadyDay,M2城堡管理勾允许申请,MapInfo沙巴克主城皇宫城墙写CASTLE和战斗属性。打孔镶嵌按引擎走打孔界面标签或通用凹槽命令,同时M2开新增属性、元素、凹槽显示。英雄合击开M2英雄系统、合击、怒气,StdItems放火龙之心,按主号英雄职业组合映射合击技能。内功连击开M2内功、经络、连击,客户端补丁放内功栏、连击槽、技能特效。显示异常不先改脚本,先核对M2开关、配置文件、客户端资源、登录器是否同版本;版本不匹配会出现内功栏不显示、连击槽空白、合击无怒槽、装备属性不显示 。

常见需求模板直接套。批量买药:NPC主菜单按药品分选项,点入唤数字输入,回传数量判0和上限,乘单价,CHECKBAGSIZE按数量,CHECKGOLD总价,TAKE扣金币,GIVE按数量发药,元宝版把CHECKGOLD换CHECKGAMEGOLD或CHECKITEM元宝。自动攻沙:castle开Enable和时间,M2允许申请,土城NPC用会长判断加攻城列表防重复,Robot每天或每周定时加全行会列表并广播,攻城结束用QFunction或定时脚本发城主奖励、全服公告。装备打孔:打孔NPC用界面标签收材料,D变量计材料数和孔数,随机值与成功率比较走成功失败分支,镶嵌用宝石StdMode/Shape匹配孔位,StdItems配属性,M2开凹槽新增属性。内功连击:GlobalParam开SupportCombo和SupportInnerForce,Magics加连击技能标内功内力,M2内功参数开栏位,脚本按内功等级放行连击段数,客户端补连击槽资源。英雄合击:M2英雄系统开创建出战合击怒气,NPC创建英雄,StdItems火龙之心,合击技能按战战、法法、道道、战法、法道、战道映射,怒气靠打怪受击回,合击前校验英雄出战、主号等级、物品、怒气。

防刷防白嫖写进每个付费功能。输入数量必须拦0、负数、超上限;发物品前必须查背包空格,先查背包再查钱再扣钱再发物品;每日次数用HUMAN或全局变量加日期标记,零点机器人清零;限购按角色、账号、IP三维,IP用引擎IP变量或网关层限制;小号刷礼包加等级、在线时长、累计充值或行会条件;限量销售用全服全局库存变量加个人每日限购,发完全局库存为0不再售;元宝回收、装备回收、打孔材料、合击道具都加日志变量,异常数量用GM命令回查。数据库层面爆率改MonItems分数即可调概率,VIP专属掉落用条件命令判断VIP再给高价值物品 。

测试流程固定。改前备份Mir200、DBServer数据库、DB目录、登录器配置、Data补丁;纯脚本改在测试号热更后点NPC走完整分支;改数据库在测试区重载物品技能后建角色验证属性;改M2开关重启M2并用GM建会、打怪、攻城、打孔、放连击、出英雄合击各测一遍;改客户端补丁清客户端缓存重新进,看内功栏、连击槽、合击怒槽、打孔界面、装备特效。测试账号覆盖零等级、满等级、会长、普通会员、VIP、小号、多开同IP,重点测重复点击、背包满、钱不够、活动重叠、合区当天、维护前后。M2日志看脚本报错、数据库加载、机器人触发、城堡读取;客户端看花屏、空白槽、技能无特效、属性不显示。

回滚预案固定。日常小改只备份涉及脚本和Merchant,10分钟可还原;改数据库备份整个DB和StdItems/Magics/Monster/MonItems,还原后重载;改M2全局参数和castle备份GlobalParam、HeroM2.ini、!Setup、Castle目录,还原后重启M2;改客户端补丁备份Data、PAK列表、WIL、登录器配置,还原后重新生成登录器;大版本改备份整个MirServer和数据库目录,出严重掉线、物品消失、货币异常、攻城判城错误立即停服,按最近一次可运行备份回Envir和DB,再启动验证基础登录、主城、NPC、战斗、仓库 。不保留“先上正式服再看”的习惯,所有新功能先测试区跑通再进正式区。

交付标准写六项。功能入口可达,NPC坐标地图外观正常;触发条件与需求一致,零值、超值、重复操作都有提示;消耗产出数值可核对,发物品数量和扣费金额在日志或系统消息一致;定时类按AutoRunRobot和RobotManage触发,不依赖人工点;数据库改动物品技能怪物爆率重载后无报错;客户端显示内功、连击、合击、打孔、属性面板与M2开关一致。六项缺一项不打回正式区。长期维护把需求按NPC、机器人、数据库、M2、客户端分目录存档,每次改动写日期、文件、命令、数值、测试账号结果,合区前冻结脚本大改,合区后先复测攻沙、回收、限购、连击、合击再对玩家开放。