# 工具

# AddRepeatedTimer

服务端客户端

# 服务端接口

method in mod.server.component.gameCompServer.GameComponentServer

  • 描述

    添加服务端触发的定时器,重复执行

  • 参数

    参数名
    数据类型
    说明
    delay float 延迟时间,单位秒
    func function 定时器触发函数
    *args any 变长参数,可以不设置
    **kwargs any 字典变长参数,可以不设置
  • 返回值

    数据类型
    说明
    CallLater 返回触发的定时器实例,传入func不是函数类型时返回None
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
comp.AddRepeatedTimer(3.0,func,args,kwargs)

# 客户端接口

method in mod.client.component.gameCompClient.GameComponentClient

  • 描述

    添加客户端触发的定时器,重复执行

  • 参数

    参数名
    数据类型
    说明
    delay float 延迟时间,单位秒
    func function 定时器触发函数
    *args any 变长参数,可以不设置
    **kwargs any 字典变长参数,可以不设置
  • 返回值

    数据类型
    说明
    CallLater 返回触发的定时器实例,传入func不是函数类型时返回None
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
comp.AddRepeatedTimer(3.0,func,args,kwargs)

# AddTimer

服务端客户端

# 服务端接口

method in mod.server.component.gameCompServer.GameComponentServer

  • 描述

    添加服务端触发的定时器,非重复

  • 参数

    参数名
    数据类型
    说明
    delay float 延迟时间,单位秒
    func function 定时器触发函数
    *args any 变长参数,可以不设置
    **kwargs any 字典变长参数,可以不设置
  • 返回值

    数据类型
    说明
    CallLater 返回单次触发的定时器实例,传入func不是函数类型时返回None
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
comp.AddTimer(3.0,func,args,kwargs)

# 客户端接口

method in mod.client.component.gameCompClient.GameComponentClient

  • 描述

    添加客户端触发的定时器,非重复

  • 参数

    参数名
    数据类型
    说明
    delay float 延迟时间,单位秒
    func function 定时器触发函数
    *args any 变长参数,可以不设置
    **kwargs any 字典变长参数,可以不设置
  • 返回值

    数据类型
    说明
    CallLater 返回单次触发的定时器实例,传入func不是函数类型时返回None
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
comp.AddTimer(3.0,func,args,kwargs)

# CancelTimer

服务端客户端

# 服务端接口

method in mod.server.component.gameCompServer.GameComponentServer

  • 描述

    取消定时器

  • 参数

    参数名
    数据类型
    说明
    timer CallLater AddTimer和AddRepeatedTimer时返回的定时器实例
  • 返回值

  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
comp.CancelTimer(timer)

# 客户端接口

method in mod.client.component.gameCompClient.GameComponentClient

  • 描述

    取消定时器

  • 参数

    参数名
    数据类型
    说明
    timer CallLater AddTimer和AddRepeatedTimer时返回的定时器实例
  • 返回值

  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
comp.CancelTimer(timer)

# CheckNameValid

服务端客户端

# 服务端接口

method in mod.server.component.gameCompServer.GameComponentServer

  • 描述

    检查昵称是否合法,即不包含敏感词

  • 参数

    参数名
    数据类型
    说明
    name str 昵称
  • 返回值

    数据类型
    说明
    bool True:昵称合法 False:昵称非法
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
isValid = comp.CheckNameValid("史蒂夫")

# 客户端接口

method in mod.client.component.gameCompClient.GameComponentClient

  • 描述

    检查昵称是否合法,即不包含敏感词

  • 参数

    参数名
    数据类型
    说明
    name str 昵称
  • 返回值

    数据类型
    说明
    bool True:昵称合法 False:昵称非法
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
isValid = comp.CheckNameValid("史蒂夫")

# CheckWordsValid

服务端客户端

# 服务端接口

method in mod.server.component.gameCompServer.GameComponentServer

  • 描述

    检查语句是否合法,即不包含敏感词

  • 参数

    参数名
    数据类型
    说明
    words str 语句
  • 返回值

    数据类型
    说明
    bool True:语句合法
    False:语句非法
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
isValid = comp.CheckWordsValid("creeper? Aww man")

# 客户端接口

