当前位置:   article > 正文

第二章天龙八部lua学习-兑换,扣除2_luafndel

luafndel

接着上一张继续将一些物品的扣除

目录 :

​ 一: 给物品,扣除物品

一: 给物品,扣除物品

既然提到给物品,和扣除物品,那我们先简单的举个例子:

如获取某个物品A 需要物品B 10个

这种一般我们会先判断一下需要的物品是否充足

	if LuaFnGetAvailableItemCount(sceneId, selfId,B) < 10 then
		return x955555_NotifyTip( sceneId, selfId,"B不足10个" )
	end
  • 1
  • 2
  • 3

这里的x955555_NotifyTip是事先定义好的提示框,上一章我们已经讲过了不懂的小伙伴可以回去看下

这里的LuaFnGetAvailableItemCount(sceneId, selfId,B) 函数就是获取背包中B物品的数量,然后做了一个If判断是否足够即可

理论上来说这个判断如果没问题就可以直接给物品了,但是有个情况要注意下,背包如果没位置的话发出去的东西会接收不到 ,所以需要先判断一下背包的格子是否够

if LuaFnGetMaterialBagSpace(sceneId, selfId) < 1 or LuaFnGetPropertyBagSpace(sceneId, selfId) < 1 then
	return x955555_NotifyTip( sceneId, selfId, "背包空格不足1个!" )
end
  • 1
  • 2
  • 3

LuaFnGetMaterialBagSpace(sceneId, selfId), LuaFnGetPropertyBagSpace(sceneId, selfId)是分别判断物品栏和材料栏

倒着接下来就是要扣除物品B 然后给A 了

if LuaFnDelAvailableItem(sceneId,selfId, B,10)  ~=  1 then
	return x955555_NotifyTip( sceneId, selfId, "扣除失败" )
end
  • 1
  • 2
  • 3

在调用删除方法的时候LuaFnDelAvailableItem(sceneId,selfId, B,10) 一般会有个返回值 1 代表成功,

所以这里判断下如果删除的返回值不等于1 代表删除失败了(可能很多 自己想像)

如果到这里都没有任何问题就可以给与物品了

给物品其实有两种写法,最简单的写法

 local  item = TryRecieveItem( sceneId, selfId, A, 1)
  • 1

这里的A 代表的是给予的物品, 1这里要注意了 代表的不是给1个物品 他的枚举有两种 0 不绑定 1 绑定

扩展一下: 如果给多个物品呢 ?

for i = 1, 10 do 
 local  item = TryRecieveItem( sceneId, selfId, A, 1)
end 
  • 1
  • 2
  • 3

是的只要循环一下就可以了, 但是大家可以想一下如果是100,甚至是1000个物品呢 可能会卡顿所以这里其实提到了 给物品是有两种写法

第二种写法: 批量给物品

	 BeginAddItem(sceneId)
	 AddItem(sceneId, A, 10)
	 EndAddItem(sceneId,selfId)
	 AddItemListToHuman(sceneId,selfId)
  • 1
  • 2
  • 3
  • 4

这里的A 同样是给的物品,10就是实际的数量, selfId就是获取物品的人,以后对于sceneId和seleId不会过多解释了

其实这个逻辑了结了,就可以写一些物品兑换的功能了

End–

QQ群:315536289

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/410059
推荐阅读
相关标签
  

闽ICP备14008679号