kbengine定义实体
定义实体
什么时候需要定义实体:
需要进行数据存储。
能够方便的远程访问。
需要引擎管理和监控, 例如: AOI、Trap、等等。
当灾难发生后服务端可以自动进行灾难的恢复。
什么时候需要定义实体的属性:
需要进行数据存储。
实体被迁移后数据仍然有效(仅cellapp会迁移实体,比如跳转场景)。
当灾难发生后服务端可以自动进行灾难的恢复。
什么时候需要定义实体的方法:
能够方便的远程访问。
您需要执行以下步骤:
- 
注册实体
目录地址 :
demo/scripts/entities.xml例子:
<root> <Account/> <Avatar/> <Spaces/> <Space/> <Monster/> <NPC/> <Gate/> </root> - 
在
demo/scripts/entity_defs目录下创建一个定义文件例子: Account.def
 - 
你可能需要定义一些属性和方法
- 
在
demo/scripts/目录下有三个子目录(base、cell、client),你可以根据需要添加Account.py。 - 
不是每个实体都存在(client, base, cell)这三个部分, 你可以根据需要做出一些选择。
 
 - 
 
定义文件的格式
<root>
	<Properties>
		// 属性名称
		<accountName>
			// 属性类型
			<Type>			UNICODE				</Type>
			
			// (可选)
			// 属性的自定义协议ID,如果客户端不使用kbe配套的SDK来开发,客户端需要开发跟kbe对接的协议,
			// 开发者可以定义属性的ID便于识别,c++协议层使用一个uint16来描述,如果不定义ID则引擎会使用
			// 自身规则所生成的协议ID, 这个ID必须所有def文件中唯一
			<Utype>			1000				</Utype>
			// 属性的作用域 (参考下方:属性作用域章节)
			<Flags>			BASE				</Flags>
			
			// (可选)
			// 是否存储到数据库 
			<Persistent>		true				</Persistent>
			
			// (可选)
			// 存储到数据库中的最大长度 
			<DatabaseLength> 	100				</DatabaseLength>
			
			// (可选, 不清楚最好不要设置)
			// 默认值 
			<Default>		kbengine			</Default>
			
			// (可选)
			// 数据库索引, 支持UNIQUE与INDEX
			<Index>			UNIQUE				</Index>
		</accountName>
		
		...
		...
	</Properties>
	<ClientMethods>
		// 客户端暴露的远程方法名称
		<onReqAvatarList>
			// 远程方法的参数
			<Arg>			AVATAR_INFOS_LIST		</Arg>
			<Utype>			1001				</Utype>
		</onReqAvatarList>
		...
		...
	</ClientMethods>
	<BaseMethods>
		// Baseapp暴露的远程方法名称
		<reqAvatarList>
			// cell暴露方法必须存在这个标记
			<Exposed/> 
			<Utype>			1002				</Utype>
		</reqAvatarList>
		
		...
		...
	</BaseMethods>
	<CellMethods>
		// Cellapp暴露的远程方法名称
		<hello>
			<Utype>			1003				</Utype>
		</hello>
	</CellMethods>
</root>
例子: 在客户端中调用base方法获得角色列表(Account.py):
 self.base.reqAvatarList()
属性作用域
[类型]			[client]		[base]			[cell]
BASE			-			*			-
BASE_AND_CLIENT		*			*			-
CELL_PRIVATE		-			-			*(cell)
CELL_PUBLIC		-			-			*(cells)
CELL_PUBLIC_AND_OWN	*(client)		-			*(cells)
ALL_CLIENTS		*(clients)		-			*(cells)
OWN_CLIENT		*(client)		-			*(cell)
OTHER_CLIENTS		*(other clients)	-			*(cells)
                    
                
                
            
        
浙公网安备 33010602011771号