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

Item

物品

add_attribute

(method) Item:add_attribute(key: string, value: number)

增加基础属性

@param key — 属性key

@param value — 属性值

add_bonus_attribute

(method) Item:add_bonus_attribute(key: string, value: number)

增加增益属性

@param key — 属性key

@param value — 属性值

add_charge

(method) Item:add_charge(charge: integer)

增加充能数

@param charge — 充能数

add_passive_ability

(method) Item:add_passive_ability(ability_id: py.AbilityKey, level: integer)

给物品添加被动技能

@param ability_id — 技能id

@param level — 等级

add_stack

(method) Item:add_stack(stack: integer)

增加堆叠数

@param stack — 堆叠数

add_tag

(method) Item:add_tag(tag: string)

添加标签

@param tag — 标签

attr_pick

(method) Item:attr_pick()
  -> keys: string[]

遍历物品的单位属性

@return keys — 属性key

attr_pick_by_key

function Item.attr_pick_by_key(item_key: py.ItemKey)
  -> keys: string[]

遍历物品类型的单位属性

@param item_key — 物品类型

@return keys — 属性key

check_precondition_by_key

function Item.check_precondition_by_key(player: Player, item_key: py.ItemKey)
  -> boolean

检查物品类型前置条件

@param player — 玩家

@param item_key — 物品类型ID

create_item

function Item.create_item(point: Point, item_key: py.ItemKey, player?: Player)
  -> Item

创建物品到点

@param point — 点

@param item_key — 道具类型

@param player — 玩家

custom_event_manager

EventManager?

drop

(method) Item:drop(point: Point, count: integer)

丢弃物品到点

@param point — 目标点

@param count — 丢弃数量

event

fun(self: Item, 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) Item:get_ability()
  -> ability: Ability?

获取物品的主动技能

@return ability — 主动技能

get_attribute

(method) Item:get_attribute(key: string)
  -> number

获取物品的基础属性

@param key — 属性key

get_attribute_by_key

function Item.get_attribute_by_key(item_key: py.ItemKey, key: string)
  -> number

获取物品类型的基础属性

@param key — 属性key

@param item_key — 物品类型

get_bonus_attribute

(method) Item:get_bonus_attribute(key: string)
  -> number

获取物品的增益属性

@param key — 属性key

get_by_handle

function Item.get_by_handle(py_item: py.Item)
  -> Item?

通过py层的技能实例获取lua层的道具实例

@param py_item — py层的道具实例

@return — 返回在lua层初始化后的lua层道具实例

get_by_id

function Item.get_by_id(id: py.ItemID)
  -> Item

通过id获取lua层的道具实例

@return — 返回在lua层初始化后的lua层道具实例

get_charge

(method) Item:get_charge()
  -> charges: integer

物品充能数

@return charges — 充能数

get_custom_event_manager

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

get_description

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

获取物品描述

@return description — 物品描述

get_description_by_key

function Item.get_description_by_key(item_key: py.ItemKey)
  -> string

获取物品类型的描述

@param item_key — 物品类型

get_facing

(method) Item:get_facing()
  -> angel: number

获取物品的朝向

@return angel — 朝向

get_hp

(method) Item:get_hp()
  -> hp: number

获取物品的生命值

@return hp — 物品的生命值

get_icon

(method) Item:get_icon()
  -> py.Texture

获取物品的图标

get_icon_id_by_key

function Item.get_icon_id_by_key(item_key: py.ItemKey)
  -> py.Texture

获取物品类型的icon的图片id

@param item_key — 物品类型

get_id

(method) Item:get_id()
  -> integer

获取唯一ID

get_item_buy_price_by_key

function Item.get_item_buy_price_by_key(item_key: py.ItemKey, key: string|y3.Const.PlayerAttr)
  -> price: number

获取物品购买售价

@param item_key — 类型

@param key — 玩家属性

@return price — 价格

get_item_group_in_area

function Item.get_item_group_in_area(area: Area)
  -> ItemGroup

获得区域内所有物品

@param area — 区域

get_item_sell_price_by_key

function Item.get_item_sell_price_by_key(item_key: py.ItemKey, key: string|y3.Const.PlayerAttr)
  -> price: number

获取物品出售售价

@param item_key — 类型

@param key — 玩家属性

@return price — 价格

get_key

(method) Item:get_key()
  -> key: py.ItemKey

获取物品类型id

@return key — 类型

get_level

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

获取物品等级

@return level — 物品等级

get_max_charge

(method) Item:get_max_charge()
  -> max_charge: integer

获取最大充能数

@return max_charge — 最大充能数

get_model

(method) Item:get_model()
  -> model_key: py.ModelKey

获取物品模型

@return model_key — 模型类型

get_model_by_key

function Item.get_model_by_key(item_key: py.ItemKey)
  -> model_key: py.ModelKey

获取物品类型的模型

@param item_key — 物品类型

@return model_key — 模型类型

get_name

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

获取物品名

@return name — 物品名字

get_name_by_key

function Item.get_name_by_key(item_key: py.ItemKey)
  -> string

获取物品类型名

