文章目录
1. 准备事项
1.1 通过GitClone去拉取ET-EUI项目
目的是为了同步更新
同时也要创建一个自己的分支
1.2 MongoDB正确安装
1.3 Robo 3T 数据库可视化软件
Robo 3T 数据库可视化软件是用来对MongoDB数据库进行可视化的
2.数据库相关
2.1 游戏区服
游戏区服的概念就是我们有两个区,比如说区1和区2
那么这两个区对应的数据库也是不一样的,所以我们需要在这里进行配置
2.2 创建自己的数据库
由于我们的放置类游戏只需要一个区服,所以创建一个数据库即可
我们打开Robo 3T创建Database 名为ET1
然后在ET1这个数据库里面创建一个Account集合
3.定义Account账户实体
我们来思考一下,这个实体是否会被客户端使用,如果不需要,则将Account实体创建在Server的Model数据层下面
4.启用MongoDB的功能
NetKcpComponent,可以让客户端直接连接到该服务器上面
也可以接受到客户端的连接
添加数据库管理组件DBManagerComponent
Account就有了对数据库进行操作的能力
如果一个进程有多个DBManagerComponent,则会发生错乱
因为它是一个单例
所以一个服务器进程只需要一个,也就是一个区服只需要一个
所以我们可以直接在根节点Scene上面挂载一个,然后整个进程都可以用了
DBManagerComponent
5.配置Excel
我们添加Account的服务器
插入一行,表示我们的账号服务器
这里为什么Location和Map都没有外网端口呢?因为都不需要连接客户端,只需要连接服务器端就行。比如Location连接Gate,然后Map也连接Gate
6. 查看服务器是否添加成功
编译项目
导表
运行服务器,发现log里面提示创建成功
Scene的类型 Scene的名字 Scene的ID Scene的InstanceID Scene所属的进程
7. 普通消息的编写
这里的Token代表的是用户令牌,AccountId是账户的唯一标识
令牌就是用于账号服务器的连接,就是验证码
然后就是导表
8.编写服务器处理消息代码
我们在Serveer下面的Hotfix代码里面创建Account文件夹,表示是Account服务器处理文件夹,我们所有服务器上面和Account相关的都放在这个下面。然后我们创建Handler文件夹,专门用来处理消息
我们编写对C2A_LoginAccount消息的处理函数,留到下一节去写具体的事件
9.修改客户端的登录方法
我们在登录的逻辑层修改登录的逻辑
我们通过ErrorCode来告诉显示层,调用是否成功
当显示层调用Login这个逻辑层代码的时候,可以通过拿到的返回值来知道是否登录成功