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