KBEngine经常会遇到的问题和处理办法

kb引擎经常会遇到的问题和处理办法。

1,如果你的属性是同步的,如果通过

self.dict[strP] = val
去修改不会触发属性同步,可以使用
setattr(self,strP,val),也可以利用dict方式来初始化数据而不发送给客户端。

2,在base里,你可以使用entityCall.cell 来调用cell方法

在cell里也可以通过entityCall.base来调用base方法。

3,entityCall.id是可以在任何地方获得的。

4,def onLogOnAttempt( self, ip, port, password ):

如果重新连线,内存有对象触发,我们可以处理断线重连。
这个回调函数可以返回如下常量值:
KBEngine.LOG_ON_ACCEPT:允许新的客户端与实体进行绑定,如果实体已经绑定了一个客户端,之前的客户端将被踢出。
KBEngine.LOG_ON_REJECT:拒绝新的客户端与实体绑定。
KBEngine.LOG_ON_WAIT_FOR_DESTROY:等待实体销毁后再进行客户端绑定。

5,动态开关,可以在data目里放一个systemInfo.py

#放置一些服务器的参数 systemInfo
import hashlib
serverRegular = 0   #是否正式服
writeMylog = 1      #是否写入mylog
isopen = 0          #是否放人,这个开关只有在正式服公网模式才会验证

然后在login的kbemain.py中定义

	if(systemInfo.isopen != 1):
		#如果关闭了停止登录,提示用户自定义消息1
		errorno = KBEngine.SERVER_ERR_USER1
		return (errorno, loginName, password, clientType, datas)

来开启和关闭服务器用户登录

6,cellData参数在创建cell对象的时候就无法访问了,直到在销毁cell对象的时候又可以访问了,貌似cellData里的数值会变成销毁cell时候的数值。

所以如果你希望重连后不进入房间,那么可以在cell里的onDestroy清空相关数据。

7,Logs目录的里log输出

玩家数量大会输出很多log,我们通过kbe\res\server\log4cxx_properties_defaults里面的log4cxx配置文件进行配置。
Loggers 六个级别:TRACE < DEBUG < INFO < WARN < ERROR < FATAL。
低级别的不会输出,例如设置了DEBUG则TRACE的不会输出。

8,心跳设置

有时候在连线时候加载卡死的函数会掉线,可以在引擎的目录kbengine\kbe\res\sdk_templates\client\unity修改模板,增加下面的脚本
修改KBEngine.cs

		public void SetHeartTick(int heart)
		{
            _args.serverHeartbeatTick = heart / 2;
        }

然后再游戏中,我们继承的类中添加修改心跳周期的函数,例如

public class KB : KBEMain
{
//设置心跳
	public void SetHeartTick(int tick)
	{
		gameapp.SetHeartTick(tick);
    }
	//恢复心跳
	public void ResetHeartTick()
	{
		gameapp.SetHeartTick(serverHeartbeatTick);
	}
}
我们在卡死之前调用KB.inst.SetHeartTick(int.MaxValue);之后回复就可以了。

9,属性作用域

如果一个属性的作用域分为多个部分,那么在实体的对应部分都存在该属性。
存在于实体多个部分的属性只能从属性的源头进行修改,其他部分会得到同步。

请参考如下表:(S与SC或者C都代表属性包含这个部分,不同的是S代表属性的源头,C代表数据由源头同步,SC代表实体的real部分才是源头,ghosts部分也是被同步过去的)

[类型][ClientEntity][BaseEntity][CellEntity]
BASE-S-
BASE_AND_CLIENTCS-
CELL_PRIVATE--S
CELL_PUBLIC--SC
CELL_PUBLIC_AND_OWNC-SC
ALL_CLIENTSC(All Clients)-SC
OWN_CLIENTC-S
OTHER_CLIENTSC(Other Clients)-SC

10,导入其他包

