KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 453|回复: 8

请问如何通过databaseID获取到当前存在的实体

[复制链接]

8

主题

17

帖子

74

积分

注册会员

Rank: 2

积分
74
发表于 2016-4-25 09:18:43 | 显示全部楼层 |阅读模式
想实现好友列表的功能,好友列表存放的是databaseID吗?
回复

使用道具 举报

30

主题

7138

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
16457
QQ
发表于 2016-4-25 12:15:58 | 显示全部楼层
这是逻辑设计的问题。

你可以这样存放

dict{ key = 好友dbid : {好友mailbox:NULL(没上线则为空), 好友名称:xxx,好友其他信息:xxx}
当要查询好友时就从这个字典中通过dbid获得他的信息, 要知道上线没有只要看看mailbox是否不为空。

所有人上线的时候都去某个全局管理器填充一下自己的信息,如果没查询到信息再考虑查询数据库(当然此玩家肯定没上线)。

你得到了mailbox就可以访问他的远程方法。
热爱游戏、热爱开源!
柯标
3603661@qq.com

柯标
3603661@qq.com
回复

使用道具 举报

8

主题

17

帖子

74

积分

注册会员

Rank: 2

积分
74
 楼主| 发表于 2016-4-25 14:14:47 | 显示全部楼层
嗯嗯 我早上也类似的定义了一个字典用于存放 谢谢kbe大大
回复

使用道具 举报

41

主题

137

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2019-1-9 18:04:53 | 显示全部楼层
kbe 发表于 2016-4-25 12:15
这是逻辑设计的问题。

你可以这样存放

请问一下,是加载Account的时候通过存好的好友dbid去全局获取好友Account来初始化“好友mailbox”“好友名称”这些字段吗?这样好友不在线没法初始化,如果中途好友上线了也没法主动同步这个信息给自己的Account吧?

是否可以每个玩家上线后都把databaseID当做索引放入globalData中,Account里只存好友的databaseID,当需要与好友交互时根据databaseID去globalData中获取好友的EntityCall来做交互呢?
回复

使用道具 举报

5

主题

4507

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2019-1-10 10:04:14 | 显示全部楼层
CC2012520 发表于 2019-1-9 18:04
请问一下,是加载Account的时候通过存好的好友dbid去全局获取好友Account来初始化“好友mailbox”“好友 ...

放globalData比较耗内存, 每个进程都有一份。 你内存够也可以这样。
但这也没解决你说的好友不在线问题。

上线你自己去全局管理器拿数据, 为何要主动同步给你的account?
QQ:3603661
3603661@qq.com
回复

使用道具 举报

41

主题

137

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2019-1-10 10:38:24 | 显示全部楼层
柯标 发表于 2019-1-10 10:04
放globalData比较耗内存, 每个进程都有一份。 你内存够也可以这样。
但这也没解决你说的好友不在线问题 ...

我主要是没理解你说的方案的初始化过程,是在数据库中存dbid,还是把“好友mailbox”“好友名称”等字段都存入数据库呢?

如果只存dbid,那就存在好友列表的初始化问题,这个初始化时机是什么时候呢?怎么来做初始化呢?
回复

使用道具 举报

5

主题

4507

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2019-1-10 12:00:38 | 显示全部楼层
CC2012520 发表于 2019-1-10 10:38
我主要是没理解你说的方案的初始化过程,是在数据库中存dbid,还是把“好友mailbox”“好友名称”等字段 ...

只存dbid。
这个设计说来话长, 你还是按照你熟悉的套路来吧
QQ:3603661
3603661@qq.com
回复

使用道具 举报

41

主题

137

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2019-1-10 14:28:36 | 显示全部楼层
柯标 发表于 2019-1-10 12:00
只存dbid。
这个设计说来话长, 你还是按照你熟悉的套路来吧

讲讲啊,这个功能一般网络游戏都需要的,来自官方的推荐设计肯定能给大家很多启发,我主要不理解的点在于玩家登陆后好友列表怎么初始化和维护
回复

使用道具 举报

5

主题

4507

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2019-1-10 14:42:18 | 显示全部楼层
以后会出一份文档
QQ:3603661
3603661@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2019-3-22 20:57 , Processed in 0.031519 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表