我对某事有所了解,但我不知道该怎么做:D
基本上就像在游戏中一样,每6个小时你可以打开一个胸部,你可以免费获得一些物品。现在我想拥有一个用户可以每6小时打开一次的箱子,我有用mysql服务器编写的项目,其中每个项目都给用户提供经验值。但怎么办呢?
假设数据库有15个项目,现在每个项目都有其机会值
nothing = 75% of getting it
sword_1 = 15% of getting it
sword_2 = 30% of getting it
任何想法怎么做?
答案 0 :(得分:2)
定义%的范围以获取项目 示例 - sword_1 = 0-15%,sword_2 = 15-45% 请注意,上面的数字加起来不是100%,所以除非你真的想要多次返回,否则有时......以上范围可以得到任何结果。 如果您想在滚动上获得多个奖励,只需相应地调整范围。
在0到100之间生成一个随机数。对于生成的数字在该范围内的项目,这些是您在该轮中赢得的奖励。
答案 1 :(得分:0)
您可以为表格中的每个项目指定一个数字值,获得它的百分比将是它与下一个最低数字之间的差异。
Nothing, 60 (60% chance)
sword_1, 70 (10% chance)
sword_2, 100 (30% chance)
确保您的最高物品为100。
然后,您可以使用随机数从该表中进行选择:
SELECT * FROM ChestItems WHERE ChanceValue < FLOOR(RAND() * 100) ORDER BY ChanceValue DESC LIMIT 1;
有几种(也许更好)的方法可以做到这一点。这只是一个简单的例子。