138 lines
4.2 KiB
Markdown
138 lines
4.2 KiB
Markdown
---
|
||
sidebarDepth: 1
|
||
---
|
||
# 成就
|
||
|
||
# 索引
|
||
|
||
---
|
||
|
||
| 接口 | <div style="width: 3em"></div> | 描述 |
|
||
| --- | --- | --- |
|
||
| [LobbyGetAchievementStorage](成就.md#lobbygetachievementstorage) | <span style="display:inline;color:#ff5555">服务端</span> | 获取成就节点的存储的数据。仅联机大厅可用 |
|
||
| [LobbySetAchievementStorage](成就.md#lobbysetachievementstorage) | <span style="display:inline;color:#ff5555">服务端</span> | 添加成就节点的进度。仅联机大厅可用 |
|
||
|
||
## LobbyGetAchievementStorage
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
method in mod.server.component.achievementCompServer.AchievementCompServer
|
||
|
||
- 描述
|
||
|
||
获取成就节点的存储的数据。仅联机大厅可用
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| callback | function | 请求回调函数 |
|
||
| playerId | int | 玩家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
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
method in mod.server.component.achievementCompServer.AchievementCompServer
|
||
|
||
- 描述
|
||
|
||
添加成就节点的进度。仅联机大厅可用
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| callback | function | 请求回调函数 |
|
||
| playerId | int | 玩家playerId |
|
||
| nodeId | str | 成就节点ID |
|
||
| delta | int | 设置进度值 |
|
||
| getExtraData | function | 用于返回存储更新后的数据的函数,返回值必须为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)
|
||
```
|
||
|
||
|
||
|