• 批处理文件不要放在工具栏执行,这里有坑:工具栏运行批处理文件,当前路径(%cd%)不是批处理文件所在路径
  • 日志的输出(DEBUG_MSG 和 INFO_MSG)都被输出在({资产库}/logs/*.log),类似模式logger_cellapp_2019.1.1.log,logger_baseapp_2019.1.1.log
  • 在def文件中,方法块(CellMethods/BaseMethods/ClientMethods)中的方法
    块名只是表示了该方法所在的区域(cellapp/baseapp/客户端)
    • 在cellapp/baseapp中的方法(标签为:<CellMethods>和<BaseMethods>),添加标签<Exposed/>即可暴漏给客户端——客户端调用服务器上的,这些文件生成目录由gensdk.bat批处理文件设置
    • 在属性中设置标签<Flags>,可以设置属性作用范围,可以参考我的这篇随笔
  • def文件定义后生成了什么呢?他们是啥关系?
    eneities.xml中声明对象PlayerEntity

    则在def文件中必须使用名称PlayerEntity.def

    def中我们用来声明属性方法等
    运行批处理文件后,生成两个cs文件EntityCallPlayerEntityBasePlayerEntityBase
    EntityCallPlayerEntityBase:包含两个类,分别是暴漏给客户端的,base下的方法类和cell下的方法类
    PlayerEntityBase:这是一个抽象类,包含了上面的两个类的对象和def中定义的属性(如果在客户端有调用如falgs = ALL_CLIENTS后者其他可以让客户端调用的,则客户端才有该属性),也包含了一些其他的回调函数。

    • 属性,properities:如果客户端有的话,属性有值变化的虚回调,如:virtual onNameChanged(string ondValue),继承后重写
    • base方法,basemethods:
  • cell方法cellmethods:当cell中的一个方法使用标签<exposed>暴漏给客户端时,客户端调用该函数则可以调用服务端的相应Python函数
    def中定义函数 Broadcast 并且暴漏给客户端调用,参数类型为UNICODE

    然后在Cell文件夹中我们创建PlayerEntity.py脚本,必须继承KBEngine.Entity类,定义好客户端调用的python函数

    tips1:BroadCast有三个参数,我们在def中只给了一个,第一个是self,那这个callerID是KBE给所有暴漏给客户端的方法自动添加的吗?????
    tips2:最后一句我们调用了所有客户端的方法,这样我们就把content的内容发给了所有在线的客户端,这个函数也是自己写的,见下条。
    tips3:这篇随笔没有给出onServerBroadcast的内容,可以不写最后一句,只要cell的日志中有结果就行(DEBUG_MSG())。

    运行批处理生成后,在这个类中出现了我们可以使用的函数,调用这个函数就可以调用服务器中的相应python脚本

    那如何调用呢?
    首先我们需要写一个类,继承PlayerEntityBase,并且实现一些必须的抽象函数,这是一个具有完善功能的实体,名称为PlayerEntity,不能随意,咳咳!
    实现一下抽象函数,如果有的话,不上图了!

    调用方法如图所示:

    tips1:KBEngineApp是个单例,这也是我们要写一个类(如:public class logapp:KBEMain )继承KBEMain类的原因,就是挂在了
    tips2:获取单例后我们获取了当前玩家的entity对象:player(),并且安全强制转换成PlayerEntity后保存
    tips3:这时候我们再调用PlayerEntity下的EntityCall的对象来调用服务器函数Broadcast
      这样我们就可以在log中找到
    tips4:KBEngine中客户端的实体类型在文件{资产库}/res/server/kbengine.xml中定义

  • 在上面的操作过程中尝试了一下给最终的PlayerEntity换名,但是不行,必须同时跟换服务器上的名称,包括脚本、kbemain.xml,否则报错

KBE_那些事的更多相关文章

  1. 【腾讯Bugly干货分享】H5 视频直播那些事

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42ee6503dfcb22007ede8 Dev Club 是一个交流移动 ...

  2. CSharpGL(31)[译]OpenGL渲染管道那些事

    CSharpGL(31)[译]OpenGL渲染管道那些事 +BIT祝威+悄悄在此留下版了个权的信息说: 开始 自认为对OpenGL的掌握到了一个小瓶颈,现在回头细细地捋一遍OpenGL渲染管道应当是一 ...

  3. TODO:字节的那点事Go篇

    TODO:字节的那点事Go篇 (本文go version go1.7.3 darwin/amd64) 在Golang中string底层是由byte数组组成的. fmt.Println(len(&quo ...

  4. Microsoft Visual Studio 2013 — Project搭载IIS配置的那些事

    前段时间在改Bug打开一个project时,发生了一件奇怪的事,好好的一直不能加载solution底下的这个project,错误如下图所示:大致的意思就是这个project的web server被配置 ...

  5. OpenNLP:驾驭文本,分词那些事

    OpenNLP:驾驭文本,分词那些事 作者 白宁超 2016年3月27日19:55:03 摘要:字符串.字符数组以及其他文本表示的处理库构成大部分文本处理程序的基础.大部分语言都包括基本的处理库,这也 ...

  6. HTTPS那些事(一)HTTPS原理

    转载来自:http://www.guokr.com/post/114121/ 谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>,文中介绍了在使用HTTPS进行网络加密传 ...

  7. 做一个 App 前需要考虑的几件事

    做一个 App 前需要考虑的几件事  来源:limboy的博客   随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个 App 的成本也越来越低了.尽管如此,有些事情最好前期就做起来,避免当 ...

  8. Ctrl-A全选这点事(C#,WinForm)

    所有的文本框,不管单行多行都Ctrl-A全选就好了吧?是啊,很方便.Windows的软件基本都是这样.可为什么我们自己制作的WinForm就默认不是这样呢?谁知道呢,可能是WinForm饱受诟病,要改 ...

  9. 使用Bandwagon的VPS第一件事《FQ》

    说点闲话:昨天的长靴子到了,哎呀,今天那个高兴,踩着我的8厘米的过膝靴就出门上专业外语去了,扎了个麻花辫子,那个心情好哟,搞得我都不想继续学习linux平台上的C语言了,好想逛街----秀秀我的鞋子, ...

随机推荐

  1. SpringBoot项目以服务器方式启动

    SpringBoot项目,如果未引入Web相关依赖,不会以服务器方式进行启动,会以应用的方式启动并结束 <dependency> <groupId>org.springfram ...

  2. bzoj 3612: [Heoi2014]平衡【整数划分dp】

    其实就是-n~n中求选k个不同的数,和为0的方案数 学到了新姿势叫整数划分,具体实现是dp 详见:https://blog.csdn.net/Vmurder/article/details/42551 ...

  3. bzoj 3329: Xorequ【数位dp+矩阵乘法】

    注意第一问不取模!!! 因为a+b=a|b+a&b,a^b=a|b-a&b,所以a+b=a^b+2(a&b) x^3x==2x可根据异或的性质以转成x^2x==3x,根据上面的 ...

  4. Luogu P2458 [SDOI2006]保安站岗【树形Dp】

    题目描述 五一来临,某地下超市为了便于疏通和指挥密集的人员和车辆,以免造成超市内的混乱和拥挤,准备临时从外单位调用部分保安来维持交通秩序. 已知整个地下超市的所有通道呈一棵树的形状:某些通道之间可以互 ...

  5. JS开发备忘笔记-- Javascript中document.execCommand()的用法

    document.execCommand()方法处理Html数据时常用语法格式如下:document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指令 ...

  6. 【BZOJ3514】Codechef MARCH14 GERALD07加强版(LCT_主席树)

    题目: BZOJ3514 分析: 看到这题真的是一脸懵逼无从下手,只好膜题解.看到「森林的联通块数 = 点数 - 边数」这一句话就立刻什么都会了 QAQ . 这题最重要的就是意识到上面那个式子(正确性 ...

  7. 洛谷 P2312 解方程

    题目 首先,可以确定的是这题的做法就是暴力枚举x,然后去计算方程左边与右边是否相等. 但是noip的D2T3怎么会真的这么简单呢?卡常卡的真是熟练 你需要一些优化方法. 首先可以用秦九韶公式优化一下方 ...

  8. C# winform与Javascript的相互调用[转]

    原文链接<html> <head> <meta http-equiv="Content-Language" content="zh-cn&q ...

  9. 转-MAC 下安装PHONEGAP开发环境

    来自:http://jinzhe.net/post/8.html 什么是Phonegap呢?Phonegap是一个利用HTML5去开发App的框架.可以为安卓.iOS.WP.黑莓.火狐等移动操作系统. ...

  10. sdut2784&cf 126b Good Luck!(next数组)

    链接 next数组的巧妙应用  学弟出给学弟的学弟的题.. 求最长的 是前缀也是后缀同时也是中缀的串  next的数组求的就是最长的前后缀 但是却不能求得中缀 所以这里 就把尾部去掉之后再求 这样就可 ...