Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/接口/实体/自定义数据.md
2025-03-17 13:24:39 +08:00

195 lines
5.1 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
---
# 自定义数据
## CleanExtraData
<span style="display:inline;color:#ff5555">服务端</span>
method in mod.server.component.exDataCompServer.ExDataCompServer
- 描述
清除实体的自定义数据或者世界的自定义数据清除实体数据时使用对应实体id创建组件清除世界数据时使用levelId创建组件
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| key | str | 自定义key |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 设置结果 |
- 示例
```python
import mod.server.extraServerApi as serverApi
# 清除实体数据
entitycomp = serverApi.GetEngineCompFactory().CreateExtraData(entityId)
suc = entitycomp.CleanExtraData("nickname")
print "CleanExtraData entity=%s suc=%s" % (entityId, suc)
# 清除全局数据
levelcomp = serverApi.GetEngineCompFactory().CreateExtraData(levelId)
suc = levelcomp.CleanExtraData("globalMsg")
print "CleanExtraData for level suc=%s" % suc
```
## GetExtraData
<span style="display:inline;color:#ff5555">服务端</span>
method in mod.server.component.exDataCompServer.ExDataCompServer
- 描述
获取实体的自定义数据或者世界的自定义数据某个键所对应的值。获取实体数据时使用对应实体id创建组件获取世界数据时使用levelId创建组件
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| key | str | 自定义key |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| any | key对应的值 |
- 示例
```python
# 获取全局数据
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateExtraData(levelId)
levelExData = comp.GetExtraData("globalMsg")
# 获取
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateExtraData(entityId)
nickName = comp.GetExtraData("nickName")
```
## GetWholeExtraData
<span style="display:inline;color:#ff5555">服务端</span>
method in mod.server.component.exDataCompServer.ExDataCompServer
- 描述
获取完整的实体的自定义数据或者世界的自定义数据获取实体数据时使用对应实体id创建组件获取世界数据时使用levelId创建组件
- 参数
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| dict或None | 获取指定实体或者全局的额外存储数据字典假如没有任何额外存储数据那么返回None或者空字典 |
- 示例
```python
#获取实体数据字典
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateExtraData(entityId)
dataDict = comp.GetWholeExtraData()
if dataDict:
for key, value in dataDict.iteritems():
print "key=%s value=%s" % (key, str(value))
#获取全局数据字典
import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateExtraData(levelId)
dataDict = comp.GetWholeExtraData()
if dataDict:
for key, value in dataDict.iteritems():
print "key=%s value=%s" % (key, str(value))
```
## SaveExtraData
<span style="display:inline;color:#ff5555">服务端</span>
method in mod.server.component.exDataCompServer.ExDataCompServer
- 描述
用于保存实体的自定义数据或者世界的自定义数据
- 参数
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 保存结果 |
- 示例
```python
import mod.server.extraServerApi as serverApi
# 设置实体的自定义数据
entitycomp = serverApi.GetEngineCompFactory().CreateExtraData(entityId)
entitycomp.SetExtraData("nickname", "steve", False)
entitycomp.SetExtraData("score", 256, False)
# more data to set
entitycomp.SaveExtraData()
```
## SetExtraData
<span style="display:inline;color:#ff5555">服务端</span>
method in mod.server.component.exDataCompServer.ExDataCompServer
- 描述
用于设置实体的自定义数据或者世界的自定义数据数据以键值对的形式保存。设置实体数据时使用对应实体id创建组件设置世界数据时使用levelId创建组件
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| key | str | 自定义key |
| value | any | key对应的值支持python基本数据类型 |
| autoSave | bool | 默认自动保存默认为True如果批量设置数据请将该参数设置为False同时在设置数据完毕时调用SaveExtraData接口 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 设置结果 |
- 示例
```python
import mod.server.extraServerApi as serverApi
# 设置实体的自定义数据
entitycomp = serverApi.GetEngineCompFactory().CreateExtraData(entityId)
entitycomp.SetExtraData("nickname","steve")
entitycomp.SetExtraData("score",256)
# 设置世界的自定义数据
levelcomp = serverApi.GetEngineCompFactory().CreateExtraData(levelId)
levelcomp.SetExtraData("globalMsg","helloWorld")
```