3K引擎新沙巴克数据存储分为数据库表与城堡配置文件两部分,DB表负责城门、防御NPC、税收、基础属性的持久存储,Castle目录下文本文件用于加载城堡实例信息,新增多沙巴克时需要同步修改数据库记录与地图、NPC、攻城脚本,缺一不可。操作前先完整备份Mirserver目录与DB库文件,防止参数填写错误导致引擎无法加载城堡数据。
打开数据库工具,找到沙巴克相关数据表,基础字段包含城堡编号、城堡名称、地图编号、城门坐标、城门血量、守城NPC编号、税收比例、金库总额、当前占领行会、攻城时间标记。新增沙巴克时,在数据库内新增一行记录,分配未被占用的城堡ID,填写自定义城堡名称,绑定独立地图编号,设置城门的X、Y坐标,录入城门最大血量,设置默认税收比例。守城NPC需要关联怪物数据库ID,弓手、卫士的刷新数量、刷新坐标、复活间隔全部在DB内填写,参数错误会出现攻城时守城怪物不刷新或者直接闪退。
数据库字段填写完成后,进入Mir200\Envir\Castle目录,复制原有sabukw.txt,重命名为对应新城堡编号的配置文件,打开文件修改[Setup]段参数,CastleName填写数据库内一致的城堡名称,OwnGuild留空表示无行会占领,WarDate设置首次攻城开启时间,TotalGold设置金库最大存储金币。切换到[defense]分段,修改CastleMap为新沙巴克对应的地图号,修改MainDoorName、MainDoorX、MainDoorY,和数据库内城门坐标保持一致,同步修改左右城墙、皇宫门的名称、坐标与血量参数。
Castle目录下List.txt是城堡列表清单,新增一行写入新城堡配置文件名,引擎启动时读取这个文件加载全部城堡实例,不添加这条记录,M2无法识别新增沙巴克,会出现城堡不生成、攻城NPC不加载的情况。打开MapInfo.txt,添加新沙巴克地图配置,设置地图标记、回城点、禁止使用的传送类指令,设置攻城区域范围,限定攻城期间可战斗的区域边界。地图文件放入客户端map文件夹,核对地图编号,避免客户端地图缺失造成黑屏。
NPC脚本部分需要新增沙城管理员NPC,放置在新沙巴克安全区坐标,NPC脚本内包含查询金库、存取金币、城门开关、查看攻城状态等功能,脚本调用3K引擎内置城堡指令,指令参数填写新增城堡ID,不能沿用原有沙巴克ID,否则操作会作用到老沙巴克。申请攻城NPC需要增加分支选项,区分不同城堡的攻城申请,行会提交攻城申请后,引擎会在对应城堡配置文件写入攻城时间标记,到点自动开启攻城模式。
修改完成后关闭M2服务端,重新启动DB网关与M2,查看M2日志,确认城堡加载成功,无字段报错、坐标越界提示。进入游戏创建行会,找攻城NPC提交攻城申请,到攻城时间进入地图测试,检查城门能否被击破、守城怪物正常刷新、击杀城门后旗帜切换归属,沙巴克金库存取金币功能正常。
常见故障排查,M2提示找不到城堡文件,优先检查List.txt文件名大小写、路径是否正确;攻城时城门打不动,核对DB内城门血量参数与sabukw.txt内血量是否一致;占领行会不更新,检查数据库内OwnGuild字段写入权限,攻城结束后引擎自动写入行会名称,手动修改需要重启M2加载;税收不生效,确认DB内税收比例参数范围,数值超出区间会直接不计算税收。
多沙巴克同时运行时,每个城堡使用独立地图ID,攻城时间错开设置,防止多场攻城事件并发造成脚本冲突。修改DB内基础参数之后,部分参数需要重启M2生效,部分参数可在M2控制台实时重载配置文件,修改前分清参数类型,避免反复重启服务影响测试。全部功能测试稳定之后,保存数据库与配置文件备份,方便后续版本维护与参数调整。
传奇3K引擎新沙巴克数据DB文件结构与新增城堡配置修改实操教程
来源:
作者:
点击:

