# 调试

# GetEnableReconnectNetgame

客户端

method in mod.client.extraClientApi

  • 描述

    获取是否允许断线重连

  • 参数

  • 返回值

    数据类型
    说明
    bool 是否允许断线重连
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.GetEnableReconnectNetgame()

# GetKeepResourceWhenTransfer

客户端

method in mod.client.extraClientApi

  • 描述

    获取快速切服设置

  • 参数

  • 返回值

    数据类型
    说明
    bool 是否设置快速切服
  • 示例

# 先打开快速切服开关
import mod.client.extraClientApi as clientApi
print clientApi.GetKeepResourceWhenTransfer()

# GetMcpModLogCanPostDump

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    获取是否可以打印错误信息到McpModLog日志。

  • 参数

  • 返回值

    数据类型
    说明
    bool canPost 是否可以打印
  • 备注

    • McpModLog日志包括开发者组件的错误信息,不包括引擎错误信息,存在手机端本地。每个McpModLog日志只针对调用该接口的Mcp生效,最多可以保留7天的日志,可在开发者后台查看,打印接口默认关闭。
    • 此接口在联机大厅等服务器环境下无效,服务端接口只对单机和本地联机房主生效。
    • Mcp指手机端组件中,行为包路径下,每个包含modMain.py脚本的文件夹所构成的代码模块,一个组件可以有多个Mcp模块,接口调用时会自动获取Mcp信息,不需要传入。
    • 请引导玩家在反馈模组问题时勾选“同步上传7天内日志”后,在开发者平台下载并查看。
  • 示例

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

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    获取是否可以打印错误信息到McpModLog日志。

  • 参数

  • 返回值

    数据类型
    说明
    bool canPost 是否可以打印
  • 备注

    • McpModLog日志包括开发者组件的错误信息,不包括引擎错误信息,存在手机端本地。每个McpModLog日志只针对调用该接口的Mcp生效,最多可以保留7天的日志,可在开发者后台查看,打印接口默认关闭。
    • Mcp指手机端组件中,行为包路径下,每个包含modMain.py脚本的文件夹所构成的代码模块,一个组件可以有多个Mcp模块,接口调用时会自动获取Mcp信息,不需要传入。
    • 请引导玩家在反馈模组问题时勾选“同步上传7天内日志”后,在开发者平台下载并查看。
  • 示例

import mod.client.extraClientApi as clientApi
print(clientApi.GetMcpModLogCanPostDump())

# GetResourceFastload

客户端

method in mod.client.extraClientApi

  • 描述

    获取资源快速加载设置

  • 参数

  • 返回值

    数据类型
    说明
    bool 是否开启资源快速加载
  • 示例

import mod.client.extraClientApi as clientApi
print clientApi.GetResourceFastload()

# PostMcpModDump

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    主动打印信息到McpModLog日志,需要先调用 SetMcpModLogCanPostDump 接口进行设置,才能生效。

  • 参数

    参数名
    数据类型
    说明
    msg str 错误信息
    *args any 此参数将作为可变参数传入 logger.error
    **kwargs dict 此参数将作为关键字参数传入 logger.error
  • 返回值

  • 备注

    • McpModLog日志包括开发者组件的错误信息,不包括引擎错误信息,存在手机端本地。每个McpModLog日志只针对调用该接口的Mcp生效,最多可以保留7天的日志,可在开发者后台查看,打印接口默认关闭。
    • 此接口在联机大厅等服务器环境下无效,服务端接口只对单机和本地联机房主生效。
    • Mcp指手机端组件中,行为包路径下,每个包含modMain.py脚本的文件夹所构成的代码模块,一个组件可以有多个Mcp模块,接口调用时会自动获取Mcp信息,不需要传入。
    • 请引导玩家在反馈模组问题时勾选“同步上传7天内日志”后,在开发者平台下载并查看。
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.PostMcpModDump('Test Msg')

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    主动打印信息到McpModLog日志,需要先调用 SetMcpModLogCanPostDump 接口进行设置,才能生效。

  • 参数

    参数名
    数据类型
    说明
    msg str 错误信息
    *args any 此参数将作为可变参数传入 logger.error
    **kwargs dict 此参数将作为关键字参数传入 logger.error
  • 返回值

  • 备注

    • McpModLog日志包括开发者组件的错误信息,不包括引擎错误信息,存在手机端本地。每个McpModLog日志只针对调用该接口的Mcp生效,最多可以保留7天的日志,可在开发者后台查看,打印接口默认关闭。
    • Mcp指手机端组件中,行为包路径下,每个包含modMain.py脚本的文件夹所构成的代码模块,一个组件可以有多个Mcp模块,接口调用时会自动获取Mcp信息,不需要传入。
    • 请引导玩家在反馈模组问题时勾选“同步上传7天内日志”后,在开发者平台下载并查看。
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.PostMcpModDump('Test Msg')

