• API(eca&lua)
  • Lua
  • API
  • Buff

Buff

魔法效果

add_aura_range

(method) Buff:add_aura_range(range: number)

增加魔法效果光环影响范围

@param range — 影响范围

add_cycle_time

(method) Buff:add_cycle_time(time: number)

增加魔法效果循环周期

@param time — 变化时间

add_shield

(method) Buff:add_shield(value: number)

增加护盾值

@param value — 护盾值

add_stack

(method) Buff:add_stack(stack: integer)

增加堆叠层数

@param stack — 层数

add_time

(method) Buff:add_time(time: number)

增加剩余持续时间

@param time — 剩余持续时间

custom_event_manager

EventManager?

event

fun(self: Buff, event: "效果-获得", callback: fun(trg: Trigger, data: EventParam.效果-获得)):Trigger

event_dispatch

(method) CustomEvent:event_dispatch(event_name: string, ...any)
  -> any
  2. any
  3. any
  4. any

发起自定义事件(回执模式),与通知模式不同,允许插入结算。 可以接受到事件的返回值,有多处注册事件时会按照注册顺序调用, 当任何事件回调返回了非 nil 的值后,后续触发器将不再调用。

Obj:event_on('获取', function (trigger,...)
    print('获取1')
    return 1
end)
Obj:event_on('获取', function (trigger,...)
    print('获取2')
    return 2
end)
 
local result = Obj:event_dispatch('获取')
 
print('结果为:', result)

以上代码会打印:

获取1
结果为:    1

event_dispatch_with_args

(method) CustomEvent:event_dispatch_with_args(event_name: string, args: any, ...any)
  -> any
  2. any
  3. any
  4. any

发起带事件参数的自定义事件(回执模式)

event_notify

(method) CustomEvent:event_notify(event_name: string, ...any)

发起自定义事件(通知模式),同一个对象身上只会有一个正在执行的事件, 当发生插入结算时,后面的事件会进入队列

Obj:event_on('获得', function ()
    print('触发获得')
    print('发起移除前')
    Obj:event_notify('移除') -- 实际业务中,可能你获得的buff把你自己杀死了,而死亡会清除buff
    print('发起移除后')
end)
 
Obj:event_on('移除', function ()
    print('触发移除')
end)
 
Obj:event_notify('获得')

这段代码会打印:

触发获得
发起移除前
发起移除后
触发移除

event_notify_with_args

(method) CustomEvent:event_notify_with_args(event_name: string, args: any[], ...any)

发起带事件参数的自定义事件(通知模式)

event_on

(method) CustomEvent:event_on(...any)
  -> Trigger

注册自定义事件,当触发时,会执行回调函数。

Obj:event_on('输入', function (trigger, ...)
    print('触发了输入事件', ...)
end)
 
Obj:event_notify('输入', '123', '456')

以上会打印:

触发了输入事件 123 456

注册时可以指定事件的参数:

Obj:event_on('输入', {'123'}, function (trigger, ...)
    print('触发了输入事件', ...)
end)
 
Obj:event_notify('输入', 1) -- 不能触发事件
Obj:event_notify_with_args('输入', {'123'}, 2) -- 可以触发事件
Obj:event_notify_with_args('输入', {'456'}, 3) -- 不能触发事件
Obj:event_notify_with_args('输入', {'123', '666'}, 4) -- 可以触发事件

get_ability

(method) Buff:get_ability()
  -> ability: Ability|nil

获得关联技能

@return ability — 投射物或魔法效果的关联技能

get_aura

(method) Buff:get_aura()
  -> aura: Buff?

获取所属光环

@return aura — 所属光环

get_buff_aura_effect_key

(method) Buff:get_buff_aura_effect_key()
  -> type: py.ModifierKey

获取魔法效果的光环效果类型ID

@return type — 光环效果类型ID

get_buff_aura_range

(method) Buff:get_buff_aura_range()
  -> range: number

获取魔法效果的光环范围

@return range — 光环范围

get_buff_effect_type

(method) Buff:get_buff_effect_type()
  -> type: y3.Const.EffectType

获取魔法效果影响类型

@return type — 魔法效果影响类型

get_buff_type

(method) Buff:get_buff_type()
  -> type: y3.Const.ModifierType

获取魔法效果类型

@return type — 魔法效果类型

get_by_handle

function Buff.get_by_handle(py_buff: py.ModifierEntity)
  -> Buff?

通过py层的魔法效果实例获取lua层的魔法效果实例

@param py_buff — py层的魔法效果实例

@return — 返回在lua层初始化后的lua层魔法效果实例

get_by_id

function Buff.get_by_id(id: integer)
  -> Buff

get_custom_event_manager

(method) CustomEvent:get_custom_event_manager()
  -> EventManager?

get_cycle_time

(method) Buff:get_cycle_time()
  -> time: number

获取魔法效果循环周期

