Appearance
背包模块管理接口 Backpack
具体函数名及描述如下:
SetGridItem
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 设置背包指定格子中的道具(对应UGC3.0版本)
- 具体使用案例如下:
lua
-- 设置快捷栏第一个格子为100,数量为3
local result = Backpack:SetGridItem(playerId, BackpackBeginIndex.Shortcut, 100, 3)RemoveGridItem
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 移除背包格内一定数量道具
- 具体使用案例如下:
lua
-- 移除快捷栏第一个格内1个道具
local result = Backpack:RemoveGridItem(playerId, BackpackBeginIndex.Shortcut, 1)RemoveGridItemByItemID
- 参数及类型:
- 返回值及类型:
- num:
number移除数量(num and num> 0 成功)
- num:
- 该方法的其他说明: 移除背包内一定数量道具,通过道具ID移除,默认全部移除
- 具体使用案例如下:
lua
-- 移除背包内 1个草块
local result = Backpack:RemoveGridItemByItemID(playerId, 100, 1)ClearPack
- 参数及类型:
- playerid:
number玩家ID - bartype:
number快捷栏枚举(BackpackType)BackpackType
- playerid:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 清空指定背包栏中的所有道具
- 具体使用案例如下:
lua
-- 清除快捷栏全部道具
Backpack:ClearPack(playerId, BackpackType.Shortcut)ClearAllPack
lua
local result = Backpack:ClearAllPack(playerId)MoveGridItem
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 将指定格子的道具移动到目标格子,默认全部转移
- 具体使用案例如下:
lua
-- 移动快捷栏第一个格子到第二个格子
local result = Backpack:MoveGridItem(playerId, BackpackBeginIndex.Shortcut, BackpackBeginIndex.Shortcut + 1)SwapGridItem
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 交换两个背包格子中的道具位置
- 具体使用案例如下:
lua
-- 交换快捷栏第一个格子和第二个格子
local result = Backpack:SwapGridItem(playerId, BackpackBeginIndex.Shortcut, BackpackBeginIndex.Shortcut + 1)EnoughSpaceForItem
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否有足够空间
- bool:
- 该方法的其他说明: 检查背包(包含背包栏、快捷栏)是否有足够的空间存放指定数量的道具
- 具体使用案例如下:
lua
local result = Backpack:EnoughSpaceForItem(playerId, 12005, 1)CalcSpaceNumForItem
- 参数及类型:
- 返回值及类型:
- num:
number可以存放的数量
- num:
- 该方法的其他说明: 计算背包(包含背包栏、快捷栏)能存放指定道具的剩余总数量
- 具体使用案例如下:
lua
local spaceNum = Backpack:CalcSpaceNumForItem(playerId, 12005)HasItemByBackpackBar
- 参数及类型:
- playerid:
number玩家ID - bartype:
number快捷栏枚举(BackpackType)BackpackType - itemid:
number/string道具类型
- playerid:
- 返回值及类型:
- 该方法的其他说明: 检测指定背包栏中是否持有指定道具
- 具体使用案例如下:
lua
-- 快捷栏是否有草块
local result = Backpack:HasItemByBackpackBar(playerId, BackpackType.Shortcut, 100)GetItemNumByBackpackBar
- 参数及类型:
- playerid:
number玩家ID - bartype:
number快捷栏枚举(BackpackType)BackpackType - itemid:
number/string道具类型
- playerid:
- 返回值及类型:
- 该方法的其他说明: 获取指定背包栏中指定道具的总数量,并返回装有该道具的格子ID数组
- 具体使用案例如下:
lua
local itemNum, grids = Backpack:GetItemNumByBackpackBar(playerId, BackpackType.Shortcut, 100)GetItemNum
- 参数及类型:
- 返回值及类型:
- 该方法的其他说明: 获取背包中指定道具的总数量,并返回装有该道具的格子ID数组(可选择是否包含装备栏)
- 具体使用案例如下:
lua
-- 获取道具的数量,包含装备栏
local itemNum = Backpack:GetItemNum(playerId, 12202)
-- 获取道具的数量,不包含装备栏
local itemNum2 = Backpack:GetItemNum(playerId, 12202, false)GetGridItemID
- 参数及类型:
- playerid:
number玩家ID - gridid:
number格子ID (BackpackBeginIndex.Shortcut + 0 是快捷栏第一个格子)BackpackBeginIndex
- playerid:
- 返回值及类型:
- 该方法的其他说明: 获取指定背包格子中的道具ID和数量
- 具体使用案例如下:
lua
local gridItemID = Backpack:GetGridItemID(playerId, BackpackBeginIndex.Shortcut)GetGridItemName
- 参数及类型:
- 返回值及类型:
- name:
string道具名称
- name:
- 该方法的其他说明: 获取指定背包格子中道具的名称
- 具体使用案例如下:
lua
-- 获取快捷栏第一个格子物品名称
local gridItemName = Backpack:GetGridItemName(playerId, BackpackBeginIndex.Shortcut)AddItem
- 参数及类型:
- 返回值及类型:
- num:
number成功添加的数量
- num:
- 该方法的其他说明: 向玩家背包添加指定数量的道具(可指定优先存放位置)
- 具体使用案例如下:
lua
-- 创建物品,只添加能放入的数量
local successNum = Backpack:AddItem(playerId, 100, 10)DiscardItem
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 丢弃指定背包格子中的道具,可设置是否允许拾取
- 具体使用案例如下:
lua
local result = Backpack:DiscardItem(playerId, gridIndex, 1)DiscardItemByID
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 通过道具ID丢弃背包中指定数量的道具
- 具体使用案例如下:
lua
local result = Backpack:DiscardItemByID(playerId, itemid)ActEquipUpByResID
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 让玩家穿上指定装备(自动从背包或快捷栏查找并装备)
- 具体使用案例如下:
lua
local result = Backpack:ActEquipUpByResID(playerId, 12202)ActEquipOffByEquipID
- 参数及类型:
- playerid:
number玩家ID - grid:
number装备栏ID(EquipStartIndex + EquipSlotType.Head是装备栏第一个格子,EquipSlotType.Weapon无效)EquipSlotType - togrid:
number目标格子ID(可不传,如果不为nil则必须是空格子)
- playerid:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 让玩家脱下指定装备栏中的装备(可指定移动到目标格子,否则自动寻找空格子或丢弃)
- 具体使用案例如下:
lua
-- 卸下装备的皮胸甲
-- 头盔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
- playerid:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 销毁指定装备栏中的装备
- 具体使用案例如下:
lua
-- 销毁装备栏的皮胸甲
local result = Backpack:ActDestructEquip(playerId, BackpackBeginIndex.Equip + 1)CreateItem
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 创建指定数量的道具到玩家背包(可指定优先存放位置,背包满时生成掉落物)
- 具体使用案例如下:
lua
-- 创建物品,默认放快捷栏跟背包栏(放不下会掉落在地上)
Backpack:CreateItem(playerId, 100, 3)
-- 创建物品,默认放快捷栏(快捷栏放不下会掉落在地上)
Backpack:CreateItem(playerId, 100, 2, BackpackType.Shortcut)
-- 创建皮胸甲,直接装备上,装备不上会掉落
Backpack:CreateItem(playerId, 12202, 1, BackpackType.Equip)PlayShortCutIxParticle
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 在玩家手持道具上播放粒子特效(可设置偏移、旋转和缩放)
- 具体使用案例如下:
lua
-- 播放手持特效, 偏移量(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
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 停止玩家手持道具上播放的特效
- 具体使用案例如下:
lua
-- 停止当前选中快捷栏道具上的特效
local stopResult = Backpack:StopShortCutIxEffect(playerId, 1011)PlayShortCutItemParticle
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 在玩家手持指定道具时播放粒子特效(可设置偏移、旋转和缩放)
- 具体使用案例如下:
lua
-- 播放手持能量剑时候播放特效1011, 不偏移量, 不旋转, 不缩放
local result = Backpack:PlayShortCutItemParticle(playerId, 12005, 1011)StopShortCutItemEffect
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 停止玩家手持指定类型道具时播放的特效
- 具体使用案例如下:
lua
-- 停止当前选中快捷栏的能量剑特效
local stopResult = Backpack:StopShortCutItemEffect(playerId, 12005, 1011)GetGridInfos
- 参数及类型:
- 返回值及类型:
- value:
string格子信息字符串(nil表示失败,否则成功)
- value:
- 该方法的其他说明: 批量获取背包和快捷栏连续格子的信息数据(需要连续格子否则返回nil)
- 具体使用案例如下:
lua
local result = Backpack:GetGridInfos(playerId, BackpackBeginIndex.Inventory, BackpackBeginIndex.Inventory + 29)LoadGridInfos
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 加载背包和快捷栏格子信息数据(需要相应格子没有道具否则会加载失败)
- 具体使用案例如下:
lua
local sGridInfos = Backpack:GetGridInfos(playerId, BackpackBeginIndex.Inventory, BackpackBeginIndex.Inventory + 29)
Backpack:ClearGrids(playerId, BackpackBeginIndex.Inventory, BackpackBeginIndex.Inventory + 29)
local result = false
if sGridInfos then
result = Backpack:LoadGridInfos(playerId, sGridInfos)
endDecodeGridInfo
- 参数及类型:
- str:
stringGetGridInfos打包字符串
- str:
- 返回值及类型:
- obj:
table解析后的数组(数组元素包含index格子ID、info格子详细信息、itemid物品ID、num数量,nil表示解析失败)
- obj:
- 该方法的其他说明: 解析格子信息数据(将GetGridInfos返回的字符串解析为表格)
- 具体使用案例如下:
lua
local result = nil
local sGridInfos = Backpack:GetGridInfos(playerId, BackpackBeginIndex.Inventory, BackpackBeginIndex.Inventory + 29)
if sGridInfos then
result = Backpack:DecodeGridInfo(sGridInfos)
endEncodeTableGridInfo
- 参数及类型:
- infos:
tableDecodeGridInfo解析后的数据
- infos:
- 返回值及类型:
- value:
string打包后的字符串(nil表示打包失败,否则成功)
- value:
- 该方法的其他说明: 将解析的格子信息数据打包为字符串
- 具体使用案例如下:
lua
local result = nil
local sGridInfos = Backpack:GetGridInfos(playerId, BackpackBeginIndex.Inventory, BackpackBeginIndex.Inventory + 29)
if sGridInfos then
local infos = Backpack:DecodeGridInfo(sGridInfos)
if infos then
result = Backpack:EncodeTableGridInfo(infos)
end
endSetGridsLock
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 设置背包和快捷栏连续格子的锁定状态(需要连续格子否则返回失败)
- 具体使用案例如下:
lua
local result = Backpack:SetGridsLock(playerId, BackpackBeginIndex.Inventory, BackpackBeginIndex.Inventory + 29, true)ClearGrids
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 批量清理背包连续格子的数据(需要连续格子否则返回失败)
- 具体使用案例如下:
lua
local result = Backpack:ClearGrids(playerId, BackpackBeginIndex.Shortcut, BackpackBeginIndex.Shortcut + 7)SetBackPackNum
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 设置玩家背包的格子数量(范围0-100)
- 具体使用案例如下:
lua
--设置玩家背包格子数量是33,最大100
local result = Backpack:SetBackPackNum(playerId, 33)GetAllBackPackInstanceIds
- 参数及类型:
- playerid:
number玩家ID - bartype:
number快捷栏枚举(BackpackType)BackpackType
- playerid:
- 返回值及类型:
- ids:
table道具实例ID数组
- ids:
- 该方法的其他说明: 获取指定背包栏中所有道具实例的ID列表
- 具体使用案例如下:
lua
local result = Backpack:GetAllBackPackInstanceIds(playerId, BackpackType.Inventory)CreateItemInstInBackpack
- 参数及类型:
- 返回值及类型:
- id:
string道具实例ID
- id:
- 该方法的其他说明: 在玩家的背包内创建一个道具实例(格子未锁定才能创建)
- 具体使用案例如下:
lua
local itemid = 12005
local gridIndex = 2
local instId = Backpack:CreateItemInstInBackpack(playerId, itemid, gridIndex)
if instId then
print("创建物品实例", instId)
endCreateGunInBackpack
- 参数及类型:
- 返回值及类型:
- id:
string道具实例ID
- id:
- 该方法的其他说明: 在玩家的背包内创建一把实例化的枪械(格子未锁定才能创建)
- 具体使用案例如下:
lua
local gunItemId = "r2_7485931052202679286_22924" --完全自定义枪械道具ID
local result = Backpack:CreateGunInBackpack(playerId, gunItemId, BackpackBeginIndex.Inventory + 1)
if result then
print("创建枪械实例", result)
endGetInstIdByGridIndex
- 参数及类型:
- 返回值及类型:
- id:
string道具实例ID
- id:
- 该方法的其他说明: 根据背包索引获取道具实例ID(格子未锁定才能获取)
- 具体使用案例如下:
lua
local result = Backpack:GetInstIdByGridIndex(playerId, gridIndex)GetGunInstIdInBackpack
- 参数及类型:
- playerid:
number玩家Uin
- playerid:
- 返回值及类型:
- ids:
table枪械实例ID数组
- ids:
- 该方法的其他说明: 获取背包中所有实例化的枪械ID列表(仅返回未锁定格子的枪械)
- 具体使用案例如下:
lua
local result = Backpack:GetGunInstIdInBackpack(playerId)IsLock
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否锁定(参数错误返回true)
- bool:
- 该方法的其他说明: 获取背包格子是否锁定(1.48+版本,参数错误返回true)
- 具体使用案例如下:
lua
local result = Backpack:IsLock(playerId, BackpackBeginIndex.Inventory)GetGridAttr
- 参数及类型:
- 返回值及类型:
- num:
number属性值
- num:
- 该方法的其他说明: 获取背包格子的指定属性值(支持道具数量、耐久度、韧性)
- 具体使用案例如下:
lua
local num = Backpack:GetGridAttr(playerId, gridid, GridAttr.ItemNum)SetGridAttr
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 设置背包格子的指定属性值(支持道具数量、耐久度、韧性,会自动限制在有效范围内)
- 具体使用案例如下:
lua
Backpack:SetGridItem(playerId, gridid, 100, 1)
local ret = Backpack:SetGridAttr(playerId, gridid, GridAttr.ItemNum, 2)