传奇SQL版单机物品数据库连接与修改操作详解

来源: 作者: 点击:
使用SQL数据库的传奇单机服务端,其物品数据通常存储在独立数据表中,需通过数据库管理工具直接操作。连接与修改流程分为三步:确认数据库类型、配置连接参数、编辑物品表结构。

首先识别服务端所用数据库类型。常见为MySQL、SQL Server或SQLite。查看M2Server目录下的Config.ini或!Setup.txt文件,查找[Database]或[DB]段落。例如:
[Database]
Type=MySQL
Host=127.0.0.1
Port=3306
User=root
Password=123456
Database=MirWorld

若Type显示SQLite,则数据库为本地.db或.mdb文件,路径如DBmir.db。

针对MySQL或SQL Server,使用Navicat、DBeaver或SQL Server Management Studio连接。新建连接时填入上述Host、Port、User、Password及Database名称。测试连接成功后展开MirWorld库,查找物品相关表,通常命名为StdItems、ItemInfo或DuraMagic。

物品表结构包含关键字段:Index(物品唯一ID)、Name(中文名)、Shape(外观编号)、DuraMax(耐久上限)、NeedLevel(所需等级)、StdMode(装备类型)、AniCount(动作帧数)、Price(商店售价)、Weight(重量)。攻击/魔法/道术属性存于AC、MAC、DC、SC等字段,部分版本使用ExtField扩展字段存储附加属性。

修改示例:将“屠龙刀”攻击范围从5提升至7。先执行查询:
SELECT * FROM StdItems WHERE Name = '屠龙刀';

记录其Index值(如1001),再执行更新:
UPDATE StdItems SET AC = 7 WHERE Index = 1001;

若属性存储于JSON格式的ExtField字段,则需解析后修改,例如:
UPDATE StdItems SET ExtField = '{"AttackRange":7,"HitSpeed":3}' WHERE Index = 1001;

对于SQLite数据库,使用DB Browser for SQLite打开.db文件。操作逻辑相同:定位StdItems表,直接双击单元格修改数值。注意修改前关闭M2Server进程,否则写入可能被覆盖或锁表。

物品图标与外观由客户端决定,数据库仅控制属性。若修改后游戏内显示异常,检查Shape值是否超出客户端WIL文件支持范围。新增物品需确保Index不与现有冲突,且在客户端C:MirClientMapStdItems.txt中有对应定义行,否则无法显示。

服务端启动时加载数据库全量物品数据至内存,因此每次修改后必须重启M2Server使变更生效。部分服务端提供热重载指令如@reloaditem,但非所有版本支持。验证修改结果可通过GM命令@makeitem Index数量 在游戏内生成测试。