# 背包管理接口 Backpack

在使用背包接口前需先创建背包管理对象,方法如下:(此处已废弃)

local Backpack = class.Backpack.new()

具体函数名及描述如下:

序号 函数名 函数描述
1 getBackpackBarIDRange(...) 获取道具背包栏ID范围(起始ID~结束ID)
2 getBackpackBarSize(...) 获取道具背包栏大小
3 setGridItem(...) 设置背包格道具
4 removeGridItem(...) 移除背包格内一定数量道具
5 removeGridItemByItemID(...) 移除背包内一定数量道具,通过道具ID移除,默认全部移除
6 clearPack(...) 清空指定背包栏
7 clearAllPack(...) 清空全部背包(包含背包栏、快捷栏、装备栏)
8 moveGridItem(...) 移动背包道具,默认全部转移
9 swapGridItem(...) 交换背包道具
10 enoughSpaceForItem(...) 背包(包含背包栏、快捷栏)是否有足够的空间存放一定数量的道具
11 calcSpaceNumForItem(...) 计算背包(包含背包栏、快捷栏)能存放的道具剩余总数量
12 getBackpackBarValidList(...) 获取道具背包栏有效格ID列表(道具已存在),背包格ID数组
13 getBackpackBarItemList(...) 获取道具背包栏已拥有道具,道具ID数组
14 hasItemByBackpackBar(...) 检测背包是否持有某个道具
15 getItemNumByBackpackBar(...) 获取背包持有某个道具总数量,同时返回装有道具的背包格数组
16 getGridItemID(...) 获取背包格道具ID(返回itemid, num)
17 getGridItemName(...) 获取背包格道具名称
18 getGridStack(...) 获取背包格道具堆叠数(返回curstack, maxstack)
19 getGridDurability(...) 获取背包格道具耐久度(返回durcur, durmax)
20 getGridEnchantList(...) 获取背包格道具附魔,返回附魔id数组
21 getGridToolType(...) 获取背包道具工具类型(
22 addItem(...) 添加道具到背包
23 discardItem(...) 丢弃背包某个格子里的道具
24 getGridNum(...) 获取背包某个格子的道具数量
25 actEquipUpByResID(...) 玩家穿上装备
26 actEquipOffByEquipID(...) 玩家脱下装备栏装备
27 actCreateEquip(...) 创建装备
28 actDestructEquip(...) 销毁装备
29 PlayShortCutIxEffect(...) 设置当前手持道具上播放粒子特效
30 StopShortCutIxEffect(...) 停止手持道具上播放特效
31 PlayShortCutItemEffect(...) 设置快捷栏道具的粒子特效
32 StopShortCutItemEffect(...) 移除快捷栏道具的粒子特效

# getBackpackBarIDRange

  • 参数及类型:
    • bartype:number快捷栏枚举(BACKPACK_TYPE)
  • 返回值及类型:
  • 该方法的主要作用: 获取道具背包栏ID范围(起始ID~结束ID)
  • 具体使用案例如下:
--获取快捷栏的物品格id,参数为背包栏类型:1快捷栏 2储存栏 3装备栏
local result,begid,endid=Backpack:getBackpackBarIDRange(1)
--在聊天框显示
Chat:sendSystemMsg("快捷栏的物品格id为:"..begid.."至"..endid)
--获取储存栏的物品格id
result,begid,endid=Backpack:getBackpackBarIDRange(2)
--在聊天框显示
Chat:sendSystemMsg("储存栏的物品格id为:"..begid.."至"..endid)
--装备栏的物品格id
result,begid,endid=Backpack:getBackpackBarIDRange(3)
--在聊天框显示
Chat:sendSystemMsg("装备栏的物品格id为:"..begid.."至"..endid)

# getBackpackBarSize

  • 参数及类型:
    • bartype:number快捷栏枚举(BACKPACK_TYPE)
  • 返回值及类型:
  • 该方法的主要作用: 获取道具背包栏大小
  • 具体使用案例如下:
--获取背包栏总格数,参数为背包类型:1快捷栏 2储存栏 3装备栏
local result,size=Backpack:getBackpackBarSize(1)
--在聊天框显示
Chat:sendSystemMsg("快捷栏一共有"..size.."格")

# setGridItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置背包格道具
  • 具体使用案例如下:
--给指定玩家的指定背包栏添加物品
--第一个参数1000为玩家迷你号
--第二个参数0为背包栏id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
--第三个参数为要添加的物品id,12005是钻石剑
--第四个参数为要添加的物品数量
--最后一个参数为要添加的物品耐久,nil为默认满
Backpack:setGridItem(1000,0,12005,10,nil)
--在聊天框显示
Chat:sendSystemMsg("给迷你号为1000的玩家储存栏的第一格添加了10把钻石剑,耐久为满")

# removeGridItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 移除背包格内一定数量道具
  • 具体使用案例如下:
--移除指定玩家的指定背包栏的物品
--第一个参数为玩家迷你号
--第二个参数0为背包栏id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
--第三个参数为移除数量
Backpack:removeGridItem(1000,0,10)
--在聊天框显示
Chat:sendSystemMsg("移除了玩家1000的背包栏第一格10个物品")

# removeGridItemByItemID

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 移除背包内一定数量道具,通过道具ID移除,默认全部移除
  • 具体使用案例如下:
--移除指定玩家背包里的指定物品
--第一个参数为玩家迷你号
--第二个参数为要移除的物品id,101为土块
--第三个参数为要移除的物品数量
local result,num=Backpack:removeGridItemByItemID(1000,101,50)
--在聊天框显示
Chat:sendSystemMsg("尝试移除玩家1000背包里的50个土块,实际移除了"..num.."个")

# clearPack

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 清空指定背包栏
  • 具体使用案例如下:
--清空指定玩家的背包物品
--第一个参数为玩家迷你号
--第二个参数为背包类型:1快捷栏 2储存栏 3装备栏
Backpack:clearPack(1000,1)
--在聊天框显示
Chat:sendSystemMsg("清空了玩家1000的快捷栏物品")

# clearAllPack

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 清空全部背包(包含背包栏、快捷栏、装备栏)
  • 具体使用案例如下:
--清空指定玩家的所有物品,包括快捷栏、储存栏和装备栏,参数为玩家迷你号
Backpack:clearAllPack(1000)
--在聊天框显示
Chat:sendSystemMsg("清空了玩家1000的所有物品,包括快捷栏、储存栏和装备栏")

# moveGridItem

  • 参数及类型:
    • playerid:number玩家ID
    • gridsrc:number移动格子ID
    • griddst:number移动至的目标格子ID
    • num:number道具数量(默认全部)
  • 返回值及类型:
  • 该方法的主要作用: 移动背包道具,默认全部转移
  • 具体使用案例如下:
--移动玩家背包物品到指定物品栏
--第一个参数为玩家迷你号
--第二个参数0为要移动的背包栏id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
--第三个参数1000为移动至的背包栏id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
--第四个参数为移动数量
local result=Backpack:moveGridItem(1000,0,1000,10)
if result==0 then--如果移动成功
	--在聊天框显示
	Chat:sendSystemMsg("把玩家1000的储存栏的第一格物品移动了10个到快捷栏第一格")
else--如果移动失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档,或无法移动")
end

# swapGridItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 交换背包道具
  • 具体使用案例如下:
--交换玩家两个物品栏的物品
--第一个参数为玩家迷你号
--后两个参数为要交换的背包栏id:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
local result=Backpack:moveGridItem(1000,0,1000)
if result==0 then--如果交换成功
	--在聊天框显示
	Chat:sendSystemMsg("交换了玩家1000的储存栏第一格和快捷栏第一格的物品")
else--如果交换失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档,或无法交换")
end

# enoughSpaceForItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 背包(包含背包栏、快捷栏)是否有足够的空间存放一定数量的道具
  • 具体使用案例如下:
--判断玩家背包(包括快捷栏和储存栏)是否能继续容纳指定数量的物品
--第一个参数为玩家迷你号
--第二个参数为要判断的物品id,101为土块
--第三个参数为物品数量
local result=Backpack:enoughSpaceForItem(1000,101,999)
if result==0 then--如果可以
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的背包可以继续容纳999个土块")
else--如果不可以或判断失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的背包无法继续容纳999个土块,或玩家1000不在当前存档")
end

# calcSpaceNumForItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 计算背包(包含背包栏、快捷栏)能存放的道具剩余总数量
  • 具体使用案例如下:
--获取指定玩家的背包(包括快捷栏和储存栏)还能添加多少指定物品
--第一个参数为玩家迷你号
--第二个参数为要获取剩余容纳数量的物品,101为土块
local result,num=Backpack:calcSpaceNumForItem(1000,101)
if result==0 then--如果获取成功
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的背包还能添加"..num.."个土块")
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# getBackpackBarValidList

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取道具背包栏有效格ID列表(道具已存在),背包格ID数组
  • 具体使用案例如下:
--获取指定玩家的背包中已有物品的格子id
--第一个参数为玩家迷你号
--第二个参数为背包栏类型:1快捷栏 2储存栏 3装备栏
local result,num,array=Backpack:getBackpackBarValidList(1000,2)
if result==0 then--如果获取成功
	--在聊天框显示已有物品的格子数量
	Chat:sendSystemMsg("玩家1000的储存栏一共有"..num.."格已经放置了物品")
	for i,a in ipairs(array) do
		--在聊天框显示格子id列表
		Chat:sendSystemMsg("第"..i.."个有物品的物品格id:"..a)
	end
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# getBackpackBarItemList

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取道具背包栏已拥有道具,道具ID数组
  • 具体使用案例如下:
--获取指定玩家背包的物品列表
--第一个参数为玩家迷你号
--第二个参数为背包栏类型:1快捷栏 2储存栏 3装备栏
local result,num,arr=Backpack:getBackpackBarItemList(1000,1)
if result==0 then--如果获取成功
	--在聊天框显示种类数
	Chat:sendSystemMsg("玩家1000的快捷栏一共有"..num.."种物品")
	for i,a in ipairs(arr) do
		--在聊天框显示物品id列表
		Chat:sendSystemMsg("第"..i.."种物品id:"..a)
	end
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# hasItemByBackpackBar

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 检测背包是否持有某个道具
  • 具体使用案例如下:
--判断玩家背包是否包含某物品
--第一个参数为玩家迷你号
--第二个参数为背包栏类型:1快捷栏 2储存栏 3装备栏
--第三个参数为要判断的物品id,1是地心基石
local result,grid=Backpack:hasItemByBackpackBar(1000,1,1)
if result==0 and grid then--如果有
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的快捷栏里有地心基石,位置在"..grid)
else--如果没有或获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的快捷栏里没有地心基石或玩家1000不在当前存档")
end

# getItemNumByBackpackBar

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包持有某个道具总数量,同时返回装有道具的背包格数组
  • 具体使用案例如下:
--获取指定玩家的背包有多少个指定物品
--第一个参数为玩家迷你号
--第二个参数为背包栏类型:1快捷栏 2储存栏 3装备栏
--第三个参数为要获取的物品id,101为土块
local result,num,arr=Backpack:getItemNumByBackpackBar(1000,2,101)
if result==0 then--如果获取成功
	--在聊天框显示物品数量
	Chat:sendSystemMsg("玩家1000的储存栏里有"..num.."个土块")
	for i,a in ipairs(arr) do
		--在聊天框显示物品格列表
		Chat:sendSystemMsg("有土块的第"..i.."个物品格id为:"..a)
	end
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# getGridItemID

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包格道具ID(返回itemid, num)
  • 具体使用案例如下:
--获取指定玩家指定物品格的物品id和数量
--第一个参数为玩家迷你号
--第二个参数0为背包栏物品格id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
local result,itemid,num=Backpack:getGridItemID(1000,0)
if result==0 then--如果获取成功
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的背包储存栏的第一格物品id为:"..itemid..",数量为:"..num)
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# getGridItemName

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包格道具名称
  • 具体使用案例如下:
--获取指定玩家指定物品格的物品名称
--第一个参数为玩家迷你号
--第二个参数0为背包栏物品格id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
local result,name=Backpack:getGridItemName(1000,0)
if result==0 then--如果获取成功
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的背包储存栏的第一格物品名称为:"..name)
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("获取失败,可能是玩家1000不在当前存档")
end

# getGridStack

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包格道具堆叠数(返回curstack, maxstack)
  • 具体使用案例如下:
--获取指定玩家指定背包物品格的物品堆叠数量和最大堆叠数
--第一个参数为玩家迷你号
--第二个参数0为背包栏id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
local result,num,maxstack=Backpack:getGridStack(1000,0)
if result==0 then--如果获取成功
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的背包储存栏第一格的物品当前堆叠了"..num.."个,该物品最大可以堆叠"..maxstack.."个")
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# getGridDurability

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包格道具耐久度(返回durcur, durmax)
  • 具体使用案例如下:
--获取指定玩家指定背包物品格的物品当前耐久值和最大耐久值
--第一个参数为玩家迷你号
--第二个参数0为背包栏id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
local result,durcur,durmax=Backpack:getGridDurability(1000,0)
if result==0 then--如果获取成功
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的背包储存栏第一格的物品的耐久值为"..durcur..",该物品最大耐久值为"..durmax)
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# getGridEnchantList

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包格道具附魔,返回附魔id数组
  • 具体使用案例如下:
--获取指定玩家背包中某格物品的附魔数量与id
--第一个参数为玩家迷你号
--第二个参数为背包栏id,1000为快捷栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
local result,num,arr=Backpack:getGridEnchantList(1000,1000)
if result==0 then--如果获取成功
	--在聊天框显示附魔数量
	Chat:sendSystemMsg("玩家1000的快捷栏第一格物品附魔数量为"..num)
	for i,a in ipairs(arr) do
		--在聊天框显示附魔列表
		Chat:sendSystemMsg("第"..i.."个附魔id为:"..a)
	end
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# getGridToolType

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包道具工具类型(
  • 具体使用案例如下:
--获取指定玩家指定物品格的物品道具类型
--第一个参数为玩家迷你号
--第二个参数为背包栏id,1000为快捷栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
--返回值可能是:-1非道具 1斧 2镐 3铲 4锄 6剑 7弓 14投掷 等
local result,type=Backpack:getGridToolType(1000,1000)
--在聊天框显示
Chat:sendSystemMsg("玩家1000快捷栏第一格物品类型为:(-1非道具 1斧 2镐 3铲 4锄 6剑 7弓 14投掷)"..type)

# addItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 添加道具到背包
  • 具体使用案例如下:
--给指定玩家的背包添加物品
--第一个参数为玩家迷你号
--第二个参数为要添加的物品id,101为土块
--第三个参数为要添加的物品数量
local result,successNum=Backpack:addItem(1000,101,999)
if result==0 then--如果添加成功
	--在聊天框显示
	Chat:sendSystemMsg("尝试给玩家1000的背包添加999个土块,实际添加了"..successNum)
else--如果添加失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# discardItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 丢弃背包某个格子里的道具
  • 具体使用案例如下:
--移除指定玩家的指定背包栏的物品
--第一个参数为玩家迷你号
--第二个参数0为背包栏id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
--第三个参数为移除数量
Backpack:discardItem(1000,0,10)
--在聊天框显示
Chat:sendSystemMsg("移除了玩家1000的背包栏第一格10个物品")

# getGridNum

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取背包某个格子的道具数量
  • 具体使用案例如下:
--获取指定玩家指定物品格的物品数量
--第一个参数为玩家迷你号
--第二个参数0为背包栏物品格id,0为储存栏的第一格:0-29储存栏 1000-1007快捷栏 8000-8004装备栏
local result,num=Backpack:getGridNum(1000,0)
if result==0 then--如果获取成功
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000的背包储存栏的第一格物品数量为:"..num)
else--如果获取失败
	--在聊天框显示
	Chat:sendSystemMsg("玩家1000不在当前存档")
end

# actEquipUpByResID

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 玩家穿上装备
  • 具体使用案例如下:
local code, equipid = Backpack:actEquipUpByResID(playerid, itemid)
if code == ErrorCode.OK then
	print('执行成功', code, equipid )
else
	print('执行失败')
end

# actEquipOffByEquipID

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 玩家脱下装备栏装备
  • 具体使用案例如下:
local code = Backpack:actEquipOffByEquipID(playerid, equipid)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# actCreateEquip

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 创建装备
  • 具体使用案例如下:
local code = Backpack:actCreateEquip(playerid, itemid)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# actDestructEquip

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 销毁装备
  • 具体使用案例如下:
local code = Backpack:actDestructEquip(playerid, equipid)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# PlayShortCutIxEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置当前手持道具上播放粒子特效
  • 具体使用案例如下:
local code = Backpack:PlayShortCutIxEffect(playerid, effectid, scale)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# StopShortCutIxEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 停止手持道具上播放特效
  • 具体使用案例如下:
local code = Backpack:StopShortCutIxEffect(playerid, effectid)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# PlayShortCutItemEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 设置快捷栏道具的粒子特效
  • 具体使用案例如下:
local code = Backpack:PlayShortCutItemEffect(playerid, itemid, effectid, scale)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end

# StopShortCutItemEffect

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 移除快捷栏道具的粒子特效
  • 具体使用案例如下:
local code = Backpack:StopShortCutItemEffect(playerid, itemid, effectid)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end
上次更新: 2023/5/10 15:09:30