@return time — 循环周期

get_description

(method) Buff:get_description()
  -> description: string

获取魔法效果对象的描述

@return description — 描述

get_description_by_key

function Buff.get_description_by_key(buff_key: py.ModifierKey)
  -> description: string

获取魔法效果类型的描述

@param buff_key — 类型

@return description — 描述

get_icon_by_key

function Buff.get_icon_by_key(buff_key: py.ModifierKey)
  -> py.Texture

获取魔法效果类型的icon图标的图片

@param buff_key — 类型

@return — 图片id

get_key

(method) Buff:get_key()
  -> buff_key: py.ModifierKey

获得魔法效果的类别

@return buff_key — 类别

get_level

(method) Buff:get_level()
  -> level: integer

获取等级

@return level — 等级

get_max_stack

(method) Buff:get_max_stack()
  -> stack: integer

获取魔法效果的最大堆叠层数

@return stack — 层数

get_name

(method) Buff:get_name()
  -> name: string

获取魔法效果对象的名称

@return name — 名字

get_owner

(method) Buff:get_owner()
  -> owner: Unit?

获取魔法效果的携带者

@return owner — 携带者

get_passed_time

(method) Buff:get_passed_time()
  -> duration: number

魔法效果的已持续时间

@return duration — 持续时间

get_shield

(method) Buff:get_shield()
  -> shield: number

获取魔法效果的护盾

@return shield — 护盾值

get_source

(method) Buff:get_source()
  -> provider: Unit?

获取魔法效果的施加者

@return provider — 施加者

get_stack

(method) Buff:get_stack()
  -> stack: integer

获取魔法效果的堆叠层数

@return stack — 层数

get_time

(method) Buff:get_time()
  -> time: number

获取魔法效果的剩余持续时间

@return time — 剩余持续时间

handle

py.ModifierEntity

py层的魔法效果对象

has_tag

(method) Buff:has_tag(tag: string)
  -> boolean

是否具有标签

@param tag — 标签

id

integer

is_destroyed

(method) Buff:is_destroyed()
  -> boolean|unknown

is_exist

(method) Buff:is_exist()
  -> is_exist: boolean

是否存在

@return is_exist — 是否存在

is_icon_visible

(method) Buff:is_icon_visible()
  -> is_visible: boolean

魔法效果的图标是否可见

@return is_visible — 是否可见

is_icon_visible_by_key

function Buff.is_icon_visible_by_key(buff_key: py.ModifierKey)
  -> is_visible: boolean

魔法效果类型的图标是否可见

@param buff_key — 类型

@return is_visible — 是否可见

key

integer?

kv_has

(method) KV:kv_has(key: string)
  -> boolean

是否拥有指定键值对。可以与ECA互通。

kv_key

string?

kv_load

(method) KV:kv_load(key: string, lua_type: 'boolean'|'integer'|'number'|'string'|'table'...(+1))
  -> any
lua_type:
    | 'boolean'
    | 'number'
    | 'integer'
    | 'string'
    | 'table'

kv_remove

(method) KV:kv_remove(key: any)

kv_save

(method) KV:kv_save(key: string, value: KV.SupportType)

保存自定义键值对。可以与ECA互通。

object_event_manager

EventManager?

phandle

py.ModifierEntity

代理的对象,用这个调用引擎的方法会快得多

ref_manager

unknown

所有魔法效果实例

remove

(method) Buff:remove()

移除

set_aura_range

(method) Buff:set_aura_range(range: number)

设置魔法效果光环影响范围

@param range — 影响范围

set_cycle_time

(method) Buff:set_cycle_time(time: number)

设置魔法效果循环周期

@param time — 循环周期

set_description

(method) Buff:set_description(description: string)

设置魔法效果对象的描述

@param description — 描述

set_name

(method) Buff:set_name(name: string)

设置魔法效果的名称

@param name — 名字

set_shield

(method) Buff:set_shield(value: number)

设置护盾值

@param value — 护盾值

set_stack

(method) Buff:set_stack(stack: integer)

设置堆叠层数

@param stack — 层数

set_time

(method) Buff:set_time(time: number)

设置剩余持续时间

@param time — 剩余持续时间

storage_all

(method) Storage:storage_all()
  -> table

获取存储数据的容器

storage_get

(method) Storage:storage_get(key: any)
  -> any

获取存储的值

storage_set

(method) Storage:storage_set(key: any, value: any)

存储任意值

storage_table

table

subscribe_event

(method) ObjectEvent:subscribe_event(event_name: string, ...any)
  -> any[]?
  2. Trigger.CallBack
  3. Unsubscribe: function

type

string

Buff.AddData

ability

Ability

关联技能

data

table

自定义数据

key

py.ModifierKey

魔法效果id

pulse

number

心跳周期

source

Unit

来源单位

stacks

integer

层数

time

number

持续时间