通常我们安装 pip install 包体,安装成功会显示路径,然后
只要把python的包拷贝到kbe\res\scripts\common\Lib下就可以了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: KBEngine文档是KBEngine游戏引擎官方提供的详细文档,用于指导开发人员的使用和学习。这份文档详细介绍了KBEngine引擎的各个组件、功能和特性,以及如何使用这些功能来创建游戏。 KBEngine文档包含了多个模块,如服务器端、客户端、数据库和编辑器等。在服务器端模块中,文档详细解释了KBEngine实体、属性、方法、事件等的概念和使用方法;在客户端模块中,文档介绍了客户端的基本架构、界面、网络通信以及与服务器的交互方式;在数据库模块中,文档说明了如何使用数据库存储和读取游戏数据;在编辑器模块中,文档指导用户如何使用编辑器创建游戏场景、实体等。 除此之外,KBEngine文档还提供了大量的示例代码和实例教程,以帮助开发者更好地理解和应用KBEngine引擎。这些示例代码涵盖了常见的游戏功能,如角色移动、技能释放、碰撞检测等,可以作为开发的参考和起点。 总的来说,KBEngine文档是使用KBEngine引擎进行游戏开发的必备参考资料。它提供了全面而详细的技术文档,以及示例代码和实例教程,为开发者提供了丰富的资源和指导,帮助他们更快地上手和掌握KBEngine引擎,开发出高质量的游戏作品。 ### 回答2: KBEngine 文档是 KBEngine 引擎的用户手册和参考文档,用于帮助开发者了解和使用 KBEngine 引擎来开发在线多人游戏。 KBEngine 是一种基于 Python 的服务器端游戏引擎,通过提供一套完整的游戏开发框架和工具,使开发者能够快速构建出高性能、稳定的在线多人游戏。 KBEngine 文档详细介绍了 KBEngine 引擎的各种功能和使用方法。文档内容包括引擎的安装和配置、实体的创建和管理、网络通信、数据库操作、资源加载、调试技巧等等。通过阅读文档,开发者能够了解引擎的整体架构和核心概念,并按照文档的指导进行开发。 KBEngine 文档以清晰的示例代码和详细的解释来说明每个功能的用法和使用注意事项。文档还提供了一些常见问题的解答和一些建议的最佳实践,帮助开发者从容应对在开发过程中可能遇到的各种问题和挑战。 KBEngine 文档的编写十分全面和细致,对于新手开发者来说,是入门 KBEngine 开发的重要资源。同时,对于有经验的开发者来说,文档也提供了一些高级和高效的开发技巧,帮助他们更好地利用 KBEngine 引擎进行游戏开发。 总之,KBEngine 文档是 KBEngine 引擎开发者不可或缺的参考指南,通过学习文档内容,开发者能够快速上手并精通 KBEngine 引擎,创建出高质量的在线多人游戏。 ### 回答3: Kbengine文档是一份详细而完整的文档,用于介绍和指导开发者使用Kbengine游戏引擎进行游戏开发。该文档提供了丰富的内容,包括引擎的基本原理、核心功能、常用 API 接口等信息。 Kbengine文档以易懂的方式解释了引擎的结构和工作原理,使开发者能够更好地理解引擎的内部机制。它详细介绍了引擎的组成部分(实体、属性、空间、触发器),以及它们之间的关系和交互方式,帮助开发者构建出更加稳定和高效的游戏系统。 此外,文档还提供了开发者所需的各种工具和资源,如插件、样例代码、开发工具集成等,方便开发者进行快速开发和调试。它还包含了大量的示例和教程,指导开发者从零开始构建一个完整的游戏项目,并在其中应用各种常用功能,如碰撞检测、动画控制、网络通信等。 Kbengine文档还重点介绍了引擎的网络部分,包括服务器端和客户端的网络通信架构、数据同步机制等。它详细讲解了如何在游戏项目中实现网络连接、消息的发送与接收、实体同步等功能,帮助开发者构建稳定、可扩展的多人游戏系统。 总的来说,Kbengine文档是一份非常有价值的开发文档,它全面而详细地介绍了引擎的各个方面,并提供了丰富的示例和教程,能够帮助开发者快速上手并高效地使用Kbengine进行游戏开发。无论是初学者还是有经验的开发者,都可以从中获得巨大的帮助和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值