##一、核心文件定位与目录结构解析
###1.**服务端目录体系**
传奇2服务端标准目录结构如下(以D盘默认安装为例):
```
D:\MirServer\
├─DBServer\FDB\#角色数据库核心区
│├─Hum.DB#玩家角色数据文件(含基础属性)
│└─Mir.DB#全局游戏数据文件(含NPC/任务状态)
├─LoginSrv\IDDB\#账号数据库(.IDX索引文件自动生成)
├─Mir200\Envir\#游戏环境脚本(爆率/NPC/地图设置)
└─Mud2\DB\#核心数据库(StdItems.DB/Monster.DB等)
```
###2.**Mir.db文件性质**
Mir.db属于**服务端自动生成的二进制数据库文件**,其功能包含:
-存储全局NPC对话状态、行会关系、任务进度等动态数据
-与Hum.DB(角色数据库)形成联动关系
-采用BDEParadox格式,需专用工具读写
---
##二、数据库文件生成机制
###1.**初次启动生成流程**
|步骤|操作|生成文件|
|------|--------------------------|-------------------------|
|1|配置DBC2000指向正确路径|无|
|2|启动DBServer.exe|Hum.DB/Mir.DB基础结构|
|3|首个角色创建|Hum.DB填充角色数据|
|4|NPC交互/任务触发|Mir.DB动态写入|
(数据来源:)
###2.**手动重建流程**
当数据库损坏时需按以下步骤重建:
```lua
--停止服务端所有进程
Taskkill/IMDBServer.exe/F
--删除旧数据库
Del/QD:\MirServer\DBServer\FDB\*.*
--初始化生成
StartD:\MirServer\DBServer\DBServer.exe
```
---
##三、人物属性修改技术路径
###1.**安全修改方案对比**
|方法|工具需求|风险等级|持久性|
|---------------------|-----------------------|----------|--------|
|GM命令修改|游戏内输入|★☆☆☆☆|临时|
|SQL工具直写|DatabaseDesktop/DBE|★★★★☆|永久|
|Envir脚本注入|文本编辑器|★★☆☆☆|永久|
|内存动态修改|CE/OD|★★★★★|临时|
###2.**数据库字段解析(以Hum.DB为例)**
通过BDEAdministrator查看结构:
```paradox
FieldNameTypeDescription
UserNameChar(30)角色名(唯一标识)
LevelInteger角色等级(1-255)
AC/MACInteger防御/魔防
DC/MC/SCInteger攻击/魔法/道术
ExpInt64当前经验值
GoldInteger金币数量
StatusInteger状态标识(0=正常1=封禁)
```
---
##四、定制化角色数据库实战
###1.**从零构建Mir.db**
需完成以下开发步骤:
1.**数据结构定义**
使用DatabaseDesktop创建Paradox表结构
2.**BDE别名配置**
```ini
[HeroDB]
PATH=D:\MirServer\DBServer\FDB
DEFAULTDRIVER=PARADOX
ENABLEBCD=FALSE
```
3.**服务端适配**
修改DBServer.ini指向新数据库:
```ini
[DBServer]
Database=HeroDB
HumTable=Hum.DB
MirTable=Mir.DB
```
###2.**属性批量修改案例**
通过SQL脚本调整全服玩家等级:
```sql
UPDATE"Hum.DB"
SETLevel=50
WHERELevel<50ANDStatus=0
```
---
##五、服务端与客户端关系说明
###1.**目录结构对比**
|类型|典型路径|核心文件|
|------------|---------------------------|---------------------------|
|**服务端**|D:\MirServer\|Mir.DB/Hum.DB/StdItems.DB|
|**客户端**|C:\热血传奇\|Data/Map/Wav|
###2.**数据交互流程**
```
玩家操作→客户端封包→LoginGate→DBServer→读写Mir.DB/Hum.DB
↓
游戏反馈←服务端解包←GameGate←
```
---
##六、高频问题解决方案
###1.**数据库无法生成**
-确认DBC2000别名配置正确(PATH指向FDB目录)
-检查DBServer.exe是否以管理员权限运行
-查看防火墙是否阻止了5000/6000端口通信
###2.**属性修改无效**
-确保服务端完全重启(Taskkill/IMM2Server.exe/F)
-验证数据库字段类型匹配(如Exp必须为Int64)
-检查Envir\QuestDiary下有无冲突脚本
---
##七、延伸开发建议
###1.**数据库加密方案**
```delphi
//使用Blowfish算法加密字段示例
procedureEncryptField(Field:TField);
begin
Field.AsString:=BlowfishEncrypt(Field.AsString'YourKey');
end;
```
###2.**分布式数据库架构**
采用Redis+MongoDB混合存储:
```
写操作→Redis缓存→异步写入MongoDB
读操作←Redis优先←MongoDB持久化
```
###1.**服务端目录体系**
传奇2服务端标准目录结构如下(以D盘默认安装为例):
```
D:\MirServer\
├─DBServer\FDB\#角色数据库核心区
│├─Hum.DB#玩家角色数据文件(含基础属性)
│└─Mir.DB#全局游戏数据文件(含NPC/任务状态)
├─LoginSrv\IDDB\#账号数据库(.IDX索引文件自动生成)
├─Mir200\Envir\#游戏环境脚本(爆率/NPC/地图设置)
└─Mud2\DB\#核心数据库(StdItems.DB/Monster.DB等)
```
###2.**Mir.db文件性质**
Mir.db属于**服务端自动生成的二进制数据库文件**,其功能包含:
-存储全局NPC对话状态、行会关系、任务进度等动态数据
-与Hum.DB(角色数据库)形成联动关系
-采用BDEParadox格式,需专用工具读写
---
##二、数据库文件生成机制
###1.**初次启动生成流程**
|步骤|操作|生成文件|
|------|--------------------------|-------------------------|
|1|配置DBC2000指向正确路径|无|
|2|启动DBServer.exe|Hum.DB/Mir.DB基础结构|
|3|首个角色创建|Hum.DB填充角色数据|
|4|NPC交互/任务触发|Mir.DB动态写入|
(数据来源:)
###2.**手动重建流程**
当数据库损坏时需按以下步骤重建:
```lua
--停止服务端所有进程
Taskkill/IMDBServer.exe/F
--删除旧数据库
Del/QD:\MirServer\DBServer\FDB\*.*
--初始化生成
StartD:\MirServer\DBServer\DBServer.exe
```
---
##三、人物属性修改技术路径
###1.**安全修改方案对比**
|方法|工具需求|风险等级|持久性|
|---------------------|-----------------------|----------|--------|
|GM命令修改|游戏内输入|★☆☆☆☆|临时|
|SQL工具直写|DatabaseDesktop/DBE|★★★★☆|永久|
|Envir脚本注入|文本编辑器|★★☆☆☆|永久|
|内存动态修改|CE/OD|★★★★★|临时|
###2.**数据库字段解析(以Hum.DB为例)**
通过BDEAdministrator查看结构:
```paradox
FieldNameTypeDescription
UserNameChar(30)角色名(唯一标识)
LevelInteger角色等级(1-255)
AC/MACInteger防御/魔防
DC/MC/SCInteger攻击/魔法/道术
ExpInt64当前经验值
GoldInteger金币数量
StatusInteger状态标识(0=正常1=封禁)
```
---
##四、定制化角色数据库实战
###1.**从零构建Mir.db**
需完成以下开发步骤:
1.**数据结构定义**
使用DatabaseDesktop创建Paradox表结构
2.**BDE别名配置**
```ini
[HeroDB]
PATH=D:\MirServer\DBServer\FDB
DEFAULTDRIVER=PARADOX
ENABLEBCD=FALSE
```
3.**服务端适配**
修改DBServer.ini指向新数据库:
```ini
[DBServer]
Database=HeroDB
HumTable=Hum.DB
MirTable=Mir.DB
```
###2.**属性批量修改案例**
通过SQL脚本调整全服玩家等级:
```sql
UPDATE"Hum.DB"
SETLevel=50
WHERELevel<50ANDStatus=0
```
---
##五、服务端与客户端关系说明
###1.**目录结构对比**
|类型|典型路径|核心文件|
|------------|---------------------------|---------------------------|
|**服务端**|D:\MirServer\|Mir.DB/Hum.DB/StdItems.DB|
|**客户端**|C:\热血传奇\|Data/Map/Wav|
###2.**数据交互流程**
```
玩家操作→客户端封包→LoginGate→DBServer→读写Mir.DB/Hum.DB
↓
游戏反馈←服务端解包←GameGate←
```
---
##六、高频问题解决方案
###1.**数据库无法生成**
-确认DBC2000别名配置正确(PATH指向FDB目录)
-检查DBServer.exe是否以管理员权限运行
-查看防火墙是否阻止了5000/6000端口通信
###2.**属性修改无效**
-确保服务端完全重启(Taskkill/IMM2Server.exe/F)
-验证数据库字段类型匹配(如Exp必须为Int64)
-检查Envir\QuestDiary下有无冲突脚本
---
##七、延伸开发建议
###1.**数据库加密方案**
```delphi
//使用Blowfish算法加密字段示例
procedureEncryptField(Field:TField);
begin
Field.AsString:=BlowfishEncrypt(Field.AsString'YourKey');
end;
```
###2.**分布式数据库架构**
采用Redis+MongoDB混合存储:
```
写操作→Redis缓存→异步写入MongoDB
读操作←Redis优先←MongoDB持久化
```

