Skip to content

实体对象EntityObject

概述

  • 继承关系
  • 描述

    EntityObject(实体对象)是对实体对象封装的基类,它为实体提供了面向对象的使用方式。

  • 成员变量

索引

接口
描述
GetPos客户端/服务端获取实体位置
GetFootPos客户端/服务端获取实体脚所在的位置
SetPos服务端设置实体位置
SetFootPos服务端设置实体脚底所在的位置
GetRot客户端/服务端获取实体角度
SetRot客户端/服务端设置实体的头的角度
GetEngineTypeStr客户端/服务端获取实体的类型名称
GetEngineType客户端/服务端获取实体类型
GetModelId客户端获取骨骼模型的Id,主要用于特效绑定骨骼模型
PlayAnim客户端播放骨骼动画
SetAnimSpeed客户端设置某个骨骼动画的播放速度
GetAnimLength客户端获取某个骨骼动画的长度,单位为秒
SetBrightness客户端设置实体的亮度
SetOpacity客户端设置生物模型的透明度
GetHealth服务端获取实体预设的生命值
SetHealth服务端设置实体预设的生命值
GetMaxHealth服务端获取实体预设的最大生命值
SetMaxHealth服务端设置实体预设的最大生命值
GetSpeed服务端获取实体预设的速度
SetSpeed服务端设置实体预设的速度
GetMaxSpeed服务端获取实体预设的最大速度
SetMaxSpeed服务端设置实体预设的最大速度
GetDamage服务端获取实体预设的伤害
SetDamage服务端设置实体预设的伤害
GetMaxDamage服务端获取实体预设的最大伤害
SetMaxDamage服务端设置实体预设的最大伤害
ShowHealth客户端设置是否显示血条,默认为显示
SetAttackTarget服务端设置仇恨目标
ResetAttackTarget服务端清除仇恨目标
GetAttackTarget服务端获取仇恨目标
SetKnockback服务端设置击退的初始速度,需要考虑阻力的影响
SetOwner服务端设置实体的属主
GetOwner服务端获取实体的属主
IsOnFire服务端获取实体是否着火
SetOnFire服务端设置实体着火
GetAttrValue服务端获取属性值,包括生命值,饥饿度,移速
GetAttrMaxValue客户端/服务端获取属性最大值,包括生命值,饥饿度,移速
SetAttrValue服务端设置属性值,包括生命值,饥饿度,移速
SetAttrMaxValue服务端设置属性最大值,包括生命值,饥饿度,移速
IsInLava客户端实体是否在岩浆中
IsOnGround客户端实体是否触地
GetAuxValue客户端/服务端获取射出的弓箭或投掷出的药水的附加值
GetCurrentAirSupply服务端生物当前氧气储备值
GetMaxAirSupply服务端获取生物最大氧气储备值
SetCurrentAirSupply服务端设置生物氧气储备值
SetMaxAirSupply服务端设置生物最大氧气储备值
IsConsumingAirSupply服务端获取生物当前是否在消耗氧气
SetRecoverTotalAirSupplyTime服务端设置恢复最大氧气量的时间,单位秒
GetSourceId服务端获取抛射物发射者实体id
SetCollisionBoxSize服务端设置实体的包围盒
GetCollisionBoxSize服务端获取实体的包围盒
SetBlockControlAi服务端设置屏蔽生物原生AI
GetDimensionId服务端获取实体所在维度
ChangeDimension服务端传送实体
RemoveEffect服务端为实体删除指定状态效果
AddEffect服务端为实体添加指定状态效果,如果添加的状态已存在则有以下集中情况:1、等级大于已存在则更新状态等级及持续时间;2、状态等级相等且剩余时间duration大于已存在则刷新剩余时间;3、等级小于已存在则不做修改;4、粒子效果以新的为准
GetEffects服务端获取实体当前所有状态效果
TriggerCustomEvent服务端触发生物自定义事件
IsAlive客户端/服务端判断生物实体是否存活或非生物实体是否存在
GetGravity服务端获取实体的重力因子,当生物重力因子为0时则应用世界的重力因子
SetGravity服务端设置实体的重力因子,当生物重力因子为0时则应用世界的重力因子
SetHurt服务端对实体造成伤害
SetImmuneDamage服务端设置实体是否免疫伤害(该属性存档)
SetModAttr客户端/服务端设置属性值
GetModAttr客户端/服务端获取属性值
RegisterModAttrUpdateFunc客户端注册属性值变换时的回调函数,当属性变化时会调用该函数
UnRegisterModAttrUpdateFunc客户端反注册属性值变换时的回调函数
GetName服务端获取生物的自定义名称,即使用命名牌或者SetName接口设置的名称
SetName服务端用于设置生物的自定义名称,跟原版命名牌作用相同,玩家和新版流浪商人暂不支持
SetShowName客户端设置生物名字是否按照默认游戏逻辑显示
SetAlwaysShowName客户端设置生物名字是否一直显示,瞄准点不指向生物时也能显示
SetPersistence服务端设置实体是否存盘
SetMotion客户端/服务端设置生物的瞬时移动方向向量,服务端只能对非玩家使用,客户端只能对本地玩家使用
GetMotion客户端/服务端获取生物(含玩家)的瞬时移动方向向量
SetItem服务端设置生物物品
SetCanOtherPlayerRide服务端设置其他玩家是否有权限骑乘
SetControl服务端设置该生物无需装备鞍就可以控制行走跳跃
SetRidePos服务端设置生物骑乘位置
SetNotRender客户端设置是否关闭实体渲染
SetCollidable客户端设置实体是否可碰撞
SetHealthColor客户端设置血条的颜色及背景色, 必须用game组件设置ShowHealthBar时才能显示血条!!
AddAnimation客户端增加生物渲染动画
AddAnimationController客户端增加生物渲染动画控制器
AddScriptAnimate客户端在生物的客户端实体定义(minecraft:client_entity)json中的scripts/animate节点添加动画/动画控制器
AddParticleEffect客户端增加生物特效资源
AddRenderController客户端增加生物渲染控制器
AddRenderMaterial客户端增加生物渲染需要的材质,调用该接口后需要调用RebuildActorRender才会生效
AddSoundEffect客户端增加生物音效资源
SetPushable服务端设置实体是否可推动
SetModel客户端/服务端设置骨骼模型
GetLavaSpeed服务端获取实体预设岩浆里的移速
SetLavaSpeed服务端设置实体预设岩浆里的移速
GetMaxLavaSpeed服务端获取实体预设岩浆里的最大移速
SetMaxLavaSpeed服务端设置实体预设岩浆里的最大移速

