# 自定义成就系统
# AddNodeProgress
服务端
method in mod.server.component.achievementCompServer.AchievementCompServer
描述
增加对应玩家的对应成就节点的成就进度
参数
参数名 数据类型说明 playerId str 玩家ID nodeId str 节点ID delta int 增加该节点进度的值,只能填写大于0的正整数 callback function 请求回调函数,如果节点的json配置了为云节点,则调用此接口必须填写此参数,否则无法传到云端 getExtra function 用于返回存储更新后的数据的函数,用于云成就节点,返回值必须为str类型,可选 返回值
数据类型说明 bool 是否设置成功,当为云成就上报的时候,True表示上报了,具体情况请查阅callback函数的参数信息,False表示未上报 备注
- callback需要接受一个参数 当请求失败时,参数返回None。 当请求成功时,参数为一个dict,包含返回码,最新数据等信息。 - 当code为0时,表示设置成功。 - 当code为5时,表示数据冲突,此时系统不会存储此次上传的数据,当开发者通过callback处理完冲突后,必须返回一个Bool值。当callback的返回值为True,系统会自动再自动调用一次getExtra来获取最新的extra数据,并自动存储进度与extra。如果不想系统再自动调用,将callback返回值设置为False,系统将不会再进行一次进度存储,可选
示例
import mod.server.extraServerApi as serverApi
def cb(data):
if data:
print { {}.format(data["entity"]) }
else:
print "获取数据失败"
def get():
return extraData
comp = serverApi.GetEngineCompFactory().CreateAchievement(levelId)
#增加该玩家成就进度:
comp.AddNodeProgress(playerId, nodeId, delta, callback = cb, getExtra = get)
# GetAchievementGatePosition
客户端
method in mod.client.component.achievementCompClient.AchievementCompClient
描述
获取自定义成就系统的入口按钮位置
参数
无
返回值
数据类型说明 tuple(float,float) 坐标信息,tuple(横轴坐标,竖轴坐标),获取失败返回None 示例
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateAchievement(playerId)
result = comp.GetAchievementGatePosition()
# GetChildrenNode
服务端
method in mod.server.component.achievementCompServer.AchievementCompServer
描述
获得该成就节点的下一级所有孩子节点的list
参数
参数名 数据类型说明 nodeId str 节点ID 返回值
数据类型说明 list(str) 返回值为是否设置成功,成功为该节点的下一级所有孩子节点的list,失败为None 示例
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateAchievement(levelId)
#获得该成就节点的下一级所有孩子节点的list:
NodeChildren = comp.GetChildrenNode(nodeId)
# GetNodeDetailInfo
服务端
method in mod.server.component.achievementCompServer.AchievementCompServer
描述
获取对应玩家的对应节点信息
参数
参数名 数据类型说明 playerId str 玩家ID nodeId str 节点ID 返回值
数据类型说明 dict 获取成功为对应玩家的对应节点的所有信息,包括json内的所有信息,外加一个“progress”属性用来存储该玩家该节点的进度,失败为None 备注
- 该接口获取到的信息只有json里面配置的信息,如果可选内容不配,该接口获取不到不配的可选内容信息
- 不可在“AddServerPlayerEvent”和"ClientLoadAddonsFinishServerEvent"事件中调用该接口
示例
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateAchievement(levelId)
#获取信息:
NodeDetail = comp.GetNodeDetailInfo(playerId, nodeId)
# SetAchievementGatePosition
客户端
method in mod.client.component.achievementCompClient.AchievementCompClient
描述
设置自定义成就系统的入口按钮位置
参数
参数名 数据类型说明 x float 横轴坐标 y float 竖轴坐标 返回值
数据类型说明 bool 是否设置成功 备注
- 如果设置的位置超过边界,将设置到目标最近的边界位置
示例
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateAchievement(playerId)
result = comp.SetAchievementGatePosition(10, 10)
# SetNodeFinish
服务端
method in mod.server.component.achievementCompServer.AchievementCompServer
描述
设置对应玩家的对应成就节点完成
参数
参数名 数据类型说明 playerId str 玩家ID nodeId str 节点ID callback function 请求回调函数,如果节点的json配置了为云节点,则调用此接口必须填写此参数,否则无法传到云端 getExtra function 用于返回存储更新后的数据的函数,用于云成就节点,返回值必须为str类型,可选 返回值
数据类型说明 bool 是否设置成功,当为云成就上报的时候,True表示上报了,具体情况请查阅callback函数的参数信息,False表示未上报 备注
- callback需要接受一个参数 当请求失败时,参数返回None。 当请求成功时,参数为一个dict,包含返回码,最新数据等信息。 - 当code为0时,表示设置成功。 - 当code为5时,表示数据冲突,此时系统不会存储此次上传的数据,当开发者通过callback处理完冲突后,必须返回一个Bool值。当callback的返回值为True,系统会自动再自动调用一次getExtra来获取最新的extra数据,并自动存储进度与extra。如果不想系统再自动调用,将callback放回值设置为False,系统将不会再进行一次进度存储,可选
示例
import mod.server.extraServerApi as serverApi
def cb(data):
if data:
print { {}.format(data["entity"]) }
else:
print "获取数据失败"
def get():
return extraData
comp = serverApi.GetEngineCompFactory().CreateAchievement(levelId)
#设置该成就完成:
comp.SetNodeFinish(playerId, nodeId, callback = cb, getExtra = get)