# 状态效果

# AddEffectToEntity

服务端

method in mod.server.component.effectCompServer.EffectComponentServer

  • 描述

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

  • 参数

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

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

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateEffect(entityId)
res = comp.AddEffectToEntity("speed", 30, 2, True)

# GetAllEffects

服务端客户端

# 服务端接口

method in mod.server.component.effectCompServer.EffectComponentServer

  • 描述

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

  • 参数

  • 返回值

    数据类型
    说明
    list(dict)或None 状态效果信息字典的list。无状态效果时返回None
  • 备注

    • 状态效果信息字典 effectDict
      关键字 数据类型 说明
      effectName str 状态效果名称
      duration int 状态效果剩余持续时间,单位秒
      duration_f float 状态效果剩余持续时间(浮点型),单位秒
      amplifier int 状态效果额外等级
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateEffect(entityId)
effectDictList = comp.GetAllEffects()

# 客户端接口

method in mod.client.component.effectCompClient.EffectComponentClient

  • 描述

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

  • 参数

  • 返回值

    数据类型
    说明
    list(dict)或None 状态效果信息字典的list。无状态效果时返回None
  • 备注

    • 状态效果信息字典 effectDict
      关键字 数据类型 说明
      effectName str 状态效果名称
      duration int 状态效果剩余持续时间,单位秒
      duration_f float 状态效果剩余持续时间(浮点型),单位秒
      amplifier int 状态效果额外等级
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateEffect(entityId)
effectDictList = comp.GetAllEffects()

# HasEffect

服务端客户端

# 服务端接口

method in mod.server.component.effectCompServer.EffectComponentServer

  • 描述

    获取实体是否存在当前状态效果

  • 参数

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

    数据类型
    说明
    bool 返回是否存在状态效果
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateEffect(entityId)
effectRes = comp.HasEffect(effectName)

# 客户端接口

method in mod.client.component.effectCompClient.EffectComponentClient

  • 描述

    获取实体是否存在当前状态效果

  • 参数

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

    数据类型
    说明
    bool 返回是否存在状态效果
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateEffect(entityId)
effectRes = comp.HasEffect(effectName)

# RemoveEffectFromEntity

服务端

method in mod.server.component.effectCompServer.EffectComponentServer

  • 描述

    为实体删除指定状态效果

  • 参数

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

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

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateEffect(entityId)
res = comp.RemoveEffectFromEntity("speed")