GetPos

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体位置

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float,float)位置信息
  • 备注

    • 对于非玩家,获取到的是脚底部位的位置
    • 对于玩家,如果处于行走,站立,游泳,潜行,滑翔状态,获得的位置比脚底位置高1.62;如果处于睡觉状态,获得的位置比最低位置高0.2

GetFootPos

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体脚所在的位置

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float,float)位置信息

SetPos

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体位置

  • 参数

    参数名
    数据类型
    说明
    postuple(int,int,int)xyz值
  • 返回值

    数据类型
    说明
    bool设置结果
  • 备注

    • 行为与使用tp命令一致,实体会瞬移到目标点
    • 对于所有类型的实体都是设置脚底位置,与SetFootPos等价
    • 在床上时调用该接口会返回False
  • 示例

python
self.SetPos((1,2,3))

SetFootPos

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体脚底所在的位置

  • 参数

    参数名
    数据类型
    说明
    postuple(float,float,float)实体脚所在的位置
  • 返回值

    数据类型
    说明
    bool是否设置成功
  • 备注

    • 行为与使用tp命令一致,实体会瞬移到目标点
    • 在床上时调用该接口会返回False
  • 示例

python
self.SetFootPos((0, 4, 0))

GetRot

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体角度

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float)(上下角度,左右角度)单位是角度而不是弧度

SetRot

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体的头的角度

  • 参数

    参数名
    数据类型
    说明
    rottuple(float,float)俯仰角度及绕竖直方向的角度,单位是角度
  • 返回值

    数据类型
    说明
    bool设置是否成功
  • 备注

    • 建议只用来设置本地玩家。如果设置其他生物,会被生物自身行为覆盖。
  • 示例

python
# 设为向上仰视45度,并朝向世界z轴正方向
self.SetRot((-45, 0))

GetEngineTypeStr

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体的类型名称

  • 参数

  • 返回值

    数据类型
    说明
    str实体类型名称,如minecraft:husk
  • 示例

python
entity = self.GetEntityObject(entityId)
engineType = entity.GetEngineTypeStr()

GetEngineType

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体类型

  • 参数

  • 返回值

    数据类型
    说明
    int详见EntityType枚举
  • 示例

python
entity = self.GetEntityObject(entityId)
# 以判断是否是 Mob 为例,如果要判断是否为弹射物,找到对应的类型Projectile修改即可
if entity.GetEngineType() & self.GetMinecraftEnum().EntityType.Mob == self.GetMinecraftEnum().EntityType.Mob:
    logger.info("{} is Mod".format(self.GetEngineTypeStr(entityId)))

GetModelId

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取骨骼模型的Id,主要用于特效绑定骨骼模型

  • 参数

  • 返回值

    数据类型
    说明
    int当前骨骼模型实例的id

PlayAnim

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    播放骨骼动画

  • 参数

    参数名
    数据类型
    说明
    aniNamestr动画名称
    isLoopbool是否循环播放
  • 返回值

    数据类型
    说明
    bool设置是否成功
  • 示例

