# 调试
# 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"])