跳到主要内容

背包

创建背包 create_bag

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
init_capacitynumber初始背包容量
max_capacitynumber最大背包容量
is_equip_bagboolean是否为装备背包
---
  • ret: boolean 是否创建成功 true-是 false-否

  • 示例:

function isc_test_bag:create_bag()

local result = edi.bag:create_bag(module.player, "new_bag", 1, 10, false)
LOGI("isc_test_bag create_bag: "..tostring(result))
end

移除背包 remove_bag

  • 背包内物品会被删除

  • 背包内物品会被删除

  • args:

名字类型说明、描述
playeruserdata玩家对象
typestring背包类型(系统背包不可移除,只能移除自定义背包)
---
  • ret: boolean 是否移除成功 true-是 false-否

  • 示例:

function isc_test_bag:remove_bag()

local result = edi.bag:remove_bag(module.player, "new_bag")
LOGI("isc_test_bag remove_bag: "..tostring(result))
end

是否为装备背包 is_equip_bag

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
---
  • ret: boolean 是否为装备背包 true-是 false-否

  • 示例:

function isc_test_bag:is_equip_bag()

local result = edi.bag:is_equip_bag(module.player, "new_bag")
LOGI("isc_test_bag is_equip_bag: "..tostring(result))
end

添加单个道具,指定背包与位置 add_to_slot

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
slot_idnumber槽位id
itemitem_info(基础结构#item_info) 道具信息
---
  • ret: boolean 是否添加成功 true-是 false-否

  • 示例:

function isc_test_bag:add_to_slot()

local slotid = edi.bag:get_next_empty_slotid(module.player, "bag_system_item")
local result = edi.bag:add_to_slot(module.player, "bag_system_item", slotid, {item_id = 1001, item_num = 1, bind = false})
LOGI("isc_test_bag add_to_slot: "..tostring(result))
end

添加多个道具 add_items

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
itemsitem_info[] or item_uuid_info[]道具信息列表(item_info结构)
sourcestring来源信息
---
  • ret: boolean 是否添加成功 true-是 false-否

  • 示例:

function isc_test_bag:add_items()

local result = edi.bag:add_items(module.player, "bag_system_item", {{item_id = 1001, item_num = 1, bind = false}, {item_id = 1002, item_num = 1, bind = false}},"")
LOGI("isc_test_bag add_aim_more: "..tostring(result))
end

是否能添加多个道具 is_enough_capacity

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
itemsitem_info[] or item_uuid_info[]道具信息列表(item_info结构)
---
  • ret: boolean 是否能添加 true-是 false-否

  • 示例:

function isc_test_bag:is_enough_capacity()

local result = edi.bag:is_enough_capacity(module.player, "bag_system_item", {{item_id = 1001, item_num = 1, bind = false}, {item_id = 1002, item_num = 1, bind = false}})
LOGI("isc_test_bag is_enough_capacity: "..tostring(result))
end

移除多个道具 sub_items

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
itemsitem_info[] or item_uuid_info[]移除道具信息列表(item_info结构)(item_id不为0时,根据道具配置id扣除,item_uuid不为0时,根据道具唯一id扣除)
---
  • ret: boolean 是否移除成功 true-是 false-否

  • 示例:

function isc_test_bag:sub_items()

local result = edi.bag:sub_items(module.player, "bag_system_item", {{item_id = 1001, item_num = 1}})
LOGI("isc_test_bag sub_items: "..tostring(result))
end

是否能移除多个道具 is_enough_items

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
itemsitem_info[] or item_uuid_info[]道具信息列表(item_info结构)
---
  • ret: boolean 是否能移除多个道具 true-是 false-否

  • 示例:

function isc_test_bag:is_enough_items()

local result = edi.bag:is_enough_items(module.player, "bag_system_item", {{item_id = 1001, item_num = 1}})
LOGI("isc_test_bag is_enough_items: "..tostring(result))
end

根据道具唯一id获取道具对象 get_item_by_uuid

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
uuidstring道具唯一id
---
  • ret: userdata 道具对象

  • 示例:

function isc_test_bag:get_item_by_uuid()

local uids = edi.bag:get_uuids_by_id(module.player, "bag_system_item", 1001)
if #uids == 0 then
LOGI("isc_test_bag rem_more_by_uid: "..tostring(false))
return
end
local uid = uids[1]

local result = edi.bag:get_item_by_uuid(module.player, "bag_system_item", uid)
LOGI("isc_test_bag get_item_by_uuid: "..tostring(result))
end

获取指定槽位id的道具对象 get_by_slot

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
slot_idnumber槽位id
---
  • ret: userdata 道具对象

  • 示例:

function isc_test_bag:get_by_slot()

local result = edi.bag:get_by_slot(module.player, "bag_system_item", 1)
LOGI("isc_test_bag get_by_slot: "..tostring(result))
end

根据道具二进制数据还原道具 restore_item

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
binarystring道具二进制数据
---
  • ret: bool 是否成功

  • 示例:

function isc_test_bag:restore_item()

local rawitem = edi.bag:get_by_slot(module.player, "bag_system_item", 0)

local binary = edi.item:get_binary(rawitem)
local uuid = edi.item:get_uuid(rawitem)

edi.bag:sub_items(module.player, "bag_system_item", {{item_uuid = uuid, item_num = 1}})

local result = edi.bag:restore_item(module.player, "bag_system_item", binary)

LOGI("isc_test_bag restore_item: "..tostring(result))
end

根据配置id获取uuid列表 get_uuids_by_id

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
idnumber道具配置id
---
  • ret: table uuid列表

  • 示例:

function isc_test_bag:get_uuids_by_id()

local result = edi.bag:get_uuids_by_id(module.player, "bag_system_item", 1)
LOGI("isc_test_bag get_uuids_by_id: "..tostring(result))
end

交换同背包道具 swap_slots

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
src_slot_idnumber资源槽位id
target_slot_idnumber目标槽位id
---
  • ret: boolean 是否成功

  • 示例:

function isc_test_bag:swap_slots()

local result = edi.bag:swap_slots(module.player, "bag_system_item", 1, 2)
LOGI("isc_test_bag swap_slots: "..tostring(result))
end

交换不同背包道具 swap_bags

  • args:
名字类型说明、描述
playeruserdata玩家对象
src_typestring资源背包类型
src_slot_idnumber资源槽位id
target_typestring目标背包类型
target_slot_idnumber目标槽位id
---
  • ret: boolean 是否成功

  • 示例:

function isc_test_bag:swap_bags()

local result = edi.bag:swap_bags(module.player, "bag_system_item", 1, "bag_system_quick", 1)
LOGI("isc_test_bag swap_bags: "..tostring(result))
end

获取背包当前格子容量 get_cur_capacity

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
---
  • ret: number 背包当前格子容量

  • 示例:

function isc_test_bag:get_cur_capacity()

local result = edi.bag:get_cur_capacity(module.player, "bag_system_item")
LOGI("isc_test_bag get_cur_capacity: "..tostring(result))
end

获取背包空余格子容量 get_empty_capacity

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
---
  • ret: number 背包空余格子容量

  • 示例:

function isc_test_bag:get_empty_capacity()

local result = edi.bag:get_empty_capacity(module.player, "bag_system_item")
LOGI("isc_test_bag get_empty_capacity: "..tostring(result))
end

获取背包最大格子容量 get_max_capacity

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
---
  • ret: number 背包最大格子容量

  • 示例:

function isc_test_bag:get_max_capacity()
local bagCapacity = edi.bag:get_max_capacity(module.player, "bag_system_item")
LOGI("isc_test_bag get_max_capacity , bag_system_item max capacity:"..bagCapacity)
end

获取背包下个空格子id get_next_empty_slotid

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
---
  • ret: number 下个空格子id

  • 示例:

function isc_test_bag:get_next_empty_slotid()

local result = edi.bag:get_next_empty_slotid(module.player, "bag_system_item")
LOGI("isc_test_bag get_next_empty_slotid: "..tostring(result))
end

获取背包内所有道具列表 get_all

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
---
  • ret: userdata[] 所有道具列表

  • 示例:

function isc_test_bag:get_all()

local result = edi.bag:get_all(module.player, "bag_system_item")
LOGI("isc_test_bag get_all: "..tostring(result))
end

根据道具唯一id获取槽位id get_slot_id

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
uuidstring道具唯一id
---
  • ret: number 槽位id

  • 示例:

function isc_test_bag:get_slot_id()

local uids = edi.bag:get_uuids_by_id(module.player, "bag_system_item", 1001)
if #uids == 0 then
LOGI("isc_test_bag get_slot_id: "..tostring(false))
return
end
local uid = uids[1]

local result = edi.bag:get_slot_id(module.player, "bag_system_item", uid)
LOGI("isc_test_bag get_slot_id: "..tostring(result))
end

根据道具唯一id获取道具数量 overlap_count

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
uuidstring道具唯一id
---
  • ret: number 道具数量

  • 示例:

function isc_test_bag:overlap_count()

local uids = edi.bag:get_uuids_by_id(module.player, "bag_system_item", 1001)
if #uids == 0 then
LOGI("isc_test_bag overlap_count: "..tostring(false))
return
end
local uid = uids[1]

local result = edi.bag:overlap_count(module.player, "bag_system_item", uid)
LOGI("isc_test_bag overlap_count: "..tostring(result))
end

根据道具唯一id获取背包类型 get_type

  • args:
名字类型说明、描述
playeruserdata玩家对象
uuidstring道具唯一id
---
  • ret: string | nil #背包类型

  • 示例:

function isc_test_bag:get_type()

local uids = edi.bag:get_uuids_by_id(module.player, "bag_system_item", 1001)
if #uids == 0 then
LOGI("isc_test_bag get_type: "..tostring(false))
return
end
local uid = uids[1]

local result = edi.bag:get_type(module.player, uid)
LOGI("isc_test_bag get_type: "..tostring(result))
end

根据配置id获取道具数量 item_num

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型(*表示全背包)
item_idnumber道具配置id
---
  • ret: number 道具数量

  • 示例:

function isc_test_bag:item_num()

local result = edi.bag:item_num(module.player, "bag_system_item", 1001)
LOGI("isc_test_bag item_num: "..tostring(result))
end

整理背包 arrange

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
---
  • ret: 无

  • 示例:

function isc_test_bag:arrange()

edi.bag:arrange(module.player, "bag_system_item")
LOGI("isc_test_bag arrange: ")
end

清空背包 clear

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
---
  • ret: 无

  • 示例:

function isc_test_bag:clear()

edi.bag:clear(module.player, "bag_system_item")
end

背包扩容 enlarge

  • args:
名字类型说明、描述
playeruserdata玩家对象
typestring背包类型
countnumber扩容数量
---
  • ret: boolean 是否成功

  • 示例:

function isc_test_bag:enlarge()

local result = edi.bag:enlarge(module.player, "bag_system_item", 200)
LOGI("isc_test_bag enlarge: "..tostring(result))
end

穿装备 take_on

  • args:
名字类型说明、描述
playeruserdata玩家对象
item_uuidstring装备uid
bag_typestring背包类型
---
  • ret: 无

  • 示例:

function isc_test_bag:take_on()
local uids = edi.bag:get_uuids_by_id(module.player, "bag_equip_equip", 1001)
if #uids == 0 then
LOGI("isc_test_bag rem_more_by_uid: "..tostring(false))
return
end
local uid = uids[1]
edi.bag:take_on(module.player, "bag_equip_equip", uid)
LOGI("isc_test_bag take_on")
end

脱装备 take_off

  • args:
名字类型说明、描述
playeruserdata玩家对象
item_uuidstring装备uid
bag_typestring背包类型
---
  • ret: 无

  • 示例:

function isc_test_bag:take_off()
local uids = edi.bag:get_uuids_by_id(module.player, "bag_equip_equip", 1001)
if #uids == 0 then
LOGI("isc_test_bag rem_more_by_uid: "..tostring(false))
return
end
local uid = uids[1]
edi.bag:take_off(module.player, "bag_equip_equip", uid)
LOGI("isc_test_bag take_off")
end

选择标记指定道具(背包打卡状态下有效) select_items

  • args:
名字类型说明、描述
playeruserdata玩家对象
item_uuidstable装备uids
---
  • ret: 无

  • 示例:

function isc_test_bag:select_items()
local uids = edi.bag:get_uuids_by_id(module.player, "bag_equip_equip", 1001)
if #uids == 0 then
LOGI("isc_test_bag rem_more_by_uid: "..tostring(false))
return
end
edi.bag:select_items(module.player, "bag_equip_equip", uids)
LOGI("isc_test_bag select_items")
end