python
self.PlayAnim("run", True)

SetAnimSpeed

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置某个骨骼动画的播放速度

  • 参数

    参数名
    数据类型
    说明
    aniNamestr骨骼动画名称
    speedfloat速度倍率
  • 返回值

    数据类型
    说明
    bool设置是否成功
  • 示例

python
# run动作三倍速
self.SetAnimSpeed("run", 3.0)

GetAnimLength

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取某个骨骼动画的长度,单位为秒

  • 参数

    参数名
    数据类型
    说明
    aniNamestr骨骼动画名称
  • 返回值

    数据类型
    说明
    float骨骼动画长度
  • 示例

python
# 获取run动画的长度
animLength = self.GetAnimLength('run')

SetBrightness

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体的亮度

  • 参数

    参数名
    数据类型
    说明
    brightnessfloat0:纯黑
    1:正常亮度
    1-14:较亮甚至纯白
    超过14:通常为纯白,即使数值改变也没有明显变化
  • 返回值

    数据类型
    说明
    boolTrue:设置成功 False:设置失败
  • 备注

    • 目前只支持修改替换了骨骼模型的实体亮度,使用游戏原生模型的实体暂不予支持。
  • 示例

python
success = self.SetBrightness(0.5)

SetOpacity

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置生物模型的透明度

  • 参数

    参数名
    数据类型
    说明
    opacityfloat透明度值,取值范围为[0, 1],值越小越透明
  • 返回值

  • 示例

python
self.SetOpacity(0.2)

GetHealth

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体预设的生命值

  • 参数

  • 返回值

    数据类型
    说明
    float生命值

SetHealth

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体预设的生命值

  • 参数

    参数名
    数据类型
    说明
    hpfloat生命值
  • 返回值

GetMaxHealth

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体预设的最大生命值

  • 参数

  • 返回值

    数据类型
    说明
    float生命值

SetMaxHealth

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体预设的最大生命值

  • 参数

    参数名
    数据类型
    说明
    hpfloat生命值
  • 返回值

GetSpeed

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体预设的速度

  • 参数

  • 返回值

    数据类型
    说明
    float速度

SetSpeed

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体预设的速度

  • 参数

    参数名
    数据类型
    说明
    speedfloat速度
  • 返回值

GetMaxSpeed

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体预设的最大速度

  • 参数

  • 返回值

    数据类型
    说明
    float速度

SetMaxSpeed

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体预设的最大速度

  • 参数

    参数名
    数据类型
    说明
    speedfloat速度
  • 返回值

GetDamage

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体预设的伤害

  • 参数

  • 返回值

    数据类型
    说明
    float伤害

SetDamage

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体预设的伤害

  • 参数

    参数名
    数据类型
    说明
    hpfloat伤害
  • 返回值

GetMaxDamage

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体预设的最大伤害

  • 参数

  • 返回值

    数据类型
    说明
    float伤害

SetMaxDamage

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体预设的最大伤害

  • 参数

    参数名
    数据类型
    说明
    damagefloat伤害
  • 返回值

ShowHealth

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置是否显示血条,默认为显示

  • 参数

    参数名
    数据类型
    说明
    showbool设置是否显示
  • 返回值

  • 备注

    • 必须先设置ShowHealthBar
  • 示例

python
# 设置该entity不显示血条
self.ShowHealth(False)

SetAttackTarget

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置仇恨目标

  • 参数

    参数名
    数据类型
    说明
    targetIdstr目标实体id
  • 返回值

    数据类型
    说明
    bool设置结果
  • 示例

python
self.SetAttackTarget(targetId)

ResetAttackTarget

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    清除仇恨目标

  • 参数

  • 返回值

    数据类型
    说明
    bool设置结果
  • 示例

python
self.ResetAttackTarget()

GetAttackTarget

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取仇恨目标

  • 参数

  • 返回值

    数据类型
    说明
    str仇恨目标的实体id
  • 示例

python
self.GetAttackTarget()

SetKnockback

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置击退的初始速度,需要考虑阻力的影响

  • 参数

    参数名
    数据类型
    说明
    xdfloatx轴方向,用來控制角度
    zdfloatz轴方向,用來控制角度
    powerfloat用来控制水平方向的初速度
    heightfloat竖直方向的初速度
    heightCapfloat向上速度阈值,当实体本身已经有向上的速度时需要考虑这个值,用来确保最终向上的速度不会超过heightCap
  • 返回值

    数据类型
    说明
    None无返回值
  • 示例

python
self.SetKnockback(0.1, 0.1, 1.0, 1.0, 1.0)