method in mod.client.component.gameCompClient.GameComponentClient

  • 描述

    检查语句是否合法,即不包含敏感词

  • 参数

    参数名
    数据类型
    说明
    words str 语句
  • 返回值

    数据类型
    说明
    bool True:语句合法
    False:语句非法
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
isValid = comp.CheckWordsValid("creeper? Aww man")

# GetChinese

服务端客户端

# 服务端接口

method in mod.server.component.gameCompServer.GameComponentServer

  • 描述

    获取langStr对应的中文,可参考PC开发包中\handheld\localization\handheld\data\resource_packs\vanilla\texts\zh_CN.lang

  • 参数

    参数名
    数据类型
    说明
    langStr str 传入的langStr
  • 返回值

    数据类型
    说明
    str langStr对应的中文,若找不到对应的中文,则会返回langStr本身,字符编码为Unicode
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(levelId)
# 获取"entity.wolf.name"对应的中文("狼")
Chinese = comp.GetChinese("entity.wolf.name")

# 客户端接口

method in mod.client.component.gameCompClient.GameComponentClient

  • 描述

    获取langStr对应的中文,可参考PC开发包中\handheld\localization\handheld\data\resource_packs\vanilla\texts\zh_CN.lang

  • 参数

    参数名
    数据类型
    说明
    langStr str 传入的langStr
  • 返回值

    数据类型
    说明
    str langStr对应的中文,若找不到对应的中文,则会返回langStr本身,字符编码为Unicode
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
# 获取"entity.wolf.name"对应的中文("狼")
Chinese = comp.GetChinese("entity.wolf.name")

# GetFps

客户端

method in mod.client.component.gameCompClient.GameComponentClient

  • 描述

    获取fps

  • 参数

  • 返回值

    数据类型
    说明
    float 当前fps值
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
fps = comp.GetFps()

# GetMinecraftEnum

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    用于获取枚举值文档中的枚举值

  • 参数

  • 返回值

    数据类型
    说明
    minecraftEnum 枚举集合类
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreatePlayer(playerId)
# 使用枚举值作为其他接口的参数
comp.SetPlayerGameType(serverApi.GetMinecraftEnum().GameType.Survival)

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    用于获取枚举值文档中的枚举值

  • 参数

  • 返回值

    数据类型
    说明
    minecraftEnum 枚举集合类
  • 示例

import mod.client.extraClientApi as clientApi
# 使用枚举值与事件参数比较
class BattleUI(ScreenNode):
    def OnButtonTouch(self, args):
        touchEventEnum = clientApi.GetMinecraftEnum().TouchEvent
        if touchEvent == touchEventEnum.TouchUp:
            pass

    def Create(self):
        self.AddTouchEventHandler("/panel/test_btn", self.OnButtonTouch, {"isSwallow":True})

# GetModConfigJson

客户端

method in mod.client.extraClientApi

  • 描述

    以字典形式返回指定路径的json格式配置文件的内容,文件必须放置在资源包的/modconfigs目录下

  • 参数

    参数名
    数据类型
    说明
    path str 指定路径的json文件
  • 返回值

    数据类型
    说明
    dict 配置内容的字典,当读取文件失败时返回空字典
  • 示例

import mod.client.extraClientApi as clientApi
data = clientApi.GetModConfigJson("modconfigs/monster.json")

# GetServerTickTime

服务端

method in mod.server.extraServerApi

  • 描述

    获取服务端引擎上一帧的帧消耗时间

  • 参数

  • 返回值

    数据类型
    说明
    float 时间,单位为毫秒
  • 备注

    • 服务端引擎的帧率为20帧,而服务端脚本的帧率为30帧,因此当脚本每帧获取引擎帧消耗时间时,有可能连续获取到的是同一个引擎帧的时间
  • 示例

import mod.server.extraServerApi as serverApi
print serverApi.GetServerTickTime()

# ImportModule

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    使用字符串路径导入模块,作用与importlib.import_module类似,但只能导入当前加载的mod中的模块

  • 参数

    参数名
    数据类型
    说明
    path str 模块的绝对路径
  • 返回值

    数据类型
    说明
    any 模块对象,当前加载的所有mod中不存在该模块则返回None
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.ImportModule("tutorialScripts.tutorialServerSystem")

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    使用字符串路径导入模块,作用与importlib.import_module类似,但只能导入当前加载的mod中的模块

  • 参数

    参数名
    数据类型
    说明
    path str 模块的绝对路径
  • 返回值

    数据类型
    说明
    any 模块对象,当前加载的所有mod中不存在该模块则返回None
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.ImportModule("tutorialScripts.tutorialClientSystem")

