195 lines
5.1 KiB
Markdown
195 lines
5.1 KiB
Markdown
---
|
||
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")
|
||
```
|
||
|
||
|
||
|