Skip to content

背包模块管理接口 Backpack

具体函数名及描述如下:

序号函数名函数描述
1SetGridItem(...)设置背包格道具
2RemoveGridItem(...)移除背包格内一定数量道具
3RemoveGridItemByItemID(...)移除背包内一定数量道具,通过道具ID移除,默认全部移除
4ClearPack(...)清空指定背包栏
5ClearAllPack(...)清空全部背包(包含背包栏、快捷栏、装备栏)
6MoveGridItem(...)移动背包道具,默认全部转移
7SwapGridItem(...)交换背包道具
8EnoughSpaceForItem(...)背包(包含背包栏、快捷栏)是否有足够的空间存放一定数量的道具
9CalcSpaceNumForItem(...)计算背包(包含背包栏、快捷栏)能存放的道具剩余总数量
10HasItemByBackpackBar(...)检测背包是否持有某个道具
11GetItemNumByBackpackBar(...)获取背包持有某个道具总数量,同时返回装有道具的背包格数组
12GetItemNum(...)获取背包持有某个道具总数量,同时返回装有道具的背包格数组
13GetGridItemID(...)获取背包格道具ID(返回itemid, num)
14GetGridItemName(...)获取背包格道具名称
15AddItem(...)添加道具到背包
16DiscardItem(...)丢弃背包某个格子里的道具
17DiscardItemByID(...)丢弃背包某个格子里的道具
18ActEquipUpByResID(...)玩家穿上装备
19ActEquipOffByEquipID(...)玩家脱下装备栏装备
20ActDestructEquip(...)销毁装备
21CreateItem(...)创建道具到玩家背包
22PlayShortCutIxEffect(...)在手持道具上播放特效
23PlayShortCutIxParticle(...)在手持道具上播放特效
24StopShortCutIxEffect(...)停止手持道具上播放特效
25PlayShortCutItemParticle(...)设置玩家快捷栏上某种类型道具手持特效
26StopShortCutItemEffect(...)删除玩家快捷栏上某种类型道具手持特效
27GetGridInfos(...)批量获取背包和快捷栏格子信息数据
28LoadGridInfos(...)加载背包和快捷栏格子信息数据
29DecodeGridInfo(...)解析格子信息数据
30EncodeTableGridInfo(...)将解析的格子信息数据打包
31SetGridsLock(...)设置背包和快捷栏格子锁定状态
32ClearGrids(...)批量清理背包格子数据
33SetBackPackNum(...)设置背包格子数量
34GetAllBackPackInstanceIds(...)获取指定背包中所有道具实例
35CreateItemInstInBackpack(...)在玩家的背包内创建一个道具实例
36CreateGunInBackpack(...)在玩家的背包内创建一把实例化的枪械
37GetInstIdByGridIndex(...)根据背包索引获取道具实例id
38GetGunInstIdInBackpack(...)获取背包所有实例化的枪械
39IsLock(...)获取背包格子是否锁定
40GetGridAttr(...)获取背包格子属性
41SetGridAttr(...)设置背包格子属性

SetGridItem

  • 参数及类型:
    • playerid:number玩家ID
    • gridid:number格子ID
    • itemid:number,string道具类型
    • num:number道具数量(默认1)
    • durability:number耐久值(默认1)
  • 返回值及类型:
  • 该方法的主要作用: 设置背包格道具
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 设置快捷栏第一个格子为100,数量为3

    local result = Backpack:SetGridItem(playerid, BackpackBeginIndex.Shortcut, 100, 3)

RemoveGridItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 移除背包格内一定数量道具
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 移除快捷栏第一个格内1个道具

    local result = Backpack:RemoveGridItem(playerid, BackpackBeginIndex.Shortcut, 1)

