本篇将作为“网狐系列美乐迪电玩组件”技术文档的第一篇,重点讲解服务端的文件结构、数据库设计、解密工具使用方式,为后续搭建、美术替换与客户端调试打下技术基础。
一、服务端文件结构说明
解压后的服务端目录结构较为清晰,一般如下:
/meiledi_server
├── bin/ # 核心服务程序
├── conf/ # 配置文件目录
├── db_script/ # SQL结构文件
├── decrypt_tool/ # 解密工具(资源/配置)
├── logs/ # 启动后生成日志
└── start.bat # 一键启动脚本
关键文件说明:
-
GameServer.exe
:大厅逻辑服务进程,监听多个子游戏模块。 -
LoginServer.exe
:用户登录验证与分配。 -
roomlist.json
:控制大厅中可加载游戏的种类与参数(需解密编辑)。 -
config.ini
:数据库与服务监听端口配置核心入口。
二、数据库结构初始化(SQL Server)
推荐环境:SQL Server 2014 及以上版本
1. 创建数据库
名称建议为:meiledi_game
2. 初始化脚本样例
路径:/db_script/init.sql
CREATE TABLE [dbo].[Accounts](
[UserID] INT IDENTITY(1001,1) PRIMARY KEY,
[Username] NVARCHAR(32) NOT NULL,
[Password] NVARCHAR(32) NOT NULL,
[CreateTime] DATETIME DEFAULT GETDATE(),
[AgentID] INT DEFAULT 0
);
CREATE TABLE [dbo].[ScoreInfo](
[UserID] INT,
[Score] BIGINT DEFAULT 0,
[WinCount] INT DEFAULT 0,
[LostCount] INT DEFAULT 0,
FOREIGN KEY (UserID) REFERENCES Accounts(UserID)
);
CREATE TABLE [dbo].[GameLog](
[LogID] INT IDENTITY(1,1) PRIMARY KEY,
[UserID] INT,
[GameID] INT,
[RoomID] INT,
[ScoreChange] BIGINT,
[CreateTime] DATETIME DEFAULT GETDATE()
);
3. 常见问题排查
错误信息 | 可能原因 |
---|---|
无法连接数据库 | config.ini中连接配置错误或数据库未启动 |
登录后闪退 | 子表未建全,例如 ScoreInfo 缺失字段 |
游戏加载为空 | roomlist.json 未配置游戏项或JSON格式错误 |
三、config.ini 配置详解
路径:/conf/config.ini
[Database]
Server=127.0.0.1
Port=1433
User=sa
Password=yourpassword
DBName=meiledi_game
[Server]
LoginPort=8600
GamePort=8700
MaxOnline=500
[Log]
Enable=true
LogLevel=3
-
LoginPort/GamePort:分别对应 LoginServer 与 GameServer 监听端口
-
LogLevel:1=只报错, 3=开发调试推荐, 5=详细所有
四、解密工具使用说明
某些配置文件(如 roomlist.json
, gameres.list
)默认加密。
解密流程:
-
进入
decrypt_tool/
-
打开
RoomListDecoder.exe
-
拖入加密文件,点击“解密”
-
编辑完成后可重新加密保存
五、启动流程建议
Windows 下运行流程:
# 进入根目录
cd /meiledi_server
# 启动 LoginServer
start bin/LoginServer.exe
# 启动 GameServer
start bin/GameServer.exe
检查端口是否被占用:
netstat -ano | findstr ":8600"
日志目录:
/logs/login.log
/logs/game.log
常见调试点包括数据库连接、房间加载、用户验证等。