當前位置:
首頁 >
kbengine定义实体
發布時間:2024/6/18
49
豆豆
生活随笔
收集整理的這篇文章主要介紹了
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)轉載于:https://www.cnblogs.com/txbabys/p/4137037.html
總結
以上是生活随笔為你收集整理的kbengine定义实体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU-5123-who is the
- 下一篇: sql深入理解