背包
创建背包 create_bag
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
init_capacity | number | 初始背包容量 |
max_capacity | number | 最大背包容量 |
is_equip_bag | boolean | 是否为装备背包 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型(系统背包不可移除,只能移除自定义背包) |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
slot_id | number | 槽位id |
item | item_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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
items | item_info[] or item_uuid_info[] | 道具信息列表(item_info结构) |
source | string | 来源信息 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
items | item_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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
items | item_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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
items | item_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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
uuid | string | 道具唯一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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
slot_id | number | 槽位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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
binary | string | 道具二进制数据 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
id | number | 道具配置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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
src_slot_id | number | 资源槽位id |
target_slot_id | number | 目标槽位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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
src_type | string | 资源背包类型 |
src_slot_id | number | 资源槽位id |
target_type | string | 目标背包类型 |
target_slot_id | number | 目标槽位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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
uuid | string | 道具唯一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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
uuid | string | 道具唯一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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
uuid | string | 道具唯一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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型(*表示全背包) |
item_id | number | 道具配置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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
- | - | - |
ret: 无
示例:
function isc_test_bag:arrange()
edi.bag:arrange(module.player, "bag_system_item")
LOGI("isc_test_bag arrange: ")
end
清空背包 clear
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
- | - | - |
ret: 无
示例:
function isc_test_bag:clear()
edi.bag:clear(module.player, "bag_system_item")
end
背包扩容 enlarge
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
type | string | 背包类型 |
count | number | 扩容数量 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
item_uuid | string | 装备uid |
bag_type | string | 背包类型 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
item_uuid | string | 装备uid |
bag_type | string | 背包类型 |
- | - | - |
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:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
item_uuids | table | 装备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