SetOwner

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体的属主

  • 参数

    参数名
    数据类型
    说明
    ownerIdstr属主实体id,为None时设置实体的属主为空
  • 返回值

    数据类型
    说明
    bool设置是否成功,True表示设置成功
  • 示例

python
result = self.SetOwner(ownerId)

GetOwner

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体的属主

  • 参数

  • 返回值

    数据类型
    说明
    str实体属主id
  • 示例

python
ownerId = self.GetOwner()

IsOnFire

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体是否着火

  • 参数

  • 返回值

    数据类型
    说明
    bool是否着火
  • 示例

python
isOnFire = self.IsEntityOnFire(entityId)

SetOnFire

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体着火

  • 参数

    参数名
    数据类型
    说明
    secondsint着火时间(单位:秒)
    burn_damageint着火状态下每秒扣的血量,不传的话默认是1
  • 返回值

    数据类型
    说明
    bool是否设置成功
  • 备注

    • 在水中或者雨中不会生效,着火时间受生物装备、生物的状态影响。burn_damage取值范围是0~1000,小于0将取0,大于1000将取1000
  • 示例

python
self.SetEntityOnFire(entityId, 1, 2)

GetAttrValue

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取属性值,包括生命值,饥饿度,移速

  • 参数

    参数名
    数据类型
    说明
    attrTypeintAttrType枚举
  • 返回值

    数据类型
    说明
    float属性结果
  • 示例

python
self.GetAttrValue(self.GetMinecraftEnum().AttrType.HEALTH)

GetAttrMaxValue

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取属性最大值,包括生命值,饥饿度,移速

  • 参数

    参数名
    数据类型
    说明
    attrTypeintAttrType枚举
  • 返回值

    数据类型
    说明
    float属性值结果
  • 示例

python
self.GetAttrMaxValue(self.GetMinecraftEnum().AttrType.HEALTH)

SetAttrValue

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置属性值,包括生命值,饥饿度,移速

  • 参数

    参数名
    数据类型
    说明
    attrTypeintAttrType枚举
    valuefloat属性值
  • 返回值

    数据类型
    说明
    bool设置结果
  • 备注

    • 设置接口暂不支持 ABSORPTION
  • 示例

python
self.SetAttrValue(self.GetMinecraftEnum().AttrType.HEALTH, 20)

SetAttrMaxValue

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置属性最大值,包括生命值,饥饿度,移速

  • 参数

    参数名
    数据类型
    说明
    attrTypeintAttrType枚举
    valuefloat属性值
  • 返回值

    数据类型
    说明
    bool设置结果
  • 备注

    • 设置的最大饱和度不能超过当前的饥饿值; 食用食物后,最大饱和度会被原版游戏机制修改
    • 设置接口暂不支持 ABSORPTION
  • 示例

python
self.SetAttrMaxValue(serverApi.GetMinecraftEnum().AttrType.SPEED, 0.2)

IsInLava

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    实体是否在岩浆中

  • 参数

  • 返回值

    数据类型
    说明
    bool是否在岩浆中,True为在岩浆中,False为不在岩浆中
  • 备注

    • 只能获取到本地客户端已加载的实体是否在岩浆中,若实体在其他维度或未加载(距离本地玩家太远),将获取失败

IsOnGround

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    实体是否触地

  • 参数

  • 返回值

    数据类型
    说明
    bool是否触地,True为触地,False为不触地
  • 备注

    • 客户端实体刚创建时引擎计算还没完成,此时获取该实体是否着地将返回默认值True,需要延迟一帧进行获取才能获取到正确的数据
    • 生物处于骑乘状态时,如玩家骑在猪身上,也视作触地
    • 只能获取到本地客户端已加载的实体是否触地,若实体在其他维度或未加载(距离本地玩家太远),将获取失败

GetAuxValue

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取射出的弓箭或投掷出的药水的附加值

  • 参数

  • 返回值

    数据类型
    说明
    intauxValue
  • 示例

python
self.GetAuxValue()

GetCurrentAirSupply

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    生物当前氧气储备值

  • 参数

  • 返回值

    数据类型
    说明
    int生物当前氧气储备值
  • 备注

    • 注意:该值返回的是当前氧气储备的支持的逻辑帧数 = 氧气储备值 * 逻辑帧数(每秒20帧数)

GetMaxAirSupply

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取生物最大氧气储备值

  • 参数

  • 返回值

    数据类型
    说明
    int最大氧气储备值
  • 备注

    • 注意:该值返回的是最大氧气储备的支持的逻辑帧数 = 氧气储备值 * 逻辑帧数(每秒20帧数)

SetCurrentAirSupply

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置生物氧气储备值

  • 参数

    参数名
    数据类型
    说明
    dataint设置生物当前氧气值
  • 返回值

    数据类型
    说明
    bool设置结果
  • 备注

    • 注意:该值设置的是当前氧气储备的支持的逻辑帧数 = 氧气储备值 * 逻辑帧数(每秒20帧数)
  • 示例

