1212 lines
44 KiB
Markdown
1212 lines
44 KiB
Markdown
---
|
||
sidebarDepth: 1
|
||
---
|
||
# 玩家
|
||
|
||
# 索引
|
||
|
||
| 事件 | <div style="width: 3em"></div> | 描述 |
|
||
| --- | --- | --- |
|
||
| [AddExpEvent](玩家.md#addexpevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当玩家增加经验时触发该事件。 |
|
||
| [AddLevelEvent](玩家.md#addlevelevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当玩家升级时触发该事件。 |
|
||
| [CameraMotionStartClientEvent](玩家.md#cameramotionstartclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 相机运动器开始事件。相机添加运动器后,运动器开始运行时触发 |
|
||
| [CameraMotionStopClientEvent](玩家.md#cameramotionstopclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 相机运动器停止事件。相机添加运动器并开始运行后,运动器自动停止时触发 |
|
||
| [ChangeLevelUpCostServerEvent](玩家.md#changelevelupcostserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:获取玩家下一个等级升级经验时,用于重载玩家的升级经验,每个等级在重置之前都只会触发一次 |
|
||
| [DimensionChangeClientEvent](玩家.md#dimensionchangeclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家维度改变时客户端抛出 |
|
||
| [DimensionChangeFinishClientEvent](玩家.md#dimensionchangefinishclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家维度改变完成后客户端抛出 |
|
||
| [DimensionChangeFinishServerEvent](玩家.md#dimensionchangefinishserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家维度改变完成后服务端抛出 |
|
||
| [DimensionChangeServerEvent](玩家.md#dimensionchangeserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家维度改变时服务端抛出 |
|
||
| [ExtinguishFireClientEvent](玩家.md#extinguishfireclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家扑灭火焰时触发。下雨,倒水等方式熄灭火焰不会触发。 |
|
||
| [ExtinguishFireServerEvent](玩家.md#extinguishfireserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家扑灭火焰时触发。下雨,倒水等方式熄灭火焰不会触发。 |
|
||
| [GameTypeChangedClientEvent](玩家.md#gametypechangedclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 个人游戏模式发生变化时客户端触发。 |
|
||
| [GameTypeChangedServerEvent](玩家.md#gametypechangedserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 当默认游戏模式或个人游戏模式发生变化时服务端触发,如果个人游戏模式不为默认时,修改默认游戏模式也会同时修改个人游戏模式,此时会触发两次该事件 |
|
||
| [MountTamingEvent](玩家.md#mounttamingevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家通过骑乘驯服生物后触发该事件 |
|
||
| [OnLocalPlayerActionClientEvent](玩家.md#onlocalplayeractionclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家动作事件,当本地玩家开始/停止某些动作时触发该事件 |
|
||
| [OnLocalPlayerStartJumpClientEvent](玩家.md#onlocalplayerstartjumpclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 本地玩家开始跳跃时触发 |
|
||
| [OnPlayerActionServerEvent](玩家.md#onplayeractionserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家动作事件,当玩家开始/停止某些动作时触发该事件 |
|
||
| [OnPlayerHitBlockClientEvent](玩家.md#onplayerhitblockclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:通过OpenPlayerHitBlockDetection打开方块碰撞检测后,当玩家碰撞到方块时触发该事件。玩家着地时会触发OnGroundClientEvent,而不是该事件。客户端和服务端分别作碰撞检测,可能两个事件返回的结果略有差异。 |
|
||
| [OnPlayerHitBlockServerEvent](玩家.md#onplayerhitblockserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:通过OpenPlayerHitBlockDetection打开方块碰撞检测后,当玩家碰撞到方块时触发该事件。监听玩家着地请使用客户端的OnGroundClientEvent。客户端和服务端分别作碰撞检测,可能两个事件返回的略有差异。 |
|
||
| [PerspChangeClientEvent](玩家.md#perspchangeclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 视角切换时会触发的事件 |
|
||
| [PlayerAttackEntityEvent](玩家.md#playerattackentityevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当玩家攻击时触发该事件。 |
|
||
| [PlayerAttackEntityEvent](玩家.md#playerattackentityevent) | <span style="display:inline;color:#7575f9">客户端</span> | 触发时机:当本地玩家攻击时触发该事件。 |
|
||
| [PlayerCheatSpinAttackServerEvent](玩家.md#playercheatspinattackserverevent) | <span style="display:inline;color:#ff5555">Apollo</span> | 触发时机:玩家开始/结束快速旋转攻击并且不符合发送快速旋转攻击条件时触发(装备激流附魔的三叉戟、在水中或雨中,且未骑乘) |
|
||
| [PlayerDieEvent](玩家.md#playerdieevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当玩家死亡时触发该事件。 |
|
||
| [PlayerDoInteractServerEvent](玩家.md#playerdointeractserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家与有minecraft:interact组件的生物交互时触发该事件,例如玩家手持空桶对牛挤奶、玩家手持打火石点燃苦力怕 |
|
||
| [PlayerEatFoodServerEvent](玩家.md#playereatfoodserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家吃下食物时触发 |
|
||
| [PlayerFeedEntityServerEvent](玩家.md#playerfeedentityserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家喂养生物时触发,例如玩家手持小麦喂养牛、玩家手持胡萝卜喂养幼年猪。 |
|
||
| [PlayerHungerChangeServerEvent](玩家.md#playerhungerchangeserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家饥饿度变化时触发该事件 |
|
||
| [PlayerHurtEvent](玩家.md#playerhurtevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当玩家受伤害前触发该事件。 |
|
||
| [PlayerInteractServerEvent](玩家.md#playerinteractserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家可以与实体交互时。如果是鼠标控制模式,则当准心对着实体时触发。如果是触屏模式,则触发时机与屏幕下方的交互按钮显示的时机相同。玩家真正与实体发生交互的事件见[PlayerDoInteractServerEvent](#playerdointeractserverevent) |
|
||
| [PlayerNamedEntityServerEvent](玩家.md#playernamedentityserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家用命名牌重命名实体时触发,例如玩家手持命名牌对羊修改名字、玩家手持命名牌对盔甲架修改名字。 |
|
||
| [PlayerRespawnEvent](玩家.md#playerrespawnevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家复活时触发该事件。 |
|
||
| [PlayerRespawnFinishServerEvent](玩家.md#playerrespawnfinishserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家复活完毕时触发 |
|
||
| [PlayerSleepServerEvent](玩家.md#playersleepserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家使用床睡觉成功 |
|
||
| [PlayerSpinAttackServerEvent](玩家.md#playerspinattackserverevent) | <span style="display:inline;color:#ff5555">Apollo</span> | 触发时机:玩家开始/结束快速旋转攻击时触发 |
|
||
| [PlayerStopSleepServerEvent](玩家.md#playerstopsleepserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家停止睡觉 |
|
||
| [PlayerTeleportEvent](玩家.md#playerteleportevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:当玩家传送时触发该事件,如:玩家使用末影珍珠或tp指令时。 |
|
||
| [PlayerTrySleepServerEvent](玩家.md#playertrysleepserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 玩家尝试使用床睡觉 |
|
||
| [ServerPlayerGetExperienceOrbEvent](玩家.md#serverplayergetexperienceorbevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家获取经验球时触发的事件 |
|
||
| [StoreBuySuccServerEvent](玩家.md#storebuysuccserverevent) | <span style="display:inline;color:#ff5555">服务端</span> | 触发时机:玩家游戏内购买商品时服务端抛出的事件 |
|
||
# 玩家
|
||
|
||
## AddExpEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当玩家增加经验时触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| id | str | 玩家id |
|
||
| addExp | int | 增加的经验值 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## AddLevelEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当玩家升级时触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| id | str | 玩家id |
|
||
| addLevel | int | 增加的等级值 |
|
||
| newLevel | int | 新的等级 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## CameraMotionStartClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
相机运动器开始事件。相机添加运动器后,运动器开始运行时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| motionId | int | 运动器id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## CameraMotionStopClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
相机运动器停止事件。相机添加运动器并开始运行后,运动器自动停止时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| motionId | int | 运动器id |
|
||
| remove | bool | 是否移除该运动器,设置为False则保留,默认为True,即运动器停止后自动移除 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 注意:该事件触发表示运动器播放顺利完成,手动调用的[StopCameraMotion](../接口/玩家/摄像机.md#StopCameraMotion)、[RemoveCameraMotion](../接口/玩家/摄像机.md#RemoveCameraMotion)不会触发该事件。
|
||
|
||
|
||
|
||
## ChangeLevelUpCostServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:获取玩家下一个等级升级经验时,用于重载玩家的升级经验,每个等级在重置之前都只会触发一次
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| level | int | 玩家当前等级 |
|
||
| levelUpCostExp | int | 当前等级升级到下个等级需要的经验值,当设置升级经验小于1时会被强制调整到1 |
|
||
| changed | bool | 设置为True,重载玩家升级经验才会生效 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="ClearDefinedLevelUpCost"></span>
|
||
### ClearDefinedLevelUpCost
|
||
|
||
method in mod.server.component.playerCompServer.PlayerCompServer
|
||
|
||
- 描述
|
||
|
||
接口用于重置升级经验。使用ChangeLevelUpCostServerEvent事件设置升级经验后,升级经验无法调整。需要调整升级经验时,可使用该接口。使用步骤如下:1、使用ClearDefineLevelUpconst,2、在升级抛出ChangeLevelUpCostServerEvent事件后重新设置经验。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| level | int | 指定清理的等级,加入传入的数值小于0,则清理所有等级的升级经验值缓存 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否清理成功。 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreatePlayer(playerId)
|
||
suc = comp.ClearDefinedLevelUpCost(1)
|
||
```
|
||
|
||
|
||
|
||
## DimensionChangeClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
玩家维度改变时客户端抛出
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家实体id |
|
||
| fromDimensionId | int | 维度改变前的维度 |
|
||
| toDimensionId | int | 维度改变后的维度 |
|
||
| fromX | float | 改变前的位置x |
|
||
| fromY | float | 改变前的位置Y |
|
||
| fromZ | float | 改变前的位置Z |
|
||
| toX | float | 改变后的位置x |
|
||
| toY | float | 改变后的位置Y |
|
||
| toZ | float | 改变后的位置Z |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 当通过传送门从末地回到主世界时,toY值为32767,其他情况一般会比设置值高1.62
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## DimensionChangeFinishClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
玩家维度改变完成后客户端抛出
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家实体id |
|
||
| fromDimensionId | int | 维度改变前的维度 |
|
||
| toDimensionId | int | 维度改变后的维度 |
|
||
| toPos | tuple(float,float,float) | 改变后的位置x,y,z,其中y值为脚底加上角色的身高值 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 当通过传送门从末地回到主世界时,toPos的y值为32767,其他情况一般会比设置值高1.62
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## DimensionChangeFinishServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家维度改变完成后服务端抛出
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家实体id |
|
||
| fromDimensionId | int | 维度改变前的维度 |
|
||
| toDimensionId | int | 维度改变后的维度 |
|
||
| toPos | tuple(float,float,float) | 改变后的位置x,y,z,其中y值为脚底加上角色的身高值 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 当通过传送门从末地回到主世界时,toPos的y值为32767,其他情况一般会比设置值高1.62
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## DimensionChangeServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家维度改变时服务端抛出
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家实体id |
|
||
| fromDimensionId | int | 维度改变前的维度 |
|
||
| toDimensionId | int | 维度改变后的维度 |
|
||
| fromX | float | 改变前的位置x |
|
||
| fromY | float | 改变前的位置Y |
|
||
| fromZ | float | 改变前的位置Z |
|
||
| toX | float | 改变后的位置x |
|
||
| toY | float | 改变后的位置Y |
|
||
| toZ | float | 改变后的位置Z |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 当通过传送门从末地回到主世界时,toY值为32767,其他情况一般会比设置值高1.62
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## ExtinguishFireClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
玩家扑灭火焰时触发。下雨,倒水等方式熄灭火焰不会触发。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| pos | tuple(float,float,float) | 火焰方块的坐标 |
|
||
| playerId | str | 玩家id |
|
||
| cancel | bool | 修改为True时,可阻止玩家扑灭火焰。需要与ExtinguishFireServerEvent一起修改。 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## ExtinguishFireServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家扑灭火焰时触发。下雨,倒水等方式熄灭火焰不会触发。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| pos | tuple(float,float,float) | 火焰方块的坐标 |
|
||
| playerId | str | 玩家id |
|
||
| cancel | bool | 修改为True时,可阻止玩家扑灭火焰。需要与ExtinguishFireClientEvent一起修改。 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## GameTypeChangedClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
个人游戏模式发生变化时客户端触发。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家Id |
|
||
| oldGameType | int | 切换前的游戏模式 |
|
||
| newGameType | int | 切换后的游戏模式 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 游戏模式:GetMinecraftEnum().GameType.*:Survival,Creative,Adventure分别为0~2
|
||
默认游戏模式发生变化时最后反映在个人游戏模式之上。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## GameTypeChangedServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
当默认游戏模式或个人游戏模式发生变化时服务端触发,如果个人游戏模式不为默认时,修改默认游戏模式也会同时修改个人游戏模式,此时会触发两次该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家Id,[SetDefaultGameType](../接口/世界/游戏规则.md#SetDefaultGameType)接口改变游戏模式时该参数为空字符串 |
|
||
| oldGameType | int | 切换前的游戏模式 |
|
||
| newGameType | int | 切换后的游戏模式 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 游戏模式:GetMinecraftEnum().GameType.*:Survival,Creative,Adventure分别为0~2,Spectator为6
|
||
默认游戏模式发生变化时最后反映在个人游戏模式之上。
|
||
注意:避免在该事件中调用修改ability相关的接口,比如ChangePlayerFlyState等接口,如确实需要,可加定时器延后调用
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## MountTamingEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家通过骑乘驯服生物后触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| eid | str | 生物id |
|
||
| pid | str | 玩家id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 该事件是检测minecraft:tamemount行为包组件,即玩家通过不断骑乘生物,使其冒出爱心时触发
|
||
|
||
|
||
|
||
## OnLocalPlayerActionClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
玩家动作事件,当本地玩家开始/停止某些动作时触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| actionType | int | 动作事件枚举,详见Minecraft枚举值文档的[PlayerActionType](../枚举值/PlayerActionType.md) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## OnLocalPlayerStartJumpClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
本地玩家开始跳跃时触发
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
|
||
|
||
## OnPlayerActionServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家动作事件,当玩家开始/停止某些动作时触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
| actionType | int | 动作事件枚举,详见Minecraft枚举值文档的[PlayerActionType](../枚举值/PlayerActionType.md) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## OnPlayerHitBlockClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:通过OpenPlayerHitBlockDetection打开方块碰撞检测后,当玩家碰撞到方块时触发该事件。玩家着地时会触发OnGroundClientEvent,而不是该事件。客户端和服务端分别作碰撞检测,可能两个事件返回的结果略有差异。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 碰撞到方块的玩家Id |
|
||
| posX | int | 碰撞方块x坐标 |
|
||
| posY | int | 碰撞方块y坐标 |
|
||
| posZ | int | 碰撞方块z坐标 |
|
||
| blockId | str | 碰撞方块的identifier |
|
||
| auxValue | int | 碰撞方块的附加值 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="OpenPlayerHitBlockDetection"></span>
|
||
### OpenPlayerHitBlockDetection
|
||
|
||
method in mod.client.component.playerCompClient.PlayerCompClient
|
||
|
||
- 描述
|
||
|
||
开启碰撞方块的检测,开启后碰撞时会触发OnPlayerHitBlockClientEvent事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| precision | float | 碰撞检测精度,参数需要在区间[0, 1),值越小,表示碰撞检测精度越高(可以理解为轻轻碰一下就能触发) |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 备注
|
||
- 注:该碰撞检测会屏蔽草、空气、火、高草四种方块
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreatePlayer(entityId)
|
||
comp.OpenPlayerHitBlockDetection(0.0001)
|
||
```
|
||
|
||
|
||
|
||
<span id="ClosePlayerHitBlockDetection"></span>
|
||
### ClosePlayerHitBlockDetection
|
||
|
||
method in mod.client.component.playerCompClient.PlayerCompClient
|
||
|
||
- 描述
|
||
|
||
关闭碰撞方块的检测,关闭后将不会触发OnPlayerHitBlockClientEvent事件
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreatePlayer(entityId)
|
||
comp.ClosePlayerHitBlockDetection()
|
||
```
|
||
|
||
|
||
|
||
## OnPlayerHitBlockServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:通过OpenPlayerHitBlockDetection打开方块碰撞检测后,当玩家碰撞到方块时触发该事件。监听玩家着地请使用客户端的OnGroundClientEvent。客户端和服务端分别作碰撞检测,可能两个事件返回的略有差异。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 碰撞到方块的玩家Id |
|
||
| posX | int | 碰撞方块x坐标 |
|
||
| posY | int | 碰撞方块y坐标 |
|
||
| posZ | int | 碰撞方块z坐标 |
|
||
| blockId | str | 碰撞方块的identifier |
|
||
| auxValue | int | 碰撞方块的附加值 |
|
||
| dimensionId | int | 维度id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
### 相关接口
|
||
|
||
<span id="OpenPlayerHitBlockDetection"></span>
|
||
### OpenPlayerHitBlockDetection
|
||
|
||
method in mod.server.component.playerCompServer.PlayerCompServer
|
||
|
||
- 描述
|
||
|
||
开启碰撞方块的检测,开启后碰撞时会触发OnPlayerHitBlockServerEvent事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| precision | float | 碰撞检测精度,参数需要在区间[0, 1),值越小,表示碰撞检测精度越高(可以理解为轻轻碰一下就能触发) |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 备注
|
||
- 注:该碰撞检测会屏蔽草、空气、火、高草四种方块
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreatePlayer(playerId)
|
||
comp.OpenPlayerHitBlockDetection(0.0001)
|
||
```
|
||
|
||
|
||
|
||
<span id="ClosePlayerHitBlockDetection"></span>
|
||
### ClosePlayerHitBlockDetection
|
||
|
||
method in mod.server.component.playerCompServer.PlayerCompServer
|
||
|
||
- 描述
|
||
|
||
关闭碰撞方块的检测,关闭后将不会触发OnPlayerHitBlockServerEvent事件
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
comp = serverApi.GetEngineCompFactory().CreatePlayer(playerId)
|
||
comp.ClosePlayerHitBlockDetection()
|
||
```
|
||
|
||
|
||
|
||
## PerspChangeClientEvent
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
- 描述
|
||
|
||
视角切换时会触发的事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| from | int | 切换前的视角 |
|
||
| to | int | 切换后的视角 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 视角数字代表含义
|
||
0: 第一人称
|
||
1: 第三人称背面
|
||
2: 第三人称正面
|
||
|
||
|
||
|
||
## PlayerAttackEntityEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span><span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
<span id="server"></span>
|
||
### 服务端事件
|
||
|
||
- 描述
|
||
|
||
触发时机:当玩家攻击时触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
| victimId | str | 受击者id |
|
||
| damage | float | 伤害值:引擎传过来的值是0 允许脚本层修改为其他数 |
|
||
| isValid | int | 脚本是否设置伤害值:1表示是;0 表示否 |
|
||
| cancel | bool | 是否取消该次攻击,默认不取消 |
|
||
| isKnockBack | bool | 是否支持击退效果,默认支持,当不支持时将屏蔽武器击退附魔效果 |
|
||
| isCrit | bool | 本次攻击是否产生暴击,不支持修改 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
<span id="client"></span>
|
||
### 客户端事件
|
||
|
||
- 描述
|
||
|
||
触发时机:当本地玩家攻击时触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
| victimId | str | 受击者id |
|
||
| damage | float | 客户端收到的是真实伤害值,且修改无效 |
|
||
| isCrit | bool | 本次攻击是否产生暴击,不支持修改 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerCheatSpinAttackServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">仅Apollo可用</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家开始/结束快速旋转攻击并且不符合发送快速旋转攻击条件时触发(装备激流附魔的三叉戟、在水中或雨中,且未骑乘)
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家的entityId |
|
||
| isStart | bool | True时代表开始快速旋转攻击;False时代表结束快速旋转攻击 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 假如没有自定义类似三叉戟/激流附魔的物品,那么触发此事件说明此有很大可能此玩家使用了【杀戮光环】外挂
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerDieEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当玩家死亡时触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| id | str | 玩家id |
|
||
| attacker | str | 伤害来源id |
|
||
| customTag | str | 使用[Hurt接口](../接口/实体/行为.md#hurt)传入的自定义伤害类型 |
|
||
| cause | str | 伤害来源,详见Minecraft枚举值文档的[ActorDamageCause](../枚举值/ActorDamageCause.md) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerDoInteractServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家与有minecraft:interact组件的生物交互时触发该事件,例如玩家手持空桶对牛挤奶、玩家手持打火石点燃苦力怕
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
| itemDict | dict | 交互时使用物品的<a href="../../../mcguide/20-玩法开发/10-基本概念/1-我的世界基础概念.html#物品信息字典#物品信息字典">物品信息字典</a> |
|
||
| interactEntityId | str | 交互的生物entityId |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerEatFoodServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家吃下食物时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家Id |
|
||
| itemDict | dict | 食物物品的<a href="../../../mcguide/20-玩法开发/10-基本概念/1-我的世界基础概念.html#物品信息字典#物品信息字典">物品信息字典</a> |
|
||
| hunger | int | 食物增加的饥饿值,可修改 |
|
||
| nutrition | float | 食物的营养价值,回复饱和度 = 食物增加的饥饿值 * 食物的营养价值 * 2,饱和度最大不超过当前饥饿值,可修改 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 由于牛奶本身并没有饱食度的概念,因此,当喝牛奶触发该事件时,饥饿度、营养价值字段无效并始终为0
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerFeedEntityServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家喂养生物时触发,例如玩家手持小麦喂养牛、玩家手持胡萝卜喂养幼年猪。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 主动喂养生物的玩家的唯一ID |
|
||
| entityId | str | 被喂养生物的唯一ID |
|
||
| itemDict | dict | 当前玩家手持物品的<a href="../../../mcguide/20-玩法开发/10-基本概念/1-我的世界基础概念.html#物品信息字典#物品信息字典">物品信息字典</a> |
|
||
| cancel | bool | 是否取消触发,默认为False,若设为True,可阻止触发后续的生物喂养逻辑 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 1.对于幼年生物,用对应的物品喂养后就可以触发事件,例如用小麦喂养幼年牛、用生鲑鱼喂养幼年猫;
|
||
2.对于成年生物,用对应的物品喂养后,该生物要进入“求爱模式”(持续散发红心粒子),才可以触发事件。特殊的成年生物列举如下:
|
||
a.可骑乘生物,例如马,玩家要驯服马后,再给它喂养食物(例如金苹果、金萝卜),才可以触发事件;已驯服的马受伤后,用金苹果喂养时会治疗马,不触发事件,马的血量回满时,再喂养金苹果,才会触发事件;
|
||
b.可驯服生物,例如狼,玩家要用骨头驯服狼后,再给它喂养肉类物品(例如熟猪排),才可以触发事件;
|
||
c.需要在特定环境下才能繁殖的生物,例如熊猫,玩家用竹子喂养熊猫时,熊猫的5格内至少要有8根竹子,喂养后才可以触发事件。
|
||
3.该事件中如需调用使用手持物相关的接口,如PlayerUseItemToEntity或其他设置物品数量的接口,会导致接口正常调用但是物品数量计算异常,建议通过timer延迟调用。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerHungerChangeServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家饥饿度变化时触发该事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
| hungerBefore | float | 变化前的饥饿度 |
|
||
| hunger | float | 变化后的饥饿度 |
|
||
| cancel | bool | 是否取消饥饿度变化 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 当通过setplayerhunger接口设置饥饿度时,不会触发服务端对应的事件
|
||
- 当通过/hunger等指令设置饥饿度设置时,hunger字段值可能会超过最大饥饿度
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerHurtEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当玩家受伤害前触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| id | str | 受击玩家id |
|
||
| attacker | str | 伤害来源实体id,若没有实体攻击,例如高空坠落,id为-1 |
|
||
| customTag | str | 使用[Hurt接口](../接口/实体/行为.md#hurt)传入的自定义伤害类型 |
|
||
| cause | str | 伤害来源,详见Minecraft枚举值文档的[ActorDamageCause](../枚举值/ActorDamageCause.md) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerInteractServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家可以与实体交互时。如果是鼠标控制模式,则当准心对着实体时触发。如果是触屏模式,则触发时机与屏幕下方的交互按钮显示的时机相同。玩家真正与实体发生交互的事件见[PlayerDoInteractServerEvent](#playerdointeractserverevent)
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| cancel | bool | 是否取消触发,默认为False,若设为True,可阻止触发后续的实体交互事件 |
|
||
| playerId | str | 主动与实体互动的玩家的唯一ID |
|
||
| itemDict | dict | 当前玩家手持物品的<a href="../../../mcguide/20-玩法开发/10-基本概念/1-我的世界基础概念.html#物品信息字典#物品信息字典">物品信息字典</a> |
|
||
| victimId | str | 被动的实体的唯一ID |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerNamedEntityServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家用命名牌重命名实体时触发,例如玩家手持命名牌对羊修改名字、玩家手持命名牌对盔甲架修改名字。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 主动命名实体的玩家的唯一ID |
|
||
| entityId | str | 被命名实体的唯一ID |
|
||
| preName | str | 实体当前的名字 |
|
||
| afterName | str | 实体重命名后的名字 |
|
||
| cancel | bool | 是否取消触发,默认为False,若设为True,可阻止触发后续的实体命名逻辑 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerRespawnEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家复活时触发该事件。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| id | str | 玩家id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 该事件为玩家点击重生按钮时触发,但是触发时玩家可能尚未完成复活,此时请勿对玩家进行切维度或设置生命值等操作
|
||
一般情况下推荐使用PlayerRespawnFinishServerEvent
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerRespawnFinishServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家复活完毕时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 该事件触发时玩家已重生完毕,可以安全使用切维度等操作
|
||
- 通过末地传送门回到主世界时也算重生,同样也会触发该事件
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerSleepServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家使用床睡觉成功
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerSpinAttackServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">仅Apollo可用</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家开始/结束快速旋转攻击时触发
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家的entityId |
|
||
| isInWaterOrRain | bool | 是否在水中或雨中 |
|
||
| isRiding | bool | 是否骑乘状态 |
|
||
| isStart | bool | True时代表开始快速旋转攻击;False时代表结束快速旋转攻击 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerStopSleepServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家停止睡觉
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerTeleportEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:当玩家传送时触发该事件,如:玩家使用末影珍珠或tp指令时。
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| id | str | 玩家id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## PlayerTrySleepServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
玩家尝试使用床睡觉
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
| cancel | bool | 是否取消(开发者传入) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## ServerPlayerGetExperienceOrbEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家获取经验球时触发的事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 玩家id |
|
||
| experienceValue | int | 经验球经验值 |
|
||
| cancel | bool | 是否取消(开发者传入) |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- `cancel`值设为True时,捡起的经验球不会增加经验值,但是经验球一样会消失。
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|
||
## StoreBuySuccServerEvent
|
||
|
||
<span style="display:inline;color:#ff5555">服务端</span>
|
||
|
||
- 描述
|
||
|
||
触发时机:玩家游戏内购买商品时服务端抛出的事件
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| playerId | str | 购买商品的玩家实体id |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.server.extraServerApi as serverApi
|
||
self.ListenForEvent(serverApi.GetEngineNamespace(),serverApi.GetEngineSystemName(),
|
||
"StoreBuySuccServerEvent",
|
||
self, self.OnStoreBuySucc)
|
||
def OnStoreBuySucc(self, args):
|
||
entityId = args['playerId']
|
||
print 'Ship Item.EntityId:', playerId
|
||
```
|
||
|
||
在零件中直接声明一个同名函数,即可完成监听,详情参考<a href="../../../mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/0-零件开发.html#零件事件">零件事件</a>
|
||
|
||
|