Skip to content

道具模块管理接口 Item

具体函数名及描述如下:

序号函数名函数描述
1GetItemName(...)获取道具名称
2RandomItemID(...)随机获取道具ID
3RandomProjectileID(...)随机获取投掷物ID
4GetAttr(...)获取道具属性
5GetItemDesc(...)获取道具描述
6GetCustomGunAttr(...)获取自定义枪械属性
7GetCraftIDNum(...)获取道具配方数量
8GetCraftMaterialAndNum(...)获取道具配方材料与数量
9GetFacade(...)获取道具类型外观
10CreateItemInstInWorld(...)在位置上创建道具掉落物
11CreateGunInWorld(...)在位置上创建枪械掉落物
12GetEquipItemGridID(...)获取装备道具装备栏网格id
13ModifyGunAttribute(...)修改枪械道具实例的属性
14GetGunAttribute(...)获取枪械道具实例的属性
15GetGunPrefabAttribute(...)获取枪预制的属性
16GetItemIdByInstanceId(...)根据道具实例ID获取道具ID
17AddSubModelPart(...)给道具实例添加一个模型子部件
18DeleteSubModelPart(...)删除一个道具实例的模型子部件
19ReplaceSubModelPart(...)修改一个道具实例的模型子部件
20SetStringCustomData(...)设置道具实例的自定义数据string
21SetBoolCustomData(...)设置道具实例的自定义数据bool
22SetNumberCustomData(...)设置道具实例的自定义数据number
23SetObjCustomData(...)设置道具实例的自定义数据Object
24SetArrayCustomData(...)设置道具实例的自定义数据Array
25GetStringCustomData(...)获取道具实例的自定义数据string
26GetBoolCustomData(...)获取道具实例的自定义数据bool
27GetNumberCustomData(...)获取道具实例的自定义数据number
28GetObjCustomData(...)获取道具实例的自定义数据Object
29GetArrayCustomData(...)获取道具实例的自定义数据Array
30GetItemInstFacade(...)获取具有道具实例ID的道具外观
31GetGridAttr(...)获取掉落物或者投掷物的格子属性
32GetTags(...)获取道具定义中的标签组

GetItemName

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取道具名称
  • 具体使用案例如下:
lua
    local itemName = Item:GetItemName(12005)

    if itemName then

        print("获取物品名称", itemName)

    end

RandomItemID

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的其他说明: 在资源库里随机获取一个道具ID
  • 具体使用案例如下:
lua
    local itemID = Item:RandomItemID()

    if itemID then

        print("随机生成的物品ID", itemID)

    end

RandomProjectileID

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的其他说明: 在资源库里随机获取一个投掷物ID
  • 具体使用案例如下:
lua
    local projectileID = Item:RandomProjectileID()

    if projectileID then

        print("随机生成的投射物ID", projectileID)

    end

GetAttr

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取道具属性
  • 具体使用案例如下:
lua
    local itemid = 'r0_7495946400275515402_23048' --自定义道具

    local stackmax = Item:GetAttr(itemid, ItemAttr.Stackmax)

    if stackmax then

        print("获取堆叠最大数量", stackmax)

    end

GetItemDesc

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取道具描述
  • 具体使用案例如下:
lua
    local itemDesc = Item:GetItemDesc(12005)

    if itemDesc then

        print("获取物品描述", itemDesc)

    end

GetCustomGunAttr

  • 参数及类型:
  • 返回值及类型:
    • obj:any属性值
  • 该方法的其他说明: 获取自定义枪械的属性(仅自定义枪械有效)
  • 具体使用案例如下:
lua
local obj = Item:GetCustomGunAttr(itemid, attrname)

GetCraftIDNum

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 获取道具配方的数量
  • 具体使用案例如下:
lua
    --能够合成木板的数量

    local craftIDNum = Item:GetCraftIDNum(206)

    if craftIDNum then

        print("获取物品可合成的配方数量", craftIDNum)

    end

GetCraftMaterialAndNum

  • 参数及类型:
  • 返回值及类型:
    • obj:table 原料信息{{itemid
    • num}}
  • 该方法的其他说明: 获取道具的配方材料和数量
  • 具体使用案例如下:
lua
    local resultid = 206

    --获取制作物品的材料和数量

    local num = Item:GetCraftIDNum(resultid)

    if num then

        for i = 1, num do

            local tab = Item:GetCraftMaterialAndNum(resultid,i)

            if tab then

                print("获取制作物品的材料和数量", tab)

                for k,v in pairs(tab) do

                    print("材料索引", k, "材料ID", v[1], "数量", v[2])

                end

            end

        end

    end

GetFacade

  • 参数及类型:
  • 返回值及类型:
    • name:string 道具类型外观
  • 该方法的其他说明: 获取道具类型外观
  • 具体使用案例如下:
lua
    -- 官方默认道具示例

    local facade1 = Item:GetFacade(12002)

    if facade1 == nil then

        print("facade1 is nil")

    end

    -- 自定义道具示例

    local facade2 = Item:GetFacade('r2_7495945919239178250_23010')

    if facade2 == nil then

        print("facade2 is nil")

    end

CreateItemInstInWorld

  • 参数及类型:
    • itemid:number / string 道具ID
    • pos:table 掉落物位置{x,y,z}
    • worldId:number 星球ID(默认当前主机所在星球)
  • 返回值及类型:
  • 该方法的其他说明: 在位置上创建道具实例的掉落物
  • 具体使用案例如下:
lua
local id = Item:CreateItemInstInWorld(itemid, pos, worldId)

