Skip to content

成就

索引


接口
描述
LobbyGetAchievementStorage服务端获取成就节点的存储的数据。
LobbySetAchievementStorage服务端添加成就节点的进度。

LobbyGetAchievementStorage

服务端

method in mod.server.component.achievementCompServer.AchievementCompServer

  • 描述

    获取成就节点的存储的数据。

  • 参数

    参数名
    数据类型
    说明
    callbackfunction请求回调函数
    playerIdint玩家playerId
  • 返回值

  • 备注

    • callback需要接受一个参数, 当请求失败时,参数返回None。 当请求成功时,参数为一个dict,包含返回码,最新数据等信息。
      • 当code为0时,表示设置成功。
      • 当code为5时,表示数据冲突。 callback参数如下
      python
      {
          "code": 0,
          "message": "正常返回",
          "details": "",
          "entity": [
              {
                  "achievement_id": "Node2",
                  "completed_at": 1652950659,
                  "extra": "",
                  "max_progress": 10,
                  "progress": 10,
                  "version": 4
              }
          ]
      }
    • 可通过"completed_at"判断成就是否完成,非0为完成,请勿使用"max_progress"与"progress"比较判断是否完成
  • 示例

python
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateAchievement(levelId)
def cb(data):
    if data:
        print { {}.format(data["entity"]) }
    else:
        print "获取数据失败"
comp.LobbyGetAchievementStorage(cb, playerId)

LobbySetAchievementStorage

服务端

method in mod.server.component.achievementCompServer.AchievementCompServer

  • 描述

    添加成就节点的进度。

  • 参数

    参数名
    数据类型
    说明
    callbackfunction请求回调函数
    playerIdint玩家playerId
    nodeIdstr成就节点ID
    deltaint进度值的变化量(必须大于0)
    getExtraDatafunction用于返回存储更新后的数据的函数,返回值必须为str类型,可选
  • 返回值

  • 备注

    • callback需要接受一个参数, 当请求失败时,参数返回None。 当请求成功时,参数为一个dict,包含返回码和设置进度前的数据信息。
      • 当code为0时,表示设置成功。
      • 当code为5时,表示数据冲突。此时系统不会存储此次上传的数据,当开发者通过callback处理完冲突后,必须返回一个Bool值。当callback的返回值为True,系统会自动再自动调用一次getExtra来获取最新的extra数据,并自动存储进度与extra。如果不想系统再自动调用,将callback返回值设置为False,系统将不会再进行一次进度存储 callback参数如下
      python
      {
          "code": 5,
          "message": "操作冲突",
          "details": "",
          "entity": {
              "completed_at": 0,
              "extra": "",
              "progress": 1,
              "version": 1
          }
      }
    • 可通过"completed_at"判断成就是否完成,非0为完成,请勿使用"max_progress"与"progress"比较判断是否完成
  • 示例

python
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateAchievement(levelId)
def cb(data):
    if data:
        print { {}.format(data["entity"]) }
    else:
        print "获取数据失败"
comp.LobbySetAchievementStorage(cb, playerId, nodeId, delta)