抽取游戏礼包中的物品的常见逻辑

本文探讨了页游中礼包开启时物品抽取的常见逻辑,包括获取所有物品、按概率抽取部分物品以及仅抽取每组一个物品的情况,并提供了一份简单的Lua实现代码示例。
摘要由CSDN通过智能技术生成

这篇文章纯粹是为了整理我阅读的"礼包业务"代码。页游中很常见"双击一个礼包获取礼包中的物品"。常见的有如下逻辑:

1.打开礼包后获取礼包中的所有物品。 

2.打开礼包后获取礼包中的部分物品。在这些物品中,有些物品根据物品本身的概率来决定是否被抽取,有些物品则是从一组物品中抽取一个。比如"三级宝石"礼包,打开之后获取"三级攻击宝石"、"三级生命宝石"等其中之一。

3.打开礼包后获取礼包中的部分物品。这些物品是仅仅抽取每组中的一个物品,有概率决定。

  下面则是我写的逻辑Lua代码。代码很简单,因此直接贴出。

 

--[[
日期:2014年3月24日
文件:从礼包中选择满足条件的物品。
]]


--礼包配置表,配置各种礼包
StaticAwardTable =
{
	--grouptype = 0,获取此礼包中的所有物品。
	-----------------------------------------------------
	{    		
		id = 11,
		grouptype = 0,
		award =	
		{	
			{ type = 0, count = 1, itemId = 110,  quality = 0, strong = 0, bind = 1,},
			{ type = 0, count = 1, itemId = 111,  quality = 0, strong = 0, bind = 1,},
			{ type = 0, count = 1, itemId = 112,  quality = 0, strong = 0, bind = 1,},
			{ type = 0, count = 1, itemId = 113,  quality = 0, strong = 0, bind = 1,},
			{ type = 0, count = 1, itemId = 114,  quality = 0, strong = 0, bind = 1,},
		},	
	},

	--grouptype = 1,对礼包中的物品分组进行处理,相同组的物品应配置在一起。
	-----------------------------------------------------
	{    		
		id = 22,	 --礼包id
		grouptype = 1,
		award =	
		{
			--group = 0,根据单个物品的rate决定是否抽取此物品,由于概率最大值是10000,配置10000表示此物品必出。
			{ type = 0, count = 1, itemId = 2201,  quality = 0, strong = 0, bind = 1, group = 0, rate = 10000,}, --必出
			{ type = 0, count = 1, itemId = 2202,  q
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值