CreateGunInWorld

  • 参数及类型:
    • itemid:number / string 道具ID
    • pos:table 掉落物位置{x,y,z}
    • worldId:number 星球ID(默认当前主机所在星球)
  • 返回值及类型:
  • 该方法的其他说明: 在位置上创建枪械道具实例的掉落物
  • 具体使用案例如下:
lua
local id = Item:CreateGunInWorld(itemid, pos, worldId)

GetEquipItemGridID

  • 参数及类型:
  • 返回值及类型:
    • num:number 装备栏位置 BackpackBeginIndex.Equip + (EquipSlotType)
  • 该方法的其他说明: 根据装备道具ID计算其对应的装备栏网格索引
  • 具体使用案例如下:
lua
    -- 官方默认道具示例

    local grid =  Item:GetEquipItemGridID(12201)

    if grid == (EquipSlotType.Head + BackpackBeginIndex.Equip )  then

        print("皮头盔的装备栏是 8000")

    end

ModifyGunAttribute

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 通过道具实例id修改枪械属性(key 指定);value 类型需与该属性枚举匹配
  • 具体使用案例如下:
lua
local bool = Item:ModifyGunAttribute(instId, key, value)

GetGunAttribute

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 读取枪械道具实例属性(key 指定)
  • 具体使用案例如下:
lua
local value = Item:GetGunAttribute(instId, key)

GetGunPrefabAttribute

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 读取枪预制属性(key 指定)
  • 具体使用案例如下:
lua
local value = Item:GetGunPrefabAttribute(instId, key)

GetItemIdByInstanceId

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 根据道具实例id获取道具ID;若存在自定义资源则使用自定义资源ID,否则使用原道具id
  • 具体使用案例如下:
lua
local itemId = Item:GetItemIdByInstanceId(instId)

AddSubModelPart

  • 参数及类型:
  • 返回值及类型:
    • partName:string / nil 部件名字
  • 该方法的其他说明: 给道具实例添加模型子部件;返回最终的部件名字;若界面依赖实例模型,需约0.5秒等待同步后再刷新
  • 具体使用案例如下:
lua
    local ret = Item:AddSubModelPart(instId, "gun1", "muzzle", "newModel_11000005", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}, {x = 1, y = 1, z = 1})

    if ret then

        print("添加子部件成功",ret)

    end

DeleteSubModelPart

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 删除道具实例的指定模型子部件
  • 具体使用案例如下:
lua
local bool = Item:DeleteSubModelPart(instId, partName)

ReplaceSubModelPart

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 修改/替换道具实例的指定模型子部件(通过子部件名、挂点等信息)
  • 具体使用案例如下:
lua
local bool = Item:ReplaceSubModelPart(instId, partName, boneName, modelStr, offset, rot, scale)

SetStringCustomData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 写入/覆盖道具实例自定义字符串字段
  • 具体使用案例如下:
lua
local bool = Item:SetStringCustomData(instId, key, value)

SetBoolCustomData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 写入/覆盖道具实例自定义布尔字段
  • 具体使用案例如下:
lua
local bool = Item:SetBoolCustomData(instId, key, value)

SetNumberCustomData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 写入/覆盖道具实例自定义数值字段
  • 具体使用案例如下:
lua
local bool = Item:SetNumberCustomData(instId, key, value)

SetObjCustomData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 写入/覆盖道具实例自定义对象字段(会被序列化保存)
  • 具体使用案例如下:
lua
local bool = Item:SetObjCustomData(instId, key, value)

SetArrayCustomData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 写入/覆盖道具实例自定义数组字段(会被序列化保存)
  • 具体使用案例如下:
lua
local bool = Item:SetArrayCustomData(instId, key, value)

GetStringCustomData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 读取道具实例自定义字符串字段
  • 具体使用案例如下:
lua
local value = Item:GetStringCustomData(instId, key)

GetBoolCustomData

  • 参数及类型:
  • 返回值及类型:
    • value:bool / nil 值
  • 该方法的其他说明: 读取道具实例自定义布尔字段
  • 具体使用案例如下:
lua
local value = Item:GetBoolCustomData(instId, key)

GetNumberCustomData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 读取道具实例自定义数值字段
  • 具体使用案例如下:
lua
local value = Item:GetNumberCustomData(instId, key)

GetObjCustomData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 读取道具实例自定义对象字段
  • 具体使用案例如下:
lua
local value = Item:GetObjCustomData(instId, key)

GetArrayCustomData

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 读取道具实例自定义数组字段
  • 具体使用案例如下:
lua
local value = Item:GetArrayCustomData(instId, key)

GetItemInstFacade

  • 参数及类型:
  • 返回值及类型:
    • name:string / nil 道具实例外观
  • 该方法的其他说明: 根据道具实例id生成道具外观名
  • 具体使用案例如下:
lua
    local facade = Item:GetItemInstFacade(instId)

    if facade then

        print("获取物品实例外观", facade)

    end

GetGridAttr

  • 参数及类型:
  • 返回值及类型:
  • 该方法的其他说明: 读取掉落物/投掷物的指定格子属性
  • 具体使用案例如下:
lua
    local num = Item:GetGridAttr(objId,GridAttr.ItemNum)

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

GetTags

  • 参数及类型:
  • 返回值及类型:
    • obj:table / nil 标签组
  • 该方法的其他说明: 根据道具定义ID或道具预制ID获取标签组
  • 具体使用案例如下:
lua
    local itemid = "r2_7569576541013954344_36524" --自定义道具

    local tags = Item:GetTags(itemid)

    if tags then

        print("道具定义中的标签:", tags)

    end