RemoveGridItemByItemID

  • 参数及类型:
    • playerid:number玩家ID
    • itemid:number,string道具类型
    • num:number道具数量
  • 返回值及类型:
    • ret:number移除数量(ret and ret> 0 成功)
  • 该方法的主要作用: 移除背包内一定数量道具,通过道具ID移除,默认全部移除
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 移除背包内 5个草块

    local result = Backpack:RemoveGridItemByItemID(playerid, 100, 5)

    -- 移除背包内 全部草块

    local resul2t = Backpack:RemoveGridItemByItemID(playerid, 100)

ClearPack

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 清空指定背包栏
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 清除快捷栏全部道具

    Backpack:ClearPack(playerid, BackpackType.Shortcut)

ClearAllPack

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 清空全部背包(包含背包栏、快捷栏、装备栏)
  • 具体使用案例如下:
lua
    local result = Backpack:ClearAllPack(Player:GetHostUin())

MoveGridItem

  • 参数及类型:
    • playerid:number玩家ID
    • gridsrc:number移动格子ID
    • griddst:number移动至的目标格子ID
    • num:number道具数量(默认全部)
  • 返回值及类型:
  • 该方法的主要作用: 移动背包道具,默认全部转移
  • 具体使用案例如下:
lua
    -- 移动快捷栏第一个格子到第二个格子

    local result = Backpack:MoveGridItem(playerid, BackpackBeginIndex.Shortcut, BackpackBeginIndex.Shortcut + 1)

SwapGridItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 交换背包道具
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 交换快捷栏第一个格子和第二个格子

    local result = Backpack:SwapGridItem(playerid, BackpackBeginIndex.Shortcut, BackpackBeginIndex.Shortcut + 1)

EnoughSpaceForItem

  • 参数及类型:
    • playerid:number玩家ID
    • itemid:number,string道具类型
    • num:number道具数量(默认1)
  • 返回值及类型:
  • 该方法的主要作用: 背包(包含背包栏、快捷栏)是否有足够的空间存放一定数量的道具
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    local result = Backpack:EnoughSpaceForItem(playerid, 12005, 1)

CalcSpaceNumForItem

  • 参数及类型:
    • playerid:number玩家ID
    • itemid:number,string道具类型
  • 返回值及类型:
    • leftNum:number可以存放的数量
  • 该方法的主要作用: 计算背包(包含背包栏、快捷栏)能存放的道具剩余总数量
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    local spaceNum = Backpack:CalcSpaceNumForItem(playerid, 12005)

HasItemByBackpackBar

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 检测背包是否持有某个道具
  • 具体使用案例如下:
lua
    -- 快捷栏是否有草块

    local result = Backpack:HasItemByBackpackBar(playerid, BackpackType.Shortcut, 100)

GetItemNumByBackpackBar

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包持有某个道具总数量,同时返回装有道具的背包格数组
  • 具体使用案例如下:
lua
    local itemNum, grids = Backpack:GetItemNumByBackpackBar(playerid, BackpackType.Shortcut, 100)

GetItemNum

  • 参数及类型:
    • playerid:number玩家ID
    • itemid:number,string道具类型
    • isAddEquip:boolean是否添加装备栏(默认True)
  • 返回值及类型:
  • 该方法的主要作用: 获取背包持有某个道具总数量,同时返回装有道具的背包格数组
  • 具体使用案例如下:
lua
    -- 获取道具的数量,包含装备栏

    local itemNum = Backpack:GetItemNum(playerid, 12202)

    -- 获取道具的数量,不包含装备栏

    local itemNum2 = Backpack:GetItemNum(playerid, 12202, false)

GetGridItemID

  • 参数及类型:
  • 返回值及类型:
    • itemid:number,string道具类型
    • num:number道具数量 (无道具 数量是0 itemid是0)
  • 该方法的主要作用: 获取背包格道具ID(返回itemid, num)
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    local gridItemID = Backpack:GetGridItemID(playerid, BackpackBeginIndex.Shortcut)

GetGridItemName

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包格道具名称
  • 具体使用案例如下:
lua
    -- 获取快捷栏第一个格子物品名称

    local gridItemName = Backpack:GetGridItemName(playerid, BackpackBeginIndex.Shortcut)

AddItem

  • 参数及类型:
    • playerid:number玩家ID
    • itemid:number,string道具类型
    • num:number道具数量
    • prioritytype:number优先快捷栏还是背包栏:1优先快捷栏 2优先背包栏(默认1)
  • 返回值及类型:
    • num:number成功添加的数量
  • 该方法的主要作用: 添加道具到背包
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 创建物品,只添加能放入的数量

    local successNum = Backpack:AddItem(playerid, 100, 10)

DiscardItem

  • 参数及类型:
    • playerid:number玩家ID
    • gridid:number格子ID
    • num:number:道具数量 ablePick:boolean:能否拾取
  • 返回值及类型:
  • 该方法的主要作用: 丢弃背包某个格子里的道具
  • 具体使用案例如下:
lua
local code = Backpack:DiscardItem(playerid, gridid, num, ablePick)

DiscardItemByID

  • 参数及类型:
    • playerid:number玩家ID
    • gridid:number,string道具ID
    • itemnum:number道具数量
  • 返回值及类型:
  • 该方法的主要作用: 丢弃背包某个格子里的道具
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    local result = Backpack:DiscardItemByID(playerid, 12005)

    local result2 = Backpack:DiscardItemByID(playerid, "r2_7485931052202679286_22924")

ActEquipUpByResID

  • 参数及类型:
    • playerid:number玩家ID
    • itemid:number,string道具类型
    • frompos:number格子ID(可不传,如果不为nil
    • 则必须和itemid一致)
  • 返回值及类型:
  • 该方法的主要作用: 玩家穿上装备
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    local result = Backpack:ActEquipUpByResID(playerid, 12202)

ActEquipOffByEquipID

  • 参数及类型:
    • playerid:number玩家ID
    • grid:number装备栏ID((EquipStartIndex + EquipSlotType.Head) 是装备栏第一个格子,EquipSlotType.Weapon 无效)EquipSlotType
    • grid2:number目标格子ID(可不传,如果不为nil
    • 则必须是空格子)
  • 返回值及类型:
  • 该方法的主要作用: 玩家脱下装备栏装备
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 卸下装备的皮胸甲

    -- 头盔1(BackpackBeginIndex.Equip),胸甲2,护腿3,靴子4,披风5

    local result = Backpack:ActEquipOffByEquipID(playerid, BackpackBeginIndex.Equip + 1)

ActDestructEquip

  • 参数及类型:
    • playerid:number玩家ID
    • grid:number装备栏ID((EquipStartIndex + EquipSlotType.Head) 是装备栏第一个格子,EquipSlotType.Weapon 无效)EquipSlotType
  • 返回值及类型:
  • 该方法的主要作用: 销毁装备
  • 具体使用案例如下:
lua
  -- 销毁装备栏的皮胸甲

    local result = Backpack:ActDestructEquip(playerid, BackpackBeginIndex.Equip + 1)

CreateItem

  • 参数及类型:
  • 返回值及类型:
    • code:bool成功(true)
  • 该方法的主要作用: 创建道具到玩家背包
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 创建物品,默认放快捷栏跟背包栏(放不下会掉落在地上)

    Backpack:CreateItem(playerid, 100, 3)

    -- 创建物品,默认放快捷栏(快捷栏放不下会掉落在地上)

    Backpack:CreateItem(playerid, 100, 2, BackpackType.Shortcut)

    -- 创建皮胸甲,直接装备上,装备不上会掉落

    Backpack:CreateItem(playerid, 12202, 1, BackpackType.Equip)

PlayShortCutIxEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 在手持道具上播放特效
  • 具体使用案例如下:
lua
local code = Backpack:PlayShortCutIxEffect(playerid, effectid, scale)

