# 道具管理接口 Item

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

local Item = class.Item.new()

具体函数名及描述如下:

序号 函数名 函数描述
1 getItemName(...) 获取道具名称
2 getItemId(...) 获取掉落物的类型ID
3 getDropItemNum(...) 获取掉落物数量
4 randomItemID(...) 在资源库里随机创建一个道具
5 randomProjectileID(...) 在资源库里随机创建一个投掷物
6 getItemDesc(...) 获取道具类型描述
7 GetAttr(...) 获取道具属性值
8 playAct(...) 微缩掉落落物或投掷物播放动作

# getItemName

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取道具名称
  • 具体使用案例如下:
--获取id为1的物品的名称,参数1就是需要获取名称的物品id
local result,name=Item:getItemName(1)
--在聊天框显示
Chat:sendSystemMsg("id为1的物品的名字是:"..name)

# getItemId

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取掉落物的类型ID
  • 具体使用案例如下:
--每当有玩家做动画表情,聊天框显示房主周围10格内其中一个掉落物的id
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--获取房主的坐标
	local result,x,y,z=Player:getPosition(0)
	--获取房主周围10格内的掉落物数量和列表
	local result2,num,objids=World:getActorsByBox(3,x-10,y-10,z-10,x+10,y+10,z+10)
	if num>0 then--如果存在掉落物
		--获取掉落物列表中的第一个物品的id
		local result3,itemid=Item:getItemId(objids[1])
		--在聊天框显示
		Chat:sendSystemMsg("附近10格发现掉落物品!其中一个物品id为"..itemid)
	else--如果不存在掉落物
		--在聊天框显示
		Chat:sendSystemMsg("附近10格没有发现掉落物品!")
	end
end
--注册动画表情监听器,当玩家做动画表情时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# getDropItemNum

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取掉落物数量
  • 具体使用案例如下:
--每当有玩家做动画表情,聊天框显示房主周围10格内其中一个掉落物的堆叠数量
--当玩家做动画表情时执行此函数
local function Player_PlayAction(event)
	--获取房主的坐标
	local result,x,y,z=Player:getPosition(0)
	--获取房主周围10格内的掉落物数量和列表
	local result2,num,objids=World:getActorsByBox(3,x-10,y-10,z-10,x+10,y+10,z+10)
	if num>0 then--如果存在掉落物
		--获取掉落物列表中的第一个物品的堆叠数量
		local result3,itemnum=Item:getDropItemNum(objids[1])
		--在聊天框显示
		Chat:sendSystemMsg("附近10格发现掉落物品!其中一种物品有"..itemnum.."个堆叠在了一起")
	else--如果不存在掉落物
		--在聊天框显示
		Chat:sendSystemMsg("附近10格没有发现掉落物品!")
	end
end
--注册动画表情监听器,当玩家做动画表情时执行上面的函数
ScriptSupportEvent:registerEvent([=[Player.PlayAction]=],Player_PlayAction)

# randomItemID

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 在资源库里随机创建一个道具
  • 具体使用案例如下:
local code, itemid = Item:randomItemID()
if code == ErrorCode.OK then
	print('执行成功', code, itemid )
else
	print('执行失败')
end

# randomProjectileID

  • 参数及类型: 无
  • 返回值及类型:
  • 该方法的主要作用: 在资源库里随机创建一个投掷物
  • 具体使用案例如下:
local code, itemid = Item:randomProjectileID()
if code == ErrorCode.OK then
	print('执行成功', code, itemid )
else
	print('执行失败')
end

# getItemDesc

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取道具类型描述
  • 具体使用案例如下:
local code, desc = Item:getItemDesc(itemid)
if code == ErrorCode.OK then
	print('执行成功', code, desc )
else
	print('执行失败')
end

# GetAttr

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 获取道具属性值
  • 具体使用案例如下:
local code, value = Item:GetAttr(itemid, attr)
if code == ErrorCode.OK then
	print('执行成功', code, value )
else
	print('执行失败')
end

# playAct

  • 参数及类型:
  • 返回值及类型:
  • 该方法的主要作用: 微缩掉落落物或投掷物播放动作
  • 具体使用案例如下:
local code = Item:playAct(objid, animid, playmode)
if code == ErrorCode.OK then
	print('执行成功', code )
else
	print('执行失败')
end
上次更新: 2023/5/10 15:09:30