python
self.SetCurrentAirSupply(300)

SetMaxAirSupply

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置生物最大氧气储备值

  • 参数

    参数名
    数据类型
    说明
    dataint设置生物最大氧气值
  • 返回值

    数据类型
    说明
    bool设置结果
  • 备注

    • 注意:该值设置的是最大氧气储备的支持的逻辑帧数 = 氧气储备值 * 逻辑帧数(每秒20帧数)
  • 示例

python
self.SetMaxAirSupply(400)

IsConsumingAirSupply

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取生物当前是否在消耗氧气

  • 参数

  • 返回值

    数据类型
    说明
    bool是否消耗氧气

SetRecoverTotalAirSupplyTime

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置恢复最大氧气量的时间,单位秒

  • 参数

    参数名
    数据类型
    说明
    timeSecfloat恢复生物最大氧气值
  • 返回值

    数据类型
    说明
    bool是否设置成功
  • 备注

    • 注意:当设置的最大氧气值小于(timeSec*10)时,生物每帧恢复氧气量的值为0
  • 示例

python
self.SetRecoverTotalAirSupplyTime(10)

GetSourceId

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取抛射物发射者实体id

  • 参数

  • 返回值

    数据类型
    说明
    str抛射物发射者实体id

SetCollisionBoxSize

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体的包围盒

  • 参数

    参数名
    数据类型
    说明
    sizetuple(float,float)第一位表示宽度和长度,第二位表示高度
  • 返回值

    数据类型
    说明
    bool设置结果
  • 备注

    • 对新生产的实体需要经过5帧之后再设置包围盒的大小才会生效
  • 示例

python
self.SetCollisionBoxSize((2,3))

GetCollisionBoxSize

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体的包围盒

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float)包围盒大小

SetBlockControlAi

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置屏蔽生物原生AI

  • 参数

    参数名
    数据类型
    说明
    isBlockbool是否保留AI,False为屏蔽
  • 返回值

    数据类型
    说明
    bool设置结果
  • 备注

    • 屏蔽AI后的生物无法行动,不受重力且不会被推动。但是可以受到伤害,也可以被玩家交互(例如马被骑或村民被交易)
  • 示例

python
self.SetBlockControlAi(False)

GetDimensionId

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体所在维度

  • 参数

  • 返回值

    数据类型
    说明
    int维度id,0-主世界; 1-下界; 2-末地; 或其他自定义维度
  • 示例

python
self.GetDimensionId()

ChangeDimension

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    传送实体

  • 参数

    参数名
    数据类型
    说明
    dimensionIdint维度id,0-主世界; 1-下界; 2-末地; 或其他自定义维度
    postuple(int,int,int)传送的坐标,假如输入None,那么就优先选择目标维度的传送门作为目的地,其次使用维度坐标映射逻辑确定目的地
  • 返回值

    数据类型
    说明
    bool是否设置成功
  • 示例

python
self.ChangeDimension(0, (0,4,0))

RemoveEffect

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    为实体删除指定状态效果

  • 参数

    参数名
    数据类型
    说明
    effectNamestr状态效果名称字符串,包括自定义状态效果和原版状态效果,原版状态效果可在wiki查询
  • 返回值

    数据类型
    说明
    boolTrue表示删除成功
  • 示例

python
res = self.RemoveEffect(entityId, "speed")

AddEffect

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    为实体添加指定状态效果,如果添加的状态已存在则有以下集中情况:1、等级大于已存在则更新状态等级及持续时间;2、状态等级相等且剩余时间duration大于已存在则刷新剩余时间;3、等级小于已存在则不做修改;4、粒子效果以新的为准

  • 参数

    参数名
    数据类型
    说明
    effectNamestr状态效果名称字符串,包括自定义状态效果和原版状态效果,原版状态效果可在wiki查询
    durationint状态效果持续时间,单位秒
    amplifierint状态效果的额外等级。必须在0至255之间(含)。若未指定,默认为0。注意,状态效果的第一级(如生命恢复 I)对应为0,因此第二级状态效果,如生命回复 II,应指定强度为1。部分效果及自定义状态效果没有强度之分,如夜视
    showParticlesbool是否显示粒子效果,True显示,False不显示
  • 返回值

    数据类型
    说明
    boolTrue表示设置成功
  • 示例

python
res = self.AddEffect("speed", 30, 2, True)

GetEffects

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体当前所有状态效果

  • 参数

  • 返回值

    数据类型
    说明
    list(dict)状态效果信息字典的list
  • 备注

    • 状态效果信息字典 effectDict
      关键字数据类型说明
      effectNamestr状态效果名称
      durationint状态效果剩余持续时间,单位秒
      amplifierint状态效果额外等级
  • 示例

