Appearance
道具模块管理接口 Item
具体函数名及描述如下:
GetItemName
lua
local itemName = Item:GetItemName(12005)
if itemName then
print("获取物品名称", itemName)
endRandomItemID
- 参数及类型: 无
- 返回值及类型:
- num:
number道具ID
- num:
- 该方法的其他说明: 在资源库里随机获取一个道具ID
- 具体使用案例如下:
lua
local itemID = Item:RandomItemID()
if itemID then
print("随机生成的物品ID", itemID)
endRandomProjectileID
- 参数及类型: 无
- 返回值及类型:
- num:
number道具ID
- num:
- 该方法的其他说明: 在资源库里随机获取一个投掷物ID
- 具体使用案例如下:
lua
local projectileID = Item:RandomProjectileID()
if projectileID then
print("随机生成的投射物ID", projectileID)
endGetAttr
- 参数及类型:
- 返回值及类型:
- num:
number属性值
- num:
- 该方法的其他说明: 获取道具属性
- 具体使用案例如下:
lua
local itemid = 'r0_7495946400275515402_23048' --自定义道具
local stackmax = Item:GetAttr(itemid, ItemAttr.Stackmax)
if stackmax then
print("获取堆叠最大数量", stackmax)
endGetItemDesc
lua
local itemDesc = Item:GetItemDesc(12005)
if itemDesc then
print("获取物品描述", itemDesc)
endGetCustomGunAttr
- 参数及类型:
- 返回值及类型:
- obj:any属性值
- 该方法的其他说明: 获取自定义枪械的属性(仅自定义枪械有效)
- 具体使用案例如下:
lua
local obj = Item:GetCustomGunAttr(itemid, attrname)GetCraftIDNum
lua
--能够合成木板的数量
local craftIDNum = Item:GetCraftIDNum(206)
if craftIDNum then
print("获取物品可合成的配方数量", craftIDNum)
endGetCraftMaterialAndNum
- 参数及类型:
- 返回值及类型:
- obj:
table原料信息{{itemid - num}}
- obj:
- 该方法的其他说明: 获取道具的配方材料和数量
- 具体使用案例如下:
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
endGetFacade
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")
endCreateItemInstInWorld
- 参数及类型:
- 返回值及类型:
- id:
number/ nil 对象ID
- id:
- 该方法的其他说明: 在位置上创建道具实例的掉落物
- 具体使用案例如下:
lua
local id = Item:CreateItemInstInWorld(itemid, pos, worldId)CreateGunInWorld
- 参数及类型:
- 返回值及类型:
- id:
number/ nil 对象ID
- id:
- 该方法的其他说明: 在位置上创建枪械道具实例的掉落物
- 具体使用案例如下:
lua
local id = Item:CreateGunInWorld(itemid, pos, worldId)GetEquipItemGridID
- 参数及类型:
- 返回值及类型:
- num:
number装备栏位置 BackpackBeginIndex.Equip + (EquipSlotType)
- num:
- 该方法的其他说明: 根据装备道具ID计算其对应的装备栏网格索引
- 具体使用案例如下:
lua
-- 官方默认道具示例
local grid = Item:GetEquipItemGridID(12201)
if grid == (EquipSlotType.Head + BackpackBeginIndex.Equip ) then
print("皮头盔的装备栏是 8000")
endModifyGunAttribute
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 通过道具实例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
- 参数及类型:
- instId:
string道具实例id
- instId:
- 返回值及类型:
- 该方法的其他说明: 根据道具实例id获取道具ID;若存在自定义资源则使用自定义资源ID,否则使用原道具id
- 具体使用案例如下:
lua
local itemId = Item:GetItemIdByInstanceId(instId)AddSubModelPart
- 参数及类型:
- 返回值及类型:
- partName:
string/ nil 部件名字
- partName:
- 该方法的其他说明: 给道具实例添加模型子部件;返回最终的部件名字;若界面依赖实例模型,需约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)
endDeleteSubModelPart
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 删除道具实例的指定模型子部件
- 具体使用案例如下:
lua
local bool = Item:DeleteSubModelPart(instId, partName)ReplaceSubModelPart
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 修改/替换道具实例的指定模型子部件(通过子部件名、挂点等信息)
- 具体使用案例如下:
lua
local bool = Item:ReplaceSubModelPart(instId, partName, boneName, modelStr, offset, rot, scale)SetStringCustomData
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 写入/覆盖道具实例自定义字符串字段
- 具体使用案例如下:
lua
local bool = Item:SetStringCustomData(instId, key, value)SetBoolCustomData
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 写入/覆盖道具实例自定义布尔字段
- 具体使用案例如下:
lua
local bool = Item:SetBoolCustomData(instId, key, value)SetNumberCustomData
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 写入/覆盖道具实例自定义数值字段
- 具体使用案例如下:
lua
local bool = Item:SetNumberCustomData(instId, key, value)SetObjCustomData
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 写入/覆盖道具实例自定义对象字段(会被序列化保存)
- 具体使用案例如下:
lua
local bool = Item:SetObjCustomData(instId, key, value)SetArrayCustomData
- 参数及类型:
- 返回值及类型:
- bool:
boolean是否成功
- bool:
- 该方法的其他说明: 写入/覆盖道具实例自定义数组字段(会被序列化保存)
- 具体使用案例如下:
lua
local bool = Item:SetArrayCustomData(instId, key, value)GetStringCustomData
- 参数及类型:
- 返回值及类型:
- value:
string/ nil 值
- value:
- 该方法的其他说明: 读取道具实例自定义字符串字段
- 具体使用案例如下:
lua
local value = Item:GetStringCustomData(instId, key)GetBoolCustomData
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
lua
local facade = Item:GetItemInstFacade(instId)
if facade then
print("获取物品实例外观", facade)
endGetGridAttr
- 参数及类型:
- 返回值及类型:
- num:
number/ nil 属性值
- num:
- 该方法的其他说明: 读取掉落物/投掷物的指定格子属性
- 具体使用案例如下:
lua
local num = Item:GetGridAttr(objId,GridAttr.ItemNum)
print("获取格子属性", num)GetTags
- 参数及类型:
- 返回值及类型:
- obj:
table/ nil 标签组
- obj:
- 该方法的其他说明: 根据道具定义ID或道具预制ID获取标签组
- 具体使用案例如下:
lua
local itemid = "r2_7569576541013954344_36524" --自定义道具
local tags = Item:GetTags(itemid)
if tags then
print("道具定义中的标签:", tags)
end