Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/接口/成就.md
2025-03-18 14:46:12 +08:00

138 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 | 进度值的变化量必须大于0 |
| 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)
```