python
effectDictList = self.GetEffects()

TriggerCustomEvent

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    触发生物自定义事件

  • 参数

    参数名
    数据类型
    说明
    entityIdstr生物Id
    eventNamestr事件名称
  • 返回值

    数据类型
    说明
    bool设置结果
  • 示例

python
eventName = "netease:custom_exploading"
self.TriggerCustomEvent(eventName)

IsAlive

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    判断生物实体是否存活或非生物实体是否存在

  • 参数

  • 返回值

    数据类型
    说明
    boolfalse表示生物实体已死亡或非生物实体已销毁,true表示生物实体存活或非生物实体存在
  • 备注

    • 注意,如果检测的实体所在的区块被卸载,则该接口返回False。因此,需要注意实体所在的区块是否被加载。
    • 区块卸载:游戏只会加载玩家周围的区块,玩家移动到别的区域时,原来所在区域的区块会被卸载,参考区块介绍
  • 示例

python
alive = self.IsEntityAlive()

GetGravity

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体的重力因子,当生物重力因子为0时则应用世界的重力因子

  • 参数

  • 返回值

    数据类型
    说明
    float重力因子

SetGravity

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体的重力因子,当生物重力因子为0时则应用世界的重力因子

  • 参数

    参数名
    数据类型
    说明
    gravityfloat负数,表示每帧向下的速度
  • 返回值

    数据类型
    说明
    bool设置结果
  • 示例

python
self.SetGravity(-0.08)

SetHurt

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    对实体造成伤害

  • 参数

    参数名
    数据类型
    说明
    damageint伤害值
    causestr伤害来源,详见Minecraft枚举值文档的ActorDamageCause枚举
    attackerIdstr伤害来源的实体id,默认为None
    childAttackerIdstr伤害来源的子实体id,默认为None,比如玩家使用抛射物对实体造成伤害,该值应为抛射物Id
    knockedbool实体是否被击退,默认值为True
  • 返回值

    数据类型
    说明
    bool是否设置成功

SetImmuneDamage

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体是否免疫伤害(该属性存档)

  • 参数

    参数名
    数据类型
    说明
    immunebool是否免疫伤害
  • 返回值

    数据类型
    说明
    bool是否设置成功
  • 示例

python
self.SetImmuneDamage(True)

SetModAttr

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置属性值

  • 参数

    参数名
    数据类型
    说明
    paramNamestr属性名称,str的名称建议以mod命名为前缀,避免多个mod之间冲突
    paramValueany属性值,支持python基础数据
  • 返回值

  • 备注

    • 注意:tuple、set在同步时会转成list。建议优先使用数字和字符串等非集合类型。
  • 示例

python
self.SetModAttr('health', 1)
self.SetModAttr('testDict', {'key':'value'})

GetModAttr

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取属性值

  • 参数

    参数名
    数据类型
    说明
    paramNamestr属性名称,str的名称建议以mod命名为前缀,避免多个mod之间冲突
    defaultValueany属性默认值,属性不存在时返回该默认值,此时属性值依然未设置
  • 返回值

    数据类型
    说明
    any返回属性值
  • 备注

    • defaultValue不传的时候默认为None
  • 示例

python
# 如果直接修改GetAttr出来的集合类型,需要重新调用一遍SetAttr确保有进行更新
testDict = self.GetModAttr('testDict')
testDict['key'] = 'newValue'
self.SetModAttr('testDict', testDict)

RegisterModAttrUpdateFunc

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    注册属性值变换时的回调函数,当属性变化时会调用该函数

  • 参数

    参数名
    数据类型
    说明
    paramNamestr监听的属性名称
    funcfunction监听的回调函数
  • 返回值

  • 备注

    • 回调函数需要接受一个参数,参数是dict,具体数据示例:
  • 示例

python
# 这个entityId传的是所需要监听的对象的Id
self.RegisterModAttrUpdateFunc('health', self.jumpingText)
# 当脚本层的health属性变化时则会调用self.jumpingText
def jumpingText(self, data):
    entityId = data['entityId']
    oldValue = data['oldValue']
    newValue = data['newValue']

UnRegisterModAttrUpdateFunc

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    反注册属性值变换时的回调函数

  • 参数

    参数名
    数据类型
    说明
    paramNamestr监听的属性名称
    funcfunction监听的回调函数
  • 返回值

  • 备注

    • 需要传注册时的同一个函数作为参数
  • 示例

python
self.UnRegisterModAttrUpdateFunc('health', self.jumpingText)

GetName

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取生物的自定义名称,即使用命名牌或者SetName接口设置的名称

  • 参数

  • 返回值

    数据类型
    说明
    str生物的自定义名称