# ReloadAllMaterials

客户端

method in mod.client.extraClientApi

  • 描述

    重新加载所有材质文件

  • 参数

  • 返回值

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

import mod.client.extraClientApi as clientApi
clientApi.ReloadAllMaterials()

# ReloadAllShaders

客户端

method in mod.client.extraClientApi

  • 描述

    重新加载所有Shader文件

  • 参数

  • 返回值

    数据类型
    说明
    bool 是否成功
  • 备注

    • 若修改到材质,建议使用ReloadAllMaterials方法。
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.ReloadAllShaders()

# ReloadOneShader

客户端

method in mod.client.extraClientApi

  • 描述

    重新加载某个Shader文件

  • 参数

    参数名
    数据类型
    说明
    shaderName str shader名称
  • 返回值

    数据类型
    说明
    bool 是否成功
  • 备注

    • 若同时修改了多个Shader,建议使用ReloadAllShaders方法。
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.ReloadOneShader("entity.fragment")

# SetEnableReconnectNetgame

客户端

method in mod.client.extraClientApi

  • 描述

    设置是否允许断线重连

  • 参数

    参数名
    数据类型
    说明
    keep bool 是否允许断线重连
  • 返回值

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

import mod.client.extraClientApi as clientApi
clientApi.SetEnableReconnectNetgame(True)

# SetKeepResourceWhenTransfer

客户端

method in mod.client.extraClientApi

  • 描述

    设置快速切服

  • 参数

    参数名
    数据类型
    说明
    keep bool 是否在切服时保留资源,True为保留资源,False为不保留资源
  • 返回值

    数据类型
    说明
    bool 是否成功
  • 备注

    • 快速切服通过在切服时保留资源实现,可以缩短切服等待时间。
    • 切服前后的两个服,需要保证资源完全一样。
    • 快速切服设置在退出游戏之前一直有效,如果要切到其他类型的服务器,需要在切服前调用clientApi.SetKeepResourceWhenTransfer(False)
  • 示例

# 先打开快速切服开关
import mod.client.extraClientApi as clientApi
clientApi.SetKeepResourceWhenTransfer(True)

# 然后切服
import lobbyGame.netgameApi as lobbyGameApi
lobbyGameApi.TransferToOtherServer('123', 'game')

# SetMcpModLogCanPostDump

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    设置是否可以打印错误信息到McpModLog日志。

  • 参数

    参数名
    数据类型
    说明
    canPost bool 是否可以打印
  • 返回值

  • 备注

    • McpModLog日志包括开发者组件的错误信息,不包括引擎错误信息,存在手机端本地。每个McpModLog日志只针对调用该接口的Mcp生效,最多可以保留7天的日志,可在开发者后台查看,打印接口默认关闭。
    • 此接口在联机大厅等服务器环境下无效,服务端接口只对单机和本地联机房主生效。
    • Mcp指手机端组件中,行为包路径下,每个包含modMain.py脚本的文件夹所构成的代码模块,一个组件可以有多个Mcp模块,接口调用时会自动获取Mcp信息,不需要传入。
    • 请引导玩家在反馈模组问题时勾选“同步上传7天内日志”后,在开发者平台下载并查看。
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.SetMcpModLogCanPostDump(True)

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    设置是否可以打印错误信息到McpModLog日志。

  • 参数

    参数名
    数据类型
    说明
    canPost bool 是否可以打印
  • 返回值

  • 备注

    • McpModLog日志包括开发者组件的错误信息,不包括引擎错误信息,存在手机端本地。每个McpModLog日志只针对调用该接口的Mcp生效,最多可以保留7天的日志,可在开发者后台查看,打印接口默认关闭。
    • Mcp指手机端组件中,行为包路径下,每个包含modMain.py脚本的文件夹所构成的代码模块,一个组件可以有多个Mcp模块,接口调用时会自动获取Mcp信息,不需要传入。
    • 请引导玩家在反馈模组问题时勾选“同步上传7天内日志”后,在开发者平台下载并查看。
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.SetMcpModLogCanPostDump(True)

