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(...)playerid:number:玩家ID,itemid:number:道具类型,effectid:number:特效ID,offset:table:偏移
26StopShortCutItemEffect(...)删除玩家快捷栏上某种类型道具手持特效
27GetGridInfos(...)批量获取背包和快捷栏格子信息数据
28LoadGridInfos(...)加载背包和快捷栏格子信息数据
29DecodeGridInfo(...)解析格子信息数据
30EncodeTableGridInfo(...)将解析的格子信息数据打包
31ClearGrids(...)批量清理背包格子数据
32GetAllBackPackInstanceIds(...)获取指定背包中所有道具实例
33CreateItemInstInBackpack(...)在玩家的背包内创建一个道具实例
34CreateGunInBackpack(...)在玩家的背包内创建一把实例化的枪械
35GetInstIdByGridIndex(...)根据背包索引获取道具实例id
36GetGunInstIdInBackpack(...)获取背包所有实例化的枪械

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道具数量
  • 该方法的主要作用: 获取背包格道具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

  • 参数及类型: rot:table:旋转 scale:table:缩放
  • 返回值及类型:
  • 该方法的主要作用: playerid:number:玩家ID,itemid:number:道具类型,effectid:number:特效ID,offset:table:偏移
  • 具体使用案例如下:
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

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

GetAllBackPackInstanceIds

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

CreateItemInstInBackpack

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

CreateGunInBackpack

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