SetName

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    用于设置生物的自定义名称,跟原版命名牌作用相同,玩家和新版流浪商人暂不支持

  • 参数

    参数名
    数据类型
    说明
    namestr名称
  • 返回值

    数据类型
    说明
    bool设置结果
  • 示例

python
self.SetName("new Name")

SetShowName

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置生物名字是否按照默认游戏逻辑显示

  • 参数

    参数名
    数据类型
    说明
    showboolTrue为显示
  • 返回值

    数据类型
    说明
    bool返回是否设置成功
  • 备注

    • 当设置为True时,生物的名字显示遵循游戏默认的渲染逻辑,即普通生物需要中心点指向生物才显示名字,玩家则是会一直显示名字
  • 示例

python
# 不显示头上的名字
self.SetShowName(False)

SetAlwaysShowName

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置生物名字是否一直显示,瞄准点不指向生物时也能显示

  • 参数

    参数名
    数据类型
    说明
    showboolTrue为显示
  • 返回值

    数据类型
    说明
    bool返回是否设置成功
  • 备注

    • 该接口只对普通生物生效,对玩家设置不起作用
  • 示例

python
# 不显示头上的名字
self.SetAlwaysShowName(False)

SetPersistence

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体是否存盘

  • 参数

    参数名
    数据类型
    说明
    isPersistentboolTrue为存盘,False为不存盘
  • 返回值

  • 备注

    • 实体默认都会存盘。设置为不存盘的实体,在区块卸载与退出游戏时不会存档。
  • 示例

python
self.SetPersistence(True)

SetMotion

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置生物的瞬时移动方向向量,服务端只能对非玩家使用,客户端只能对本地玩家使用

  • 参数

    参数名
    数据类型
    说明
    motiontuple(float,float,float)世界坐标系下的向量,该方向为世界坐标系下的向量,以x,z,y三个轴的正方向为正值,可以通过当前生物的rot组件判断目前玩家面向的方向,可在开发模式下打开F3观察数值变化。
  • 返回值

    数据类型
    说明
    bool设置是否成功
  • 示例

python
# 使生物向准星的方向突进一段距离
rot = self.GetEntityRot(entityId)
x, y, z = self.GetDirFromRot(rot)
self.SetMotion((x * 5, y * 5, z * 5))
# rot 和 世界坐标系关系
#           ^ x -90°
#           |
# 180°/-180  ----------> z 0°
#           | 90°

GetMotion

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取生物(含玩家)的瞬时移动方向向量

  • 参数

  • 返回值

    数据类型
    说明
    tuple(int,int,int)瞬时移动方向向量,异常时返回None

SetItem

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置生物物品

  • 参数

    参数名
    数据类型
    说明
    posTypeintItemPosType枚举
    itemDictdict生物身上不同位置的物品信息字典列表,如果传入None将清除当前位置的物品/装备
    slotPosint容器槽位
  • 返回值

    数据类型
    说明
    bool设置成功返回True
  • 示例

python
itemDict = {
    'itemName': 'minecraft:bow',
    'count': 1,
    'enchantData': [(serverApi.GetMinecraftEnum().EnchantType.BowDamage, 1),],
    'auxValue': 0,
    'customTips':'§c new item §r',
    'extraId': 'abc',
    'userData': {},
}
self.SetItem(serverApi.GetMinecraftEnum().ItemPosType.OFFHAND, None, 0)

SetCanOtherPlayerRide

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置其他玩家是否有权限骑乘

  • 参数

    参数名
    数据类型
    说明
    canRidebool是否控制
  • 返回值

    数据类型
    说明
    bool设置结果
  • 示例

python
self.SetCanOtherPlayerRide(entityId,False)

SetControl

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置该生物无需装备鞍就可以控制行走跳跃

  • 参数

    参数名
    数据类型
    说明
    isControlbool是否控制
  • 返回值

    数据类型
    说明
    bool设置结果
  • 示例

python
self.SetControl(entityId,False)

SetRidePos

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置生物骑乘位置

  • 参数

    参数名
    数据类型
    说明
    postuple(float,float,float)骑乘时挂接点
  • 返回值

    数据类型
    说明
    bool设置结果
  • 示例

python
self.SetRidePos(entityId,(1, 1, 1))

SetNotRender

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置是否关闭实体渲染

  • 参数

    参数名
    数据类型
    说明
    notRenderboolTrue表示不渲染该实体
  • 返回值

    数据类型
    说明
    bool设置是否成功
  • 示例

python
self.SetNotRender(True) # 停止渲染该实体

SetCollidable

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体是否可碰撞

  • 参数

    参数名
    数据类型
    说明
    isCollidableboolFalse:不可碰撞 True:可碰撞
  • 返回值

    数据类型
    说明
    boolTrue表示设置成功
  • 示例