# SetResourceFastload

客户端

method in mod.client.extraClientApi

  • 描述

    设置资源快速加载

  • 参数

    参数名
    数据类型
    说明
    fastload bool 是否在进入游戏时快速加载资源,True为快速加载资源,False为不快速加载资源
  • 返回值

    数据类型
    说明
    bool 是否成功
  • 备注

    • 开启资源快速加载,可以缩短切服等待时间。
    • 开启资源快速加载,切服速度比设置SetKeepResourceWhenTransfer慢,但不要求切服前后两个服资源完全一致。
    • 物品和方块的自定义贴图需要定义在item_texture.json和terrain_texture.json中,才能开启资源快速加载
    • 设置资源快速加载在退出游戏之前一直有效,退出游戏后自动恢复为False
  • 示例

# 先设置资源快速加载
import mod.client.extraClientApi as clientApi
clientApi.SetResourceFastload(True)

# 然后切服
import lobbyGame.netgameApi as lobbyGameApi
lobbyGameApi.TransferToOtherServer('123', 'game')

# StartMemProfile

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    开始启动服务端脚本内存分析,启动后调用StopMemProfile即可在路径fileName生成函数内存火焰图,此接口只支持PC端。生成的火焰图可以用浏览器打开,推荐chrome浏览器。

  • 参数

  • 返回值

    数据类型
    说明
    bool 执行结果
  • 备注

    • 由于分析时并不区分服务端和客户端,在进行分析时,只需要其中一端startmemprofile和stopmemprofile即可,无需双端同时进行。
    • 将鼠标放在一个函数块上时,下方会显示当前函数对应的详细信息,具体含义可见获取性能分析火焰图
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.StartMemProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopMemProfile
serverApi.StopMemProfile(fileName)

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    开始启动客户端脚本内存分析,启动后调用StopMemProfile即可在路径fileName生成函数内存火焰图,此接口只支持PC端。生成的火焰图可以用浏览器打开,推荐chrome浏览器。

  • 参数

  • 返回值

    数据类型
    说明
    bool 执行结果
  • 备注

    • 由于分析时并不区分服务端和客户端,在进行分析时,只需要其中一端startmemprofile和stopmemprofile即可,无需双端同时进行。
    • 将鼠标放在一个函数块上时,下方会显示当前函数对应的详细信息,具体含义可见获取性能分析火焰图
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.StartMemProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopMemProfile
clientApi.StopMemProfile(fileName)

# StartMultiProfile

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    开始启动服务端与客户端双端脚本性能分析,启动后调用StopMultiProfile即可在路径fileName生成函数性能火焰图。双端采集时数据误差较大,建议优先使用StartProfile单端版本,此接口只支持PC端

  • 参数

  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.StartMultiProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopMultiProfile
serverApi.StopMultiProfile()

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    开始启动服务端与客户端双端脚本性能分析,启动后调用StopMultiProfile即可在路径fileName生成函数性能火焰图。双端采集时数据误差较大,建议优先使用StartProfile单端版本,此接口只支持PC端

  • 参数

  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.StartMultiProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopMultiProfile
clientApi.StopMultiProfile()