PlayShortCutIxParticle

  • 参数及类型:
    • playerid:number玩家ID
    • effectids:number特效ID
    • offset:table偏移
    • rot:table:旋转 scale:table:缩放
  • 返回值及类型:
  • 该方法的主要作用: 在手持道具上播放特效
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 播放手持特效, 偏移量(0, 1, 0), 不旋转, 缩放(2, 2, 2)

    local result = Backpack:PlayShortCutIxParticle(playerid, 1011, {x = 0, y = 1, z = 0}, nil, {x = 2, y = 2, z = 2})

StopShortCutIxEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 停止手持道具上播放特效
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    local result = Backpack:StopShortCutIxEffect(playerid, 1011)

PlayShortCutItemParticle

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置玩家快捷栏上某种类型道具手持特效
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 播放手持能量剑时候播放特效1011, 不偏移量, 不旋转, 不缩放

    local result = Backpack:PlayShortCutItemParticle(playerid, 12005, 1011)

StopShortCutItemEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 删除玩家快捷栏上某种类型道具手持特效
  • 具体使用案例如下:
lua
    local playerid = Player:GetHostUin()

    -- 停止手持能量剑时候播放特效1011

    local result = Backpack:StopShortCutItemEffect(playerid, 12005, 1011)

GetGridInfos

  • 参数及类型:
    • playerid:number玩家ID
    • begingridId:number开始格子id
    • endgridId:number结束格子id 需要连续格子否则会返回"""
  • 返回值及类型: code: nil 失败 否则成功
  • 该方法的主要作用: 批量获取背包和快捷栏格子信息数据
  • 具体使用案例如下:
lua
    local result = Backpack:GetGridInfos(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29);

LoadGridInfos

  • 参数及类型:
    • playerid:number玩家ID
    • gridinfo:string 格子信息 由GetGridInfos返回的字符串 需要相应格子没有物品否则会加载失败
  • 返回值及类型: code: false 失败 true成功
  • 该方法的主要作用: 加载背包和快捷栏格子信息数据
  • 具体使用案例如下:
lua
    local sGridInfos = Backpack:GetGridInfos(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29);

    if sGridInfos then

        local result = Backpack:LoadGridInfos(Player:GetHostUin(),sGridInfos);

        return result

    end

DecodeGridInfo

  • 参数及类型: str:string GetGridInfos打包字符串
  • 返回值及类型: code: nil 解析失败 否则成功 是个数组table 数组元素中(index 是打包的格子id info是格子详细信息 itemid是物品id num 是数量)
  • 该方法的主要作用: 解析格子信息数据
  • 具体使用案例如下:
lua
    local sGridInfos = Backpack:GetGridInfos(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29);

    if sGridInfos then

        local result = Backpack:DecodeGridInfo(sGridInfos);

        return result

    end

EncodeTableGridInfo

  • 参数及类型: infos:table DecodeGridInfo 解析后的数据
  • 返回值及类型: code:"" 打包失败 否则成功
  • 该方法的主要作用: 将解析的格子信息数据打包
  • 具体使用案例如下:
lua
    local sGridInfos = Backpack:GetGridInfos(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29);

    if sGridInfos then

        local infos = Backpack:DecodeGridInfo(sGridInfos);

        local result = Backpack:EncodeTableGridInfo(infos);

        return result

    end

SetGridsLock

  • 参数及类型:
    • playerid:number玩家ID
    • begingridId:number开始格子id
    • endgridId:number结束格子id
    • lock:boolean true 锁定 false打开 需要连续格子否则会返回失败
  • 返回值及类型: code: false 失败 true成功
  • 该方法的主要作用: 设置背包和快捷栏格子锁定状态
  • 具体使用案例如下:
lua
    local result = Backpack:SetGridsLock(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29,true);

ClearGrids

  • 参数及类型:
    • playerid:number玩家ID
    • begingridId:number开始格子id
    • endgridId:number结束格子id 需要连续格子否则会返回失败
  • 返回值及类型: code: false 失败 true成功
  • 该方法的主要作用: 批量清理背包格子数据
  • 具体使用案例如下:
lua
    local result = Backpack:ClearGrids(Player:GetHostUin(),BackpackBeginIndex.Inventory,BackpackBeginIndex.Inventory+29);

    return result

SetBackPackNum

  • 参数及类型:
  • 返回值及类型: code: false 失败 true成功
  • 该方法的主要作用: 设置背包格子数量
  • 具体使用案例如下:
lua
    local result = Backpack:SetBackPackNum(Player:GetHostUin(),33);

    return result

GetAllBackPackInstanceIds

  • 参数及类型:
  • 返回值及类型:
    • instanceIds:table实例ID表
  • 该方法的主要作用: 获取指定背包中所有道具实例
  • 具体使用案例如下:
lua
local instanceIds = Backpack:GetAllBackPackInstanceIds(playerid, bartype)

CreateItemInstInBackpack

  • 参数及类型:
    • playerid:number玩家Uin
    • itemid:number,string道具id
    • gridIndex:number,nil格子索引
  • 返回值及类型:
    • instId:string,nil道具实例ID
  • 该方法的主要作用: 在玩家的背包内创建一个道具实例
  • 具体使用案例如下:
lua
    local itemid = 12005

    local gridIndex = 2

    local instId = Backpack:CreateItemInstInBackpack(playerid, itemid, gridIndex)

    if instId then

        print("创建物品实例", instId)

    end

CreateGunInBackpack

  • 参数及类型:
    • playerid:number玩家Uin
    • itemid:number,string道具id
    • gridIndex:number,nil格子索引
  • 返回值及类型:
    • instId:string,nil道具实例ID
  • 该方法的主要作用: 在玩家的背包内创建一把实例化的枪械
  • 具体使用案例如下:
lua
local instId = Backpack:CreateGunInBackpack(playerid, itemid, gridIndex)

GetInstIdByGridIndex

  • 参数及类型:
  • 返回值及类型:
    • instId:string,nil道具实例id
  • 该方法的主要作用: 根据背包索引获取道具实例id
  • 具体使用案例如下:
lua
local instId = Backpack:GetInstIdByGridIndex(playerid, gridIndex)

GetGunInstIdInBackpack

  • 参数及类型:
  • 返回值及类型:
    • tab:table,nil实例id数组
  • 该方法的主要作用: 获取背包所有实例化的枪械
  • 具体使用案例如下:
lua
local tab = Backpack:GetGunInstIdInBackpack(playerid)

IsLock

  • 参数及类型:
  • 返回值及类型:
    • isLock:boolean是否锁定 (参数错误返回true)
  • 该方法的主要作用: 获取背包格子是否锁定
  • 具体使用案例如下:
lua
local isLock = Backpack:IsLock(playerid, gridIndex)

GetGridAttr

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包格子属性
  • 具体使用案例如下:
lua
    local ret = Backpack:SetGridAttr(playerid, gridid,GridAttr.ItemNum,2)

    print("设置格子道具数量", ret) --如果数量超过最大堆叠数 则取最大堆叠数

    local num1 = Backpack:SetGridAttr(playerid, gridid,GridAttr.Durable,100)

    print("设置格子耐久度", num1) --最大耐久为0,设置值直接返回false

    -- local num2 = Backpack:SetGridAttr(playerid, gridid,GridAttr.Toughness)

    -- print("设置格子韧性", num2) --最大韧性为0,设置值直接返回false

    return ret and num1

end

function BackpackTask:GetGridAttr()

    local playerid = Player:GetHostUin()

    local gridid = 2

    --Backpack:GetGridAttr

    local num = Backpack:GetGridAttr(playerid, gridid,GridAttr.ItemNum)

    print("获取格子属性", num)

SetGridAttr

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置背包格子属性
  • 具体使用案例如下:
lua
local code = Backpack:SetGridAttr(playerid, gridid, attr, value)