--- sidebarDepth: 1 --- # 玩家 # 索引 | 事件 |
| 描述 | | --- | --- | --- | | [AddExpEvent](玩家.md#addexpevent) | 服务端 | 触发时机:当玩家增加经验时触发该事件。 | | [AddLevelEvent](玩家.md#addlevelevent) | 服务端 | 触发时机:当玩家升级时触发该事件。 | | [ChangeLevelUpCostServerEvent](玩家.md#changelevelupcostserverevent) | 服务端 | 触发时机:获取玩家下一个等级升级经验时,用于重载玩家的升级经验,每个等级在重置之前都只会触发一次 | | [DimensionChangeClientEvent](玩家.md#dimensionchangeclientevent) | 客户端 | 玩家维度改变时客户端抛出 | | [DimensionChangeFinishClientEvent](玩家.md#dimensionchangefinishclientevent) | 客户端 | 玩家维度改变完成后客户端抛出 | | [DimensionChangeFinishServerEvent](玩家.md#dimensionchangefinishserverevent) | 服务端 | 玩家维度改变完成后服务端抛出 | | [DimensionChangeServerEvent](玩家.md#dimensionchangeserverevent) | 服务端 | 玩家维度改变时服务端抛出 | | [ExtinguishFireClientEvent](玩家.md#extinguishfireclientevent) | 客户端 | 玩家扑灭火焰时触发。下雨,倒水等方式熄灭火焰不会触发。 | | [ExtinguishFireServerEvent](玩家.md#extinguishfireserverevent) | 服务端 | 玩家扑灭火焰时触发。下雨,倒水等方式熄灭火焰不会触发。 | | [GameTypeChangedClientEvent](玩家.md#gametypechangedclientevent) | 客户端 | 个人游戏模式发生变化时客户端触发。 | | [GameTypeChangedServerEvent](玩家.md#gametypechangedserverevent) | 服务端 | 个人游戏模式发生变化时服务端触发。 | | [OnPlayerHitBlockClientEvent](玩家.md#onplayerhitblockclientevent) | 客户端 | 触发时机:通过OpenPlayerHitBlockDetection打开方块碰撞检测后,当玩家碰撞到方块时触发该事件。玩家着地时会触发OnGroundClientEvent,而不是该事件。客户端和服务端分别作碰撞检测,可能两个事件返回的结果略有差异。 | | [OnPlayerHitBlockServerEvent](玩家.md#onplayerhitblockserverevent) | 服务端 | 触发时机:通过OpenPlayerHitBlockDetection打开方块碰撞检测后,当玩家碰撞到方块时触发该事件。监听玩家着地请使用客户端的OnGroundClientEvent。客户端和服务端分别作碰撞检测,可能两个事件返回的略有差异。 | | [PerspChangeClientEvent](玩家.md#perspchangeclientevent) | 客户端 | 视角切换时会触发的事件 | | [PlayerAttackEntityEvent](玩家.md#playerattackentityevent) | 服务端 | 触发时机:当玩家攻击时触发该事件。 | | [PlayerCheatSpinAttackServerEvent](玩家.md#playercheatspinattackserverevent) | Apollo | 触发时机:玩家开始/结束快速旋转攻击并且不符合发送快速旋转攻击条件时触发(装备激流附魔的三叉戟、在水中或雨中,且未骑乘) | | [PlayerDieEvent](玩家.md#playerdieevent) | 服务端 | 触发时机:当玩家死亡时触发该事件。 | | [PlayerDoInteractServerEvent](玩家.md#playerdointeractserverevent) | 服务端 | 玩家与有minecraft:interact组件的生物交互时触发该事件,例如玩家手持空桶对牛挤奶、玩家手持打火石点燃苦力怕 | | [PlayerEatFoodServerEvent](玩家.md#playereatfoodserverevent) | 服务端 | 触发时机:玩家吃下食物时触发 | | [PlayerHurtEvent](玩家.md#playerhurtevent) | 服务端 | 触发时机:当玩家受伤害前触发该事件。 | | [PlayerInteractServerEvent](玩家.md#playerinteractserverevent) | 服务端 | 触发时机:玩家可以与实体交互时。如果是鼠标控制模式,则当准心对着实体时触发。如果是触屏模式,则触发时机与屏幕下方的交互按钮显示的时机相同。玩家真正与实体发生交互的事件见[PlayerDoInteractServerEvent](#playerdointeractserverevent) | | [PlayerRespawnEvent](玩家.md#playerrespawnevent) | 服务端 | 触发时机:玩家复活时触发该事件。 | | [PlayerRespawnFinishServerEvent](玩家.md#playerrespawnfinishserverevent) | 服务端 | 触发时机:玩家复活完毕时触发 | | [PlayerSleepServerEvent](玩家.md#playersleepserverevent) | 服务端 | 玩家使用床睡觉成功 | | [PlayerSpinAttackServerEvent](玩家.md#playerspinattackserverevent) | Apollo | 触发时机:玩家开始/结束快速旋转攻击时触发 | | [PlayerStopSleepServerEvent](玩家.md#playerstopsleepserverevent) | 服务端 | 玩家停止睡觉 | | [PlayerTeleportEvent](玩家.md#playerteleportevent) | 服务端 | 触发时机:当玩家传送时触发该事件,如:玩家使用末影珍珠或tp指令时。 | | [PlayerTrySleepServerEvent](玩家.md#playertrysleepserverevent) | 服务端 | 玩家尝试使用床睡觉 | | [ServerPlayerGetExperienceOrbEvent](玩家.md#serverplayergetexperienceorbevent) | 服务端 | 触发时机:玩家获取经验球时触发的事件 | | [StoreBuySuccServerEvent](玩家.md#storebuysuccserverevent) | 服务端 | 触发时机:玩家游戏内购买商品时服务端抛出的事件 | # 玩家 ## AddExpEvent 服务端 - 描述 触发时机:当玩家增加经验时触发该事件。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | id | str | 玩家id | | addExp | int | 增加的经验值 | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## AddLevelEvent 服务端 - 描述 触发时机:当玩家升级时触发该事件。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | id | str | 玩家id | | addLevel | int | 增加的等级值 | | newLevel | int | 新的等级 | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## ChangeLevelUpCostServerEvent 服务端 - 描述 触发时机:获取玩家下一个等级升级经验时,用于重载玩家的升级经验,每个等级在重置之前都只会触发一次 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | level | int | 玩家当前等级 | | levelUpCostExp | int | 当前等级升级到下个等级需要的经验值,当设置升级经验小于1时会被强制调整到1 | | changed | bool | 设置为True,重载玩家升级经验才会生效 | - 返回值 无 ### 相关接口 ### ClearDefinedLevelUpCost method in mod.server.component.playerCompServer.PlayerCompServer - 描述 接口用于重置升级经验。使用ChangeLevelUpCostServerEvent事件设置升级经验后,升级经验无法调整。需要调整升级经验时,可使用该接口。使用步骤如下:1、使用ClearDefineLevelUpconst,2、在升级抛出ChangeLevelUpCostServerEvent事件后重新设置经验。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | level | int | 指定清理的等级,加入传入的数值小于0,则清理所有等级的升级经验值缓存 | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 是否清理成功。 | - 示例 ```python import mod.server.extraServerApi as serverApi comp = serverApi.GetEngineCompFactory().CreatePlayer(playerId) suc = comp.ClearDefinedLevelUpCost(1) ``` ## DimensionChangeClientEvent 客户端 - 描述 玩家维度改变时客户端抛出 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | 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 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## DimensionChangeFinishClientEvent 客户端 - 描述 玩家维度改变完成后客户端抛出 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家实体id | | fromDimensionId | int | 维度改变前的维度 | | toDimensionId | int | 维度改变后的维度 | | toPos | tuple(float,float,float) | 改变后的位置x,y,z,其中y值为脚底加上角色的身高值 | - 返回值 无 - 备注 - 当通过传送门从末地回到主世界时,toPos的y值为32767,其他情况一般会比设置值高1.62 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## DimensionChangeFinishServerEvent 服务端 - 描述 玩家维度改变完成后服务端抛出 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家实体id | | fromDimensionId | int | 维度改变前的维度 | | toDimensionId | int | 维度改变后的维度 | | toPos | tuple(float,float,float) | 改变后的位置x,y,z,其中y值为脚底加上角色的身高值 | - 返回值 无 - 备注 - 当通过传送门从末地回到主世界时,toPos的y值为32767,其他情况一般会比设置值高1.62 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## DimensionChangeServerEvent 服务端 - 描述 玩家维度改变时服务端抛出 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | 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 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## ExtinguishFireClientEvent 客户端 - 描述 玩家扑灭火焰时触发。下雨,倒水等方式熄灭火焰不会触发。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | pos | tuple(float,float,float) | 火焰方块的坐标 | | playerId | str | 玩家id | | cancel | bool | 修改为True时,可阻止玩家扑灭火焰。需要与ExtinguishFireServerEvent一起修改。 | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## ExtinguishFireServerEvent 服务端 - 描述 玩家扑灭火焰时触发。下雨,倒水等方式熄灭火焰不会触发。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | pos | tuple(float,float,float) | 火焰方块的坐标 | | playerId | str | 玩家id | | cancel | bool | 修改为True时,可阻止玩家扑灭火焰。需要与ExtinguishFireClientEvent一起修改。 | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## GameTypeChangedClientEvent 客户端 - 描述 个人游戏模式发生变化时客户端触发。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家Id | | oldGameType | int | 切换前的游戏模式 | | newGameType | int | 切换后的游戏模式 | - 返回值 无 - 备注 - 游戏模式:GetMinecraftEnum().GameType.*:Survival,Creative,Adventure分别为0~2 默认游戏模式发生变化时最后反映在个人游戏模式之上。 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## GameTypeChangedServerEvent 服务端 - 描述 个人游戏模式发生变化时服务端触发。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家Id,[SetDefaultGameType](../接口/世界/游戏规则.md#SetDefaultGameType)接口改变游戏模式时该参数为空字符串 | | oldGameType | int | 切换前的游戏模式 | | newGameType | int | 切换后的游戏模式 | - 返回值 无 - 备注 - 游戏模式:GetMinecraftEnum().GameType.*:Survival,Creative,Adventure分别为0~2 默认游戏模式发生变化时最后反映在个人游戏模式之上。 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## OnPlayerHitBlockClientEvent 客户端 - 描述 触发时机:通过OpenPlayerHitBlockDetection打开方块碰撞检测后,当玩家碰撞到方块时触发该事件。玩家着地时会触发OnGroundClientEvent,而不是该事件。客户端和服务端分别作碰撞检测,可能两个事件返回的结果略有差异。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 碰撞到方块的玩家Id | | posX | int | 碰撞方块x坐标 | | posY | int | 碰撞方块y坐标 | | posZ | int | 碰撞方块z坐标 | | blockId | str | 碰撞方块的identifier | | auxValue | int | 碰撞方块的附加值 | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ### 相关接口 ### OpenPlayerHitBlockDetection method in mod.client.component.playerCompClient.PlayerCompClient - 描述 开启碰撞方块的检测,开启后碰撞时会触发OnPlayerHitBlockClientEvent事件 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | precision | float | 碰撞检测精度,参数需要在区间[0, 1) | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 是否设置成功 | - 备注 - 注:该碰撞检测会屏蔽草、空气、火、高草四种方块 - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreatePlayer(entityId) comp.OpenPlayerHitBlockDetection(0.0001) ``` ### ClosePlayerHitBlockDetection method in mod.client.component.playerCompClient.PlayerCompClient - 描述 关闭碰撞方块的检测,关闭后将不会触发OnPlayerHitBlockClientEvent事件 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 是否设置成功 | - 示例 ```python import mod.client.extraClientApi as clientApi comp = clientApi.GetEngineCompFactory().CreatePlayer(entityId) comp.ClosePlayerHitBlockDetection() ``` ## OnPlayerHitBlockServerEvent 服务端 - 描述 触发时机:通过OpenPlayerHitBlockDetection打开方块碰撞检测后,当玩家碰撞到方块时触发该事件。监听玩家着地请使用客户端的OnGroundClientEvent。客户端和服务端分别作碰撞检测,可能两个事件返回的略有差异。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 碰撞到方块的玩家Id | | posX | int | 碰撞方块x坐标 | | posY | int | 碰撞方块y坐标 | | posZ | int | 碰撞方块z坐标 | | blockId | str | 碰撞方块的identifier | | auxValue | int | 碰撞方块的附加值 | | dimensionId | int | 维度id | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ### 相关接口 ### OpenPlayerHitBlockDetection method in mod.server.component.playerCompServer.PlayerCompServer - 描述 开启碰撞方块的检测,开启后碰撞时会触发OnPlayerHitBlockServerEvent事件 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | precision | float | 碰撞检测精度,参数需要在区间[0, 1) | - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 是否设置成功 | - 备注 - 注:该碰撞检测会屏蔽草、空气、火、高草四种方块 - 示例 ```python import mod.server.extraServerApi as serverApi comp = serverApi.GetEngineCompFactory().CreatePlayer(playerId) comp.OpenPlayerHitBlockDetection(0.0001) ``` ### ClosePlayerHitBlockDetection method in mod.server.component.playerCompServer.PlayerCompServer - 描述 关闭碰撞方块的检测,关闭后将不会触发OnPlayerHitBlockServerEvent事件 - 参数 无 - 返回值 |
数据类型
| 说明 | | :--- | :--- | | bool | 是否设置成功 | - 示例 ```python import mod.server.extraServerApi as serverApi comp = serverApi.GetEngineCompFactory().CreatePlayer(playerId) comp.ClosePlayerHitBlockDetection() ``` ## PerspChangeClientEvent 客户端 - 描述 视角切换时会触发的事件 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | from | int | 切换前的视角 | | to | int | 切换后的视角 | - 返回值 无 - 备注 - 视角数字代表含义 0: 第一人称 1: 第三人称背面 2: 第三人称正面 ## PlayerAttackEntityEvent 服务端 - 描述 触发时机:当玩家攻击时触发该事件。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家id | | victimId | str | 受击者id | | damage | int | 伤害值:引擎传过来的值是0 允许脚本层修改为其他数 | | isValid | int | 脚本是否设置伤害值:1表示是;0 表示否 | | cancel | bool | 是否取消该次攻击,默认不取消 | | isKnockBack | bool | 是否支持击退效果,默认支持,当不支持时将屏蔽武器击退附魔效果 | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerCheatSpinAttackServerEvent 仅Apollo可用 - 描述 触发时机:玩家开始/结束快速旋转攻击并且不符合发送快速旋转攻击条件时触发(装备激流附魔的三叉戟、在水中或雨中,且未骑乘) - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家的entityId | | isStart | bool | True时代表开始快速旋转攻击;False时代表结束快速旋转攻击 | - 返回值 无 - 备注 - 假如没有自定义类似三叉戟/激流附魔的物品,那么触发此事件说明此有很大可能此玩家使用了【杀戮光环】外挂 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerDieEvent 服务端 - 描述 触发时机:当玩家死亡时触发该事件。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | id | str | 玩家id | | attacker | str | 伤害来源id | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerDoInteractServerEvent 服务端 - 描述 玩家与有minecraft:interact组件的生物交互时触发该事件,例如玩家手持空桶对牛挤奶、玩家手持打火石点燃苦力怕 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家id | | itemDict | dict | 交互时使用物品的物品信息字典 | | interactEntityId | str | 交互的生物entityId | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerEatFoodServerEvent 服务端 - 描述 触发时机:玩家吃下食物时触发 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家Id | | itemDict | dict | 食物物品的物品信息字典 | | hunger | int | 食物增加的饥饿值,可修改 | | nutrition | float | 食物的营养价值,回复饱和度 = 食物增加的饥饿值 * 食物的营养价值 * 2,饱和度最大不超过当前饥饿值,可修改 | - 返回值 无 - 备注 - 吃蛋糕以及喝牛奶不触发该事件 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerHurtEvent 服务端 - 描述 触发时机:当玩家受伤害前触发该事件。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | id | str | 受击玩家id | | attacker | str | 伤害来源实体id,若没有实体攻击,例如高空坠落,id为-1 | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerInteractServerEvent 服务端 - 描述 触发时机:玩家可以与实体交互时。如果是鼠标控制模式,则当准心对着实体时触发。如果是触屏模式,则触发时机与屏幕下方的交互按钮显示的时机相同。玩家真正与实体发生交互的事件见[PlayerDoInteractServerEvent](#playerdointeractserverevent) - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | cancel | bool | 是否取消触发,默认为False,若设为True,可阻止触发后续的实体交互事件 | | playerId | str | 主动与实体互动的玩家的唯一ID | | itemDict | dict | 当前玩家手持物品的物品信息字典 | | victimId | str | 被动的实体的唯一ID | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerRespawnEvent 服务端 - 描述 触发时机:玩家复活时触发该事件。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | id | str | 玩家id | - 返回值 无 - 备注 - 该事件为玩家点击重生按钮时触发,但是触发时玩家可能尚未完成复活,此时请勿对玩家进行切维度或设置生命值等操作 一般情况下推荐使用PlayerRespawnFinishServerEvent 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerRespawnFinishServerEvent 服务端 - 描述 触发时机:玩家复活完毕时触发 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家id | - 返回值 无 - 备注 - 该事件触发时玩家已重生完毕,可以安全使用切维度等操作 - 通过末地传送门回到主世界时也算重生,同样也会触发该事件 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerSleepServerEvent 服务端 - 描述 玩家使用床睡觉成功 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家id | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerSpinAttackServerEvent 仅Apollo可用 - 描述 触发时机:玩家开始/结束快速旋转攻击时触发 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家的entityId | | isInWaterOrRain | bool | 是否在水中或雨中 | | isRiding | bool | 是否骑乘状态 | | isStart | bool | True时代表开始快速旋转攻击;False时代表结束快速旋转攻击 | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerStopSleepServerEvent 服务端 - 描述 玩家停止睡觉 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家id | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerTeleportEvent 服务端 - 描述 触发时机:当玩家传送时触发该事件,如:玩家使用末影珍珠或tp指令时。 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | id | str | 玩家id | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## PlayerTrySleepServerEvent 服务端 - 描述 玩家尝试使用床睡觉 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家id | | cancel | bool | 是否取消(开发者传入) | - 返回值 无 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## ServerPlayerGetExperienceOrbEvent 服务端 - 描述 触发时机:玩家获取经验球时触发的事件 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | playerId | str | 玩家id | | experienceValue | int | 经验球经验值 | | cancel | bool | 是否取消(开发者传入) | - 返回值 无 - 备注 - `cancel`值设为True时,捡起的经验球不会增加经验值,但是经验球一样会消失。 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件 ## StoreBuySuccServerEvent 服务端 - 描述 触发时机:玩家游戏内购买商品时服务端抛出的事件 - 参数 | 参数名 |
数据类型
| 说明 | | :--- | :--- | :--- | | 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 ``` 在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件