Kbengine 自定义数据类型

entity_defs文件夹下的types.xml文件添加自定义类型

<root>
    <!--数据类型的名字 记得要加上FIXED_DICT-->
    <RoleInfo>FIXED_DICT
        <Properties>
            <!--角色名字-->
            <RoleName>
                <!--名字为字符串 用UNICODE -->
                <Type> UNICODE </Type>
            </RoleName>
            <!--角色血量-->
            <RoleHP>
                <!--血量为整数 用UINT32-->
                <Type> UINT32 </Type>
            </RoleHP>
        </Properties>
    </RoleInfo>
</root>

定义好就可以在*.def文件里面使用了

列:

<root>
    <ClientMethods>
        <!--定义一个客户端方法-->
        <onGetRoleInfo>
            <!--使用刚刚定义的数据类型-->
            <Arg>RoleInfo</Arg>
        </onGetRoleInfo>
	</ClientMethods>

	<BaseMethods>
        <!--定义一个服务端方法-->
		<GetRoleInfo>
            <!--导出方法否则客户端无法调用此方法-->
            <Exposed/>
        </GetRoleInfo>
	</BaseMethods>

	<CellMethods>

	</CellMethods>
</root>

服务器端

def GetRoleInfo(self):
    roleInfo={
        "RoleName":"Admin",
        "RoleHP":100
    }
    #调用客户端的onGetRoleInfo 并把数据传过去
    self.client.onGetRoleInfo(roleInfo)

客户端:

//在你定义的def名+Base实现(比如AccountBase)
//继承AccountBase 并实现里面的方法
void __init__(){
    //注册GetRoleInfo方法
    //调用方法时用KBENGINE_EVENT_FIRE("GetRoleInfo",UKBEventData*)
    KBENGINE_REGISTER_EVENT_OVERRIDE_FUNC("GetRoleInfo","GetRoleInfo",[this](const UKBEventData* EventData)
	{
		pBaseEntityCall->GetRoleInfo();
	});
}
//当你执行KBENGINE_EVENT_FIRE("GetRoleInfo",UKBEventData*)时服务器会调用到此方法
void onGetRoleInfo(const RoleInfo arg1){
    //在此实现你的需求
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最复杂的简单

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值