11m03d官网文档同步
This commit is contained in:
kwiilh
2025-11-03 17:09:35 +08:00
parent 6276db64e0
commit fc5d4989a4
47 changed files with 2264 additions and 44 deletions

View File

@@ -10,7 +10,7 @@ time: 分钟
## 示例下载
下载地址:[示例Demo](https://g79.gdl.netease.com/3.3Demo.zip)。
下载地址:[示例Demo](https://g79.gdl.netease.com/3.6Demo.zip)。
@@ -175,7 +175,7 @@ time: 分钟
- 自定义云成就-CloudAchievementMod
展示了[云成就](../../28-成就系统/云成就使用文档.md)的基本用法
展示了[云成就](../../29-成就系统/云成就使用文档.md)的基本用法
- 微软粒子发射骨骼模型-NeteaseModelParticleDemo

View File

@@ -57,7 +57,7 @@ selection: true
|format_version|str||格式版本请填写0.0.1|
|name|str||指令名称例如gamemode|
|description|str||指令描述也支持在语言文件例如zh_CN.lang中定义|
|permission_level|str|权限等级可选game_directors、admin、host、owner、any具体含义如下<br>game_directors任何操作员都可以运行此命令包括命令方块<br>admin任何操作员都可以运行此命令但命令方块不能<br>host任何服务器主机都可以运行此命令<br>owner只有专用服务器可以运行此命令<br>any任何人都可以运行此命令|
|permission_level|str|game_directors|权限等级可选game_directors、admin、host、owner、any具体含义如下<br>game_directors任何操作员都可以运行此命令包括命令方块<br>admin任何操作员都可以运行此命令但命令方块不能<br>host任何服务器主机都可以运行此命令<br>owner只有专用服务器可以运行此命令<br>any任何人都可以运行此命令|
- args是一个包含object的列表定义指令的参数。每个object都代表一个参数object的顺序决定指令参数的输入顺序每个object的参数说明如下

View File

@@ -92,32 +92,33 @@ playerId = clientApi.GetLocalPlayerId()
ClientComp.CreateQueryVariable(levelId).Register("query.mod.ysm_is_create_flying", 0)
ClientComp.CreateQueryVariable(levelId).Register("query.mod.ysm_is_elytra_flying", 0)
# key为需要监听的attr名称,value为需要设置的对应Molang变量名称
queryDict = {
"playerIsFlying": "query.mod.ysm_is_flying",
"playerIsElytraFlying": "query.mod.ysm_is_elytra_flying"
}
# 根据queryDict自动配置监听,简化代码
def CreateAttrCallBack(bindQuery):
def _eventFuckCallBack(args):
ClientComp.CreateQueryVariable(args["entityId"]).Set(bindQuery, args["newValue"])
return _eventFuckCallBack
class PlayerActionClientSystem(ClientSystem):
def __init__(self, namespace, systemName):
ClientSystem.__init__(self, namespace, systemName)
# 注册本地玩家的属性值变化回调函数
modAttr = ClientComp.CreateModAttr(playerId)
modAttr.RegisterUpdateFunc("playerIsCreateFlying", self.PlayerCreateFlyStateChanged)
modAttr.RegisterUpdateFunc("playerIsElytraFlying", self.PlayerElytraFlyStateChanged)
for attr, query in queryDict.items():
ClientComp.CreateModAttr(playerId).RegisterUpdateFunc(attr, CreateAttrCallBack(query))
def OnAddPlayerAOIClient(self, args):
"""玩家加入游戏或进入视野时触发,注册属性值变化回调"""
pId = args["playerId"]
modAttr = ClientComp.CreateModAttr(pId)
modAttr.RegisterUpdateFunc("playerIsCreateFlying", self.PlayerCreateFlyStateChanged)
modAttr.RegisterUpdateFunc("playerIsElytraFlying", self.PlayerElytraFlyStateChanged)
def PlayerCreateFlyStateChanged(self, args):
"""创造飞行状态变化回调"""
molangVar = args["newValue"] # 属性变化后的值
pId = args["entityId"] # 属性变化对应的实体Id
ClientComp.CreateQueryVariable(pId).Set("query.mod.ysm_is_create_flying", molangVar)
def PlayerElytraFlyStateChanged(self, args):
"""鞘翅飞行状态变化回调"""
molangVar = args["newValue"] # 属性变化后的值
pId = args["entityId"] # 属性变化对应的实体Id
ClientComp.CreateQueryVariable(pId).Set("query.mod.ysm_is_elytra_flying", molangVar)
for attr, query in queryDict.items():
ClientComp.CreateModAttr(pId).RegisterUpdateFunc(attr, CreateAttrCallBack(query))
```
### 工作流程说明