python
self.SetCollidable(True) # 设为可碰撞

SetHealthColor

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置血条的颜色及背景色, 必须用game组件设置ShowHealthBar时才能显示血条!!

  • 参数

    参数名
    数据类型
    说明
    fronttuple(float,float,float,float)血条颜色的RGBA值,范围0-1
    backtuple(float,float,float,float)背景颜色的RGBA值,范围0-1
  • 返回值

    数据类型
    说明
    None无返回值
  • 示例

python
self.SetHealthColor((0, 0, 0, 1), (1, 1, 1, 1))

AddAnimation

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    增加生物渲染动画

  • 参数

    参数名
    数据类型
    说明
    animationKeystr动画键
    animationNamestr动画名称
  • 返回值

    数据类型
    说明
    bool是否成功
  • 示例

python
self.AddAnimation("custom_move", "animation.pig.custom_move")

AddAnimationController

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    增加生物渲染动画控制器

  • 参数

    参数名
    数据类型
    说明
    animationControllerKeystr动画控制器键
    animationControllerNamestr动画控制器名称
  • 返回值

    数据类型
    说明
    bool是否成功
  • 示例

python
self.AddAnimationController("controller__use_item_progress", "controller.animation.humanoid.use_item_progress")

AddScriptAnimate

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    在生物的客户端实体定义(minecraft:client_entity)json中的scripts/animate节点添加动画/动画控制器

  • 参数

    参数名
    数据类型
    说明
    animateNamestr动画/动画控制器名称,如look_at_targe
    conditionstr动画/动画控制器控制表达式,默认为空,如query.mod.index > 0
    autoReplacebool是否覆盖已存在的动画/动画控制器,默认值为False
  • 返回值

    数据类型
    说明
    bool是否成功
  • 示例

python
self.AddScriptAnimate("animation_controller_short_name", "query.mod.index > 0")

AddParticleEffect

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    增加生物特效资源

  • 参数

    参数名
    数据类型
    说明
    effectKeystr特效资源Key
    effectNamestr特效资源名称
  • 返回值

    数据类型
    说明
    bool是否成功
  • 示例

python
self.AddParticleEffect("nectar_dripping", "minecraft:nectar_drip_particle")

AddRenderController

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    增加生物渲染控制器

  • 参数

    参数名
    数据类型
    说明
    renderControllerNamestr渲染控制器名称
    conditionstr渲染控制器条件
  • 返回值

    数据类型
    说明
    bool添加是否成功
  • 示例

python
self.AddRenderController('custom_render_controller_name', 'query.mod.condition')

AddRenderMaterial

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    增加生物渲染需要的材质,调用该接口后需要调用RebuildActorRender才会生效

  • 参数

    参数名
    数据类型
    说明
    materialKeystr材质key
    materialNamestr材质名称
  • 返回值

    数据类型
    说明
    bool添加是否成功
  • 示例

python
self.AddRenderMaterial('custom_material_key', 'custom_material_name')

AddSoundEffect

客户端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    增加生物音效资源

  • 参数

    参数名
    数据类型
    说明
    soundKeystr音效资源Key
    soundNamestr音效资源名称
  • 返回值

    数据类型
    说明
    bool添加是否成功
  • 示例

python
self.AddSoundEffect("sound_thunder", "ambient.weather.thunder")

SetPushable

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体是否可推动

  • 参数

    参数名
    数据类型
    说明
    isPushableboolFalse:不可推动 True:可推动
  • 返回值

    数据类型
    说明
    boolTrue表示设置成功
  • 示例

python
self.SetPushable(True)

SetModel

客户端/服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置骨骼模型

  • 参数

    参数名
    数据类型
    说明
    modelNamestr模型名称,值为""时重置模型
  • 返回值

    数据类型
    说明
    bool设置结果
  • 备注

    • 要恢复原版模型请使用ResetModel接口
    • 使用客户端组件更换模型不会同步及存盘,仅是纯客户端表现,如需要同步及存盘,请使用服务器的model组件
  • 示例

python
self.SetModel("xuenv")

GetLavaSpeed

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体预设岩浆里的移速

  • 参数

  • 返回值

    数据类型
    说明
    float岩浆里的移速

SetLavaSpeed

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体预设岩浆里的移速

  • 参数

    参数名
    数据类型
    说明
    valuefloat岩浆里的移速
  • 返回值

GetMaxLavaSpeed

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    获取实体预设岩浆里的最大移速

  • 参数

  • 返回值

    数据类型
    说明
    float岩浆里的最大移速

SetMaxLavaSpeed

服务端

method in Preset.Model.Entity.EntityObject.EntityObject

  • 描述

    设置实体预设岩浆里的最大移速

  • 参数

    参数名
    数据类型
    说明
    valuefloat岩浆里的最大移速
  • 返回值