kbengine
zzpzm
知道的越多,越觉得自己无知
展开
-
kbengine属性同步分析
实体的属性是定义在def文件中 属性会有几个不同的flag来表示属性是如何更新的 entitydef/common.h ALL_CLIENT 属性能被周围的客户端获得,包括自身。相当于同时设置了OWN_CLIENT和OTHER_CLIENT标志。 ALL_CLIENTS 同ALL_CLIENT BASE 只能在Base上使用 BASE_AND_CLIENT 属性在base和客户端都可见,相当于同时设置了OWN_CLIENT和BASE标志。 CELL_PRIVATE entity的.原创 2020-08-21 17:53:55 · 1142 阅读 · 0 评论 -
kbengine移动同步分析
在kbengine.cs中,可以看到存在这样一个函数 可以看到会调用baseapp::onUpdateDataFromClient() 从baseapp:: onUpdateDataFromClient()到cellapp:: onUpdateDataFromClient() 1502行实际上调用了Entity:: onUpdateDataFromClient() 下面还有一长段检查就没截图了。走到这发现好像就是更新了位置,AOI没有处理啊。实际上这里隐蔽在于要到posi..原创 2020-08-21 16:22:55 · 1224 阅读 · 0 评论 -
kbengine unity3D 登录分析(初次登录流转过程)
上文说到流程到了Loginapp::login(),那么登录操作到了这里接下来会怎么走呢?往下看 Loginapp.cpp 996~1003:请求交给脚本操作 1096~1100 会将用户名和密码交到Dbmgr上进行查询 找到Dbmgr::onAccountLogin() 105行将任务交给了数据库线程池。 那么数据库线程池是怎么回事呢?以下虚线部分都是线程池的内容,如有了解可以跳过 ------------------------------------...原创 2020-08-07 16:59:46 · 479 阅读 · 0 评论 -
kbengine unity3D 登录分析(服务端协议构建)
从loginapp开始,loginapp的构造函数只有一句话 pMainMessageHandlers是MessageHandlers的静态成员变量,那么赋值号右边的LoginappInterface::messageHandlers是什么呢? 找到LoginappInterface loginapp_interface.cpp LoginappInterface是命名空间,那么messageHandlers就是其中对应的某个变量了,进入头文件查看 loginapp_inter..原创 2020-08-06 18:00:12 · 330 阅读 · 0 评论 -
kbengine unity3D 登录分析(服务端)
类的作用: EndPoint:端点,主要是抽象socket所作用的端点,比如说一个连接socket,客户端是一个EndPoint,服务端也是一个EndPoin Channel:抽象socket连接,客户端和服务端之间有n条连接socket,那就有n个channel对象,channel中也有endpoint成员,这个endpoint是客户端 Bundle:用于发送消息 packet:接收的数据封装 Kbengine的每个app都是一个进程,所以每个app都有一个main函数。从login..原创 2020-08-06 17:21:22 · 521 阅读 · 0 评论 -
kbengine unity3D 登录分析(客户端)
客户端: Kbengine针对Unity3d专门制作了插件https://github.com/kbengine/kbengine_unity3d_plugins 插件在安装之后,会在messages.cs自动生成配置静态代码。静态代码是根据messages_fixed_defaults.xml形成的 函数id与函数名对应,比如1963行的505对应Client_onLoginBaseappFailed,到xml文件中寻找 UI.cs 可以看到登录是调用了login()...原创 2020-08-06 17:00:01 · 373 阅读 · 0 评论