# StartCoroutine

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    开启服务端协程,实现函数分段式执行,可用于缓解复杂逻辑计算导致游戏卡顿问题

  • 参数

    参数名
    数据类型
    说明
    iterOrFunc generator或callable([],generator) 传入带有yield的函数或传入生成器。如传入生成器则将从生成器中断位置开始执行,如传入函数将从头开始执行
    callback function 协程执行完后的回调函数,默认为None
  • 返回值

    数据类型
    说明
    generator 函数生成器。如果传入的iterOrFunc不是带有yield的函数或者生成器时返回None
  • 示例

#通过生成器执行协程
import server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateGame(serverApi.GetLevelId())

def callback():
    print "callback"

def coroutineTest():
    for i in xrange(1000):
        print i
        yield

generator = serverApi.StartCoroutine(coroutineTest, callback)
#执行1秒后停止协程
comp.AddTimer(1.0, serverApi.StopCoroutine, generator)
#5秒后传入StartCoroutine返回的生成器,则函数将从停止位置继续执行
comp.AddTimer(5.0, serverApi.StartCoroutine, generator, callback)

#----------------------------------------------------------------

#通过函数执行协程
import server.extraServerApi as serverApi
def callback():
    print "callback"

def coroutineTest():
    for i in xrange(1000):
        print i
        yield
#传入函数,函数将从头开始执行
serverApi.StartCoroutine(coroutineTest, callback)

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    开启客户端协程,实现函数分段式执行,可用于缓解复杂逻辑计算导致游戏卡顿问题

  • 参数

    参数名
    数据类型
    说明
    iterOrFunc generator或callable([],generator) 传入带有yield的函数或传入生成器。如传入生成器则将从生成器中断位置开始执行,如传入函数将从头开始执行
    callback function 协程执行完后的回调函数,默认为None
  • 返回值

    数据类型
    说明
    generator 函数生成器。如果传入的iterOrFunc不是带有yield的函数或者生成器时返回None
  • 示例

#通过生成器执行协程
import client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateGame(clientApi.GetLevelId())

def callback():
    print "callback"

def coroutineTest():
    for i in xrange(1000):
        print i
        yield

generator = clientApi.StartCoroutine(coroutineTest, callback)
#执行1秒后停止协程
comp.AddTimer(1.0, clientApi.StopCoroutine, generator)
#执行5秒后传入StartCoroutine返回的生成器,则函数将从停止位置继续执行
comp.AddTimer(5.0, clientApi.StartCoroutine, generator, callback)

#----------------------------------------------------------------

#通过函数执行协程
import client.extraClientApi as clientApi
def callback():
    print "callback"

def coroutineTest():
    for i in xrange(1000):
        print i
        yield
#传入函数,函数将从头开始执行
clientApi.StartCoroutine(coroutineTest, callback)

# StopCoroutine

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    停止协程

  • 参数

    参数名
    数据类型
    说明
    iter generator 需要停止的生成器对象,StartCoroutine的返回值
  • 返回值

    数据类型
    说明
    bool 是否成功
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.StopCoroutine(generator)

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    停止客户端协程

  • 参数

    参数名
    数据类型
    说明
    iter generator 需要停止的生成器对象,StartCoroutine的返回值
  • 返回值

    数据类型
    说明
    bool 是否成功
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.StopCoroutine(generator)

AddRepeatedTimer

服务端接口

客户端接口

AddTimer

服务端接口

客户端接口

CancelTimer

服务端接口

客户端接口

CheckNameValid

服务端接口

客户端接口

CheckWordsValid

服务端接口

客户端接口

GetChinese

服务端接口

客户端接口

GetFps

GetMinecraftEnum

服务端接口

客户端接口

GetModConfigJson

GetServerTickTime

ImportModule

服务端接口

客户端接口

StartCoroutine

服务端接口

客户端接口

StopCoroutine

服务端接口

客户端接口