# StartProfile

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    开始启动服务端脚本性能分析,启动后调用StopProfile即可在路径fileName生成函数性能火焰图,此接口只支持PC端。生成的火焰图可以用浏览器打开,推荐chrome浏览器。

  • 参数

  • 返回值

    数据类型
    说明
    bool 执行结果
  • 备注

    • 火焰图主页面示例:
      火焰图示意图
    • 如火焰图所示,竖直方向表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数。分析性能时主要看火焰图的宽度(其中颜色没有特别意义),火焰图越宽,表示该函数对整体性能的消耗越大。因此需要对该函数进行优化。
    • 将鼠标放在一个函数块上时,下方会显示当前函数对应的详细信息,具体含义可见获取性能分析火焰图
    • 优化的核心主要是减少调用次数以及优化函数的写法。其中对于开发者而言,只需要关注开发者开发的代码即可,对于部分函数调用到mod框架或者引擎顶层框架进而导致性能消耗较大的,可以尝试通过减少调用次数来进行优化。
    • 另外,火焰图支持通过右上方的Search框或者“F3”快捷键对函数关键词进行搜索。同时可以点击函数缩放查看对应的调用栈。
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.StartProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopProfile
serverApi.StopProfile()

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    开始启动客户端脚本性能分析,启动后调用StopProfile即可在路径fileName生成函数性能火焰图,此接口只支持PC端。生成的火焰图可以用浏览器打开,推荐chrome浏览器。

  • 参数

  • 返回值

    数据类型
    说明
    bool 执行结果
  • 备注

    • 火焰图主页面示例:
      火焰图示意图
    • 如火焰图所示,竖直方向表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数。分析性能时主要看火焰图的宽度(其中颜色没有特别意义),火焰图越宽,表示该函数对整体性能的消耗越大。因此需要对该函数进行优化。
    • 将鼠标放在一个函数块上时,下方会显示当前函数对应的详细信息,具体含义可见获取性能分析火焰图
    • 优化的核心主要是减少调用次数以及优化函数的写法。其中对于开发者而言,只需要关注开发者开发的代码即可,对于部分函数调用到mod框架或者引擎顶层框架进而导致性能消耗较大的,可以尝试通过减少调用次数来进行优化。
    • 另外,火焰图支持通过右上方的Search框或者“F3”快捷键对函数关键词进行搜索。同时可以点击函数缩放查看对应的调用栈。
    • 上架时请去掉这个接口的调用
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.StartProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopProfile
clientApi.StopProfile()

# StartRecordEvent

仅Apollo可用

method in mod.server.extraServerApi

  • 描述

    开始启动服务端与客户端之间的脚本事件收发统计,启动后调用StopRecordEvent即可获取两个函数调用之间脚本事件收发的统计信息,仅支持租赁服与Apollo网络服环境(不支持单机环境)

  • 参数

  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.server.extraServerApi as serverApi
suc = serverApi.StartRecordEvent()
# 之后通过计时器或者其他触发方式调用StopRecordEvent
result = serverApi.StopRecordEvent()
for eventName, data in result.iteritems():
    print "event[{}] send={} sendSize={} recv={} recvSize={}".format(eventName, data["send_num"], data["send_size"], data["recv_num"], data["recv_size"])

# StartRecordPacket

仅Apollo可用

method in mod.server.extraServerApi

  • 描述

    开始启动服务端与客户端之间的引擎收发包统计,启动后调用StopRecordPacket即可获取两个函数调用之间引擎收发包的统计信息,仅支持租赁服与Apollo网络服环境(不支持单机环境)

  • 参数

  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.server.extraServerApi as serverApi
suc = serverApi.StartRecordPacket()
# 之后通过计时器或者其他触发方式调用StopRecordPacket
result = serverApi.StopRecordPacket()
for packetName, data in result.iteritems():
    print "packet[{}] send={} sendSize={} recv={} recvSize={}".format(packetName, data["send_num"], data["send_size"], data["recv_num"], data["recv_size"])

# StopMemProfile

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    停止服务端脚本内存分析并生成火焰图,与StartMemProfile配合使用,此接口只支持PC端

  • 参数

    参数名
    数据类型
    说明
    fileName str 具体路径,相对于PC开发包的路径,默认为"flamegraph.svg",位于PC开发包目录下,自定义路径请确保文件后缀名为".svg"
  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.StartMemProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopMemProfile
serverApi.StopMemProfile(fileName)

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    停止客户端脚本内存分析并生成火焰图,与StartMemProfile配合使用,此接口只支持PC端

  • 参数

    参数名
    数据类型
    说明
    fileName str 具体路径,相对于PC开发包的路径,默认为"flamegraph.svg",位于PC开发包目录下,自定义路径请确保文件后缀名为".svg"
  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.StartMemProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopMemProfile
clientApi.StopMemProfile(fileName)

# StopMultiProfile

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    停止双端脚本性能分析并生成火焰图,与StartMultiProfile配合使用,此接口只支持PC端

  • 参数

    参数名
    数据类型
    说明
    fileName str 具体路径,相对于PC开发包的路径,默认为"flamegraph.svg",位于PC开发包目录下,自定义路径请确保文件后缀名为".svg"
  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.StartMultiProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopMultiProfile
serverApi.StopMultiProfile()

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    停止双端脚本性能分析并生成火焰图,与StartMultiProfile配合使用,此接口只支持PC端

  • 参数

    参数名
    数据类型
    说明
    fileName str 具体路径,相对于PC开发包的路径,默认为"flamegraph.svg",位于PC开发包目录下,自定义路径请确保文件后缀名为".svg"
  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.StartMultiProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopMultiProfile
clientApi.StopMultiProfile()

# StopProfile

服务端客户端

# 服务端接口

method in mod.server.extraServerApi

  • 描述

    停止服务端脚本性能分析并生成火焰图,与StartProfile配合使用,此接口只支持PC端

  • 参数

    参数名
    数据类型
    说明
    fileName str 具体路径,相对于PC开发包的路径,默认为"flamegraph.svg",位于PC开发包目录下,自定义路径请确保文件后缀名为".svg"
  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.server.extraServerApi as serverApi
serverApi.StartProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopProfile
serverApi.StopProfile()

# 客户端接口

method in mod.client.extraClientApi

  • 描述

    停止客户端脚本性能分析并生成火焰图,与StartProfile配合使用,此接口只支持PC端

  • 参数

    参数名
    数据类型
    说明
    fileName str 具体路径,相对于PC开发包的路径,默认为"flamegraph.svg",位于PC开发包目录下,自定义路径请确保文件后缀名为".svg"
  • 返回值

    数据类型
    说明
    bool 执行结果
  • 示例

import mod.client.extraClientApi as clientApi
clientApi.StartProfile()
modfunc()# 处理对应的逻辑
# 之后通过计时器或者其他触发方式调用StopProfile
clientApi.StopProfile()

# StopRecordEvent

仅Apollo可用

method in mod.server.extraServerApi

  • 描述

    停止服务端与客户端之间的脚本事件收发统计并输出结果,与StartRecordEvent配合使用,输出结果为字典,key为网络包名,value字典中记录收发信息,具体见示例,仅支持租赁服与Apollo网络服环境(不支持单机环境)

  • 参数

  • 返回值

    数据类型
    说明
    dict 收发包信息,假如没有调用过StartRecordEvent,则返回为None
  • 示例

import mod.server.extraServerApi as serverApi
suc = serverApi.StartRecordEvent()
# 之后通过计时器或者其他触发方式调用StopRecordEvent
result = serverApi.StopRecordEvent()
for eventName, data in result.iteritems():
    print "event[{}] send={} sendSize={} recv={} recvSize={}".format(eventName, data["send_num"], data["send_size"], data["recv_num"], data["recv_size"])

# StopRecordPacket

仅Apollo可用

method in mod.server.extraServerApi

  • 描述

    停止服务端与客户端之间的引擎收发包统计并输出结果,与StartRecordPacket配合使用,输出结果为字典,key为网络包名,value字典中记录收发信息,具体见示例,仅支持租赁服与Apollo网络服环境(不支持单机环境)

  • 参数

  • 返回值

    数据类型
    说明
    dict 收发包信息,假如没有调用过StartRecordPacket,则返回为None
  • 示例

import mod.server.extraServerApi as serverApi
suc = serverApi.StartRecordPacket()
# 之后通过计时器或者其他触发方式调用StopRecordPacket
result = serverApi.StopRecordPacket()
for packetName, data in result.iteritems():
    print "packet[{}] send={} sendSize={} recv={} recvSize={}".format(packetName, data["send_num"], data["send_size"], data["recv_num"], data["recv_size"])