@param item_key — 物品类型

get_num_of_item_mat

function Item.get_num_of_item_mat(item_key: py.ItemKey, comp_item_key: py.ItemKey)
  -> integer

物品类型合成所需的物品类型数量

get_num_of_player_attr

function Item.get_num_of_player_attr(item_key: py.ItemKey, role_res_key: py.RoleResKey)
  -> number

物品类型合成所需的玩家属性数量

get_owner

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

物品持有者

@return owner — 持有者

get_owner_player

(method) Item:get_owner_player()
  -> player: Player?

获取物品的拥有玩家

@return player — 玩家

get_passive_ability

(method) Item:get_passive_ability(index: integer)
  -> ability: Ability?

获取物品的被动技能

@return ability — 被动技能

get_point

(method) Item:get_point()
  -> position: Point

物品所在点

@return position — 物品所在点

get_scale

(method) Item:get_scale()
  -> scale: number

获取物品缩放

@return scale — 物品缩放

get_slot

(method) Item:get_slot()
  -> index: integer

获取物品在单位身上的格子位置

@return index — 格子位置

get_slot_type

(method) Item:get_slot_type()
  -> 背包槽类型: py.SlotType

获取物品在单位身上的背包槽类型

get_stack

(method) Item:get_stack()
  -> stacks: integer

物品堆叠数

@return stacks — 堆叠数

get_tags_by_key

function Item.get_tags_by_key(item_key: py.ItemKey)
  -> string[]

获取物品的所有标签

handle

py.Item

物品对象

has_tag

(method) Item:has_tag(tag: string)
  -> is_has_tag: boolean

存在标签

@param tag — 删除标签

@return is_has_tag — 是否有标签

has_tag_by_key

function Item.has_tag_by_key(tag: string, item_key: py.ItemKey)
  -> is_has_tag: boolean

物品类型是否存在标签

@param tag — 标签

@param item_key — 物品类型

@return is_has_tag — 是否有标签

id

py.ItemID

物品ID

is_destroyed

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

is_exist

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

是否存在

@return is_exist — 是否存在

is_in_bag

(method) Item:is_in_bag()
  -> is_in_bag: boolean

物品在背包栏

@return is_in_bag — 是否在背包栏

is_in_bar

(method) Item:is_in_bar()
  -> is_in_bar: boolean

物品在物品栏

@return is_in_bar — 是否在物品栏

is_in_scene

(method) Item:is_in_scene()
  -> is_in_scene: boolean

是否在场景中

@return is_in_scene — 是否在场景中

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.Item

物品对象

ref_manager

unknown

remove

(method) Item:remove()

删除物品

remove_tag

(method) Item:remove_tag(tag: string)

@param tag — 标签

set_attr

(method) Item:set_attr(attr_name: string, value: number, attr_type: string)

设置属性

@param attr_name — 属性名

@param value — 属性值

@param attr_type — 属性类型

set_attribute

(method) Item:set_attribute(key: string, value: number)

设置基础属性

@param key — 属性key

@param value — 属性值

set_bonus_attribute

(method) Item:set_bonus_attribute(key: string, value: number)

设置增益属性

@param key — 属性key

@param value — 属性值

set_charge

(method) Item:set_charge(charge: integer)

设置充能数

@param charge — 充能数

set_description

(method) Item:set_description(description: string)

设置物品的描述

@param description — 描述

set_droppable

(method) Item:set_droppable(dropable: boolean)

设置丢弃状态

@param dropable — 状态

set_facing

(method) Item:set_facing(facing: number)

设置物品朝向

@param facing — 朝向

set_hp

(method) Item:set_hp(value: number)

设置生命值

@param value — 生命值

set_icon

(method) Item:set_icon(picture_id: py.Texture)

设置物品的图标

@param picture_id — 图片id

set_level

(method) Item:set_level(level: integer)

设置等级

@param level — 等级

set_max_charge

(method) Item:set_max_charge(charge: integer)

设置最大充能数

@param charge — 最大充能数

set_name

(method) Item:set_name(name: string)

设置物品的名称

@param name — 名字

set_owner_player

(method) Item:set_owner_player(player: Player)

设置所属玩家

@param player — 所属玩家

set_point

(method) Item:set_point(point: Point)

移动到点

@param point — 点

set_sale_state

(method) Item:set_sale_state(state: boolean)

设置物品可否出售

@param state — 是否可出售

set_scale

(method) Item:set_scale(scale: number)

设置物品缩放

@param scale — 缩放

set_shop_price

function Item.set_shop_price(id: py.ItemKey, player_attr_name: py.RoleResKey, price: number)

设置物品商品售价

@param id — 物品id

@param player_attr_name — 玩家属性

@param price — 价格

set_stack

(method) Item:set_stack(stack: integer)

设置堆叠数

@param stack — 堆叠数

set_visible

(method) Item:set_visible(is_visible: boolean)

设置物品可见性

@param is_visible — 是否可见

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

Item.DrapOperation

"无" | "左键" | "右键"

Item.UseOperation

"无" | "左键单击" | "右键单击" | "左键双击"