Skip to content

容器模块管理接口 WorldContainer

具体函数名及描述如下:

序号函数名函数描述
1CheckStorage(...)检测储物箱
2ClearStorageBox(...)清空储物箱
3CheckStorageEmptyGrid(...)检测储物箱空位
4SetStorageItem(...)设置储物箱格子道具
5GetStorageItem(...)获取储物箱格子道具
6AddStorageItem(...)储物箱添加道具
7RemoveStorageItemByID(...)储物箱按类型移除道具
8RemoveStorageItemByIndex(...)储物箱按格子移除道具
9AddItemToContainer(...)储物箱添加道具(大箱)
10RemoveContainerItemByID(...)移除储物箱中一定数量道具
11ClearContainer(...)清空容器
12AddWorldStorageItems(...)批量添加储物箱道具
13GetStorageItemInstanceId(...)获取储物箱道具实例ID
14GetAllStorageItemInstanceIds(...)获取储物箱全部道具实例ID
15SwapContainerItem(...)交换容器与背包道具
16GetGridAttr(...)获取格子属性

CheckStorage

  • 参数及类型:
  • 返回值及类型: ret:boolean,resIdOrBlockId:number|nil:是否为储物箱及方块标识(否仅返回false)
  • 该方法的其他说明: 检测指定坐标是否为储物箱或 MOD 容器;是则返回方块资源ID或配置ID
  • 具体使用案例如下:
lua
    local isStorage = WorldContainer:CheckStorage(x, y, z, WorldId)

ClearStorageBox

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 清空指定坐标储物箱内所有物品
  • 具体使用案例如下:
lua
    local success = WorldContainer:ClearStorageBox(x, y, z, WorldId)

CheckStorageEmptyGrid

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 检测储物箱是否还有空位或可叠加存放指定道具
  • 具体使用案例如下:
lua
    local isEmpty = WorldContainer:CheckStorageEmptyGrid(x, y, z, 100, WorldId)

SetStorageItem

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 按格子索引直接设置储物箱内道具与数量
  • 具体使用案例如下:
lua
    local success = WorldContainer:SetStorageItem(x, y, z, 3, 12500, 10, WorldId)

GetStorageItem

  • 参数及类型:
  • 返回值及类型: ret:itemid:number|string|nil,num:number|nil:道具ID与数量(失败返回nil)
  • 该方法的其他说明: 读取储物箱指定格子的道具ID与数量
  • 具体使用案例如下:
lua
    local itemId, num = WorldContainer:GetStorageItem(x, y, z, 1, WorldId)

AddStorageItem

  • 参数及类型:
  • 返回值及类型:
    • ret:number / boolean / nil 实际添加数量(锁定商品返回false,失败返回nil)
  • 该方法的其他说明: 向储物箱按堆叠规则添加道具,返回实际加入的数量
  • 具体使用案例如下:
lua
    local addNum = WorldContainer:AddStorageItem(x, y, z, 12507, 10, WorldId)

RemoveStorageItemByID

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 从储物箱中按道具类型移除指定数量(num 缺省或极大时表示尽量清空该类型)
  • 具体使用案例如下:
lua
    local isSuccess = WorldContainer:RemoveStorageItemByID(x, y, z, 12507, 3, WorldId)

RemoveStorageItemByIndex

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 从储物箱指定格子移除一定数量道具
  • 具体使用案例如下:
lua
    local isSuccess = WorldContainer:RemoveStorageItemByIndex(x, y, z, 1, 5, WorldId)

AddItemToContainer

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 向储物箱添加道具;成功返回本次实际加入数量
  • 具体使用案例如下:
lua
    local addNum = WorldContainer:AddItemToContainer(x, y, z, 12500, 10, WorldId)

RemoveContainerItemByID

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 移除储物箱中一定数量道具
  • 具体使用案例如下:
lua
    local isSuccess = WorldContainer:RemoveContainerItemByID(x, y, z, 12500, 5, WorldId)

ClearContainer

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 清空指定坐标上通用容器内所有物品
  • 具体使用案例如下:
lua
    local success = WorldContainer:ClearContainer(x, y, z, WorldId)

AddWorldStorageItems

  • 参数及类型:
    • x:number 坐标x
    • y:number 坐标y
    • z:number 坐标z
    • itemids:table 道具列表({itemId,itemNum}...)
    • worldId:number / nil 星球ID(默认当前主机所在星球)
  • 返回值及类型:
    • ret:number 累计成功添加数量
  • 该方法的其他说明: 批量向储物箱添加多组道具(每项含 itemId、itemNum),返回累计成功添加的总数量
  • 具体使用案例如下:
lua
    local addNum = WorldContainer:AddWorldStorageItems(x, y, z, {{itemId = 12541, itemNum = 10}}, WorldId)

GetStorageItemInstanceId

  • 参数及类型:
  • 返回值及类型:
    • ret:string / nil 实例ID(无则返回nil)
  • 该方法的其他说明: 读取储物箱某格道具的实例ID字符串(仅当格子含实例数据时有效)
  • 具体使用案例如下:
lua
local ret = WorldContainer:GetStorageItemInstanceId(x, y, z, offset, worldId)

GetAllStorageItemInstanceIds

  • 参数及类型:
  • 返回值及类型:
    • ret:table / nil 实例ID字符串数组(失败返回nil)
  • 该方法的其他说明: 枚举储物箱内所有带实例ID的格子,收集实例ID列表(仅含通过接口创建的实例道具)
  • 具体使用案例如下:
lua
local ret = WorldContainer:GetAllStorageItemInstanceIds(x, y, z, worldId)

SwapContainerItem

  • 参数及类型:
  • 返回值及类型:
    • ret:boolean / nil 是否成功(坐标无方块等可能返回nil)
  • 该方法的其他说明: 在玩家背包与指定坐标的储物箱或熔炉之间移动或交换道具
  • 具体使用案例如下:
lua
    local ret = WorldContainer:SwapContainerItem(x, y, z, 1,uin, BackpackBeginIndex.Shortcut)

GetGridAttr

  • 参数及类型:
    • x:number 坐标x
    • y:number 坐标y
    • z:number 坐标z
    • gridid:number:格子ID,attr:number:属性枚举(GridAttr)
    • worldId:number 星球id(默认当前主机所在星球)
  • 返回值及类型:
  • 该方法的其他说明: 获取格子属性
  • 具体使用案例如下:
lua
	local num = WorldContainer:GetGridAttr(x, y, z, 1, GridAttr.ItemNum)