Skip to content

KBEngine模块

KBEngine模块提供了逻辑脚本层访问实体的部分, 以及当前space的数据等等。

成员函数

def getCustomCfg( key, default=None ):

def login( username, password ):

def createAccount( username, password ):

def reloginBaseapp():

def player( ):

def resetPassword(username):

def bindAccountEmail( emailaddress ):

def newPassword( oldpassword, newpassword ):

def findEntity( entityID ):

def getSpaceData( key ):

属性

component 只读 string

entities Entities

entity_uuid uint64

entity_id int32

spaceID int32

成员函数文档


def getCustomCfg( key, default=None ):

启用版本: 2.8.2

功能说明:

从服务端配置文件的 <customCfg> 节点中读取一个自定义配置项。该接口只读,脚本层不能通过它修改配置值。

配置项使用统一的 <param> 节点描述:name 是脚本读取时使用的键,type 决定返回给Python脚本的对象类型,节点文本是配置值。desc 仅作为配置文件中的说明文字,运行时不会读取到内存中。

支持的 typeboolintfloatstringdictlist

当配置项存在时,返回值类型只由XML中的 type 决定,不通过 default 参数推断。当配置项不存在时,如果传入了 default 则返回 default;如果未传入 default 则返回 None

配置示例:

xml
<customCfg>
    <param name="battle.maxPlayers" type="int" desc="max players per battle">100</param>
    <param name="battle.enableRank" type="bool" desc="enable battle rank">true</param>
    <param name="battle.speedScale" type="float" desc="battle speed scale">1.0</param>
    <param name="battle.welcome" type="string" desc="welcome text">hello</param>
    <param name="battle.dropRates" type="dict" desc="drop rate config">{"gold": 1.2, "item": 0.05}</param>
    <param name="battle.spawnPoints" type="list" desc="spawn point ids">[1, 2, 3]</param>
</customCfg>

例子:

py
import KBEngine

maxPlayers = KBEngine.getCustomCfg("battle.maxPlayers", 100)
enableRank = KBEngine.getCustomCfg("battle.enableRank", False)
dropRates = KBEngine.getCustomCfg("battle.dropRates", {})
spawnPoints = KBEngine.getCustomCfg("battle.spawnPoints", [])

# 不存在且未传default时返回None,不会抛出异常。
missingValue = KBEngine.getCustomCfg("battle.null")

参数:

key: string,自定义配置项名称,对应 <param name="...">

default: 可选参数,当配置项不存在时返回该值;如果未提供则返回 None

返回:

配置存在时返回按 type 转换后的Python对象;配置不存在时返回 defaultNone


def login( username, password ):

功能说明:

登录账号到KBEngine服务端。
注意:如果插件与UI层使用事件交互模式,在UI层不要直接调用,请触发一个"login"事件给插件,事件附带数据username和password。

参数:

username: string,用户名。

password: string,密码。


def createAccount( username, password ):

功能说明:

请求向KBEngine服务端创建一个登录账号。
注意:如果插件与UI层使用事件交互模式,在UI层不要直接调用,请触发一个"createAccount"事件给插件,事件附带数据username和password。

参数:

username: string,用户名。

password: string,密码。


def reloginBaseapp( ):

功能说明:

请求重登录到KBEngine服务端(通常在掉线之后希望更及时的连接到服务端并继续控制服务端角色时使用)。
注意:如果插件与UI层使用事件交互模式,在UI层不要直接调用,请触发一个"reloginBaseapp"事件给插件,事件附带数据为空。


def player( ):

功能说明:

获得当前客户端所控制的实体。

返回:

Entity,返回控制的实体, 如果不存在(如:未能连接到服务端)则返回空。


def resetPassword( username ):

功能说明:

请求loginapp重置账号的密码, 服务端将会向该账号绑定的邮箱发送一封重置密码邮件(通常是忘记密码功能使用)。

参数:

username: string,用户名。


def bindAccountEmail( emailaddress ):

功能说明:

请求baseapp绑定账号的email地址。

参数:

emailaddress: string,邮箱地址。


def newPassword( oldpassword, newpassword ):

功能说明:

请求设置账号的新密码。

参数:

oldpassword: string,旧密码。

newpassword: string,新密码。


def findEntity( entityID ):

功能说明:

通过实体的ID查找实体的实例对象。

参数:

entityID: int32,实体ID。

返回:

Entity,存在返回实体实例,不存在返回空。


def getSpaceData( key ):

功能说明:

获取指定key的space数据。
space数据由用户在服务端通过setSpaceData设置。

参数:

key: string,一个字符串关键字。

返回:

string,指定key的字符串数据。

属性文档


component

说明:

这是正运行在当前脚本环境的组件。(至今为止)可能值有'cellapp', 'baseapp', 'client', 'dbmgr', 'bots' 和 'editor'。


entities

说明:

entities是一个字典对象,包含当前进程上所有的实体。

类型:

Entities


entity_uuid

说明:

实体的uuid,改ID与实体本次登录绑定。当使用重登陆功能时服务端会与此ID进行比对,判断合法性。


entity_id

说明:

当前客户端所控制的实体的ID。


spaceID

说明:

当前客户端控制的实体所在的空间ID(也可以理解为所在对应的场景、房间、副本)。

文档内容由 Comblock® 提供