如何编程'机会'?

时间:2014-10-20 17:27:24

标签: c# mysql

我对某事有所了解,但我不知道该怎么做:D 基本上就像在游戏中一样,每6个小时你可以打开一个胸部,你可以免费获得一些物品。现在我想拥有一个用户可以每6小时打开一次的箱子,我有用mysql服务器编写的项目,其中每个项目都给用户提供经验值。但怎么办呢? 假设数据库有15个项目,现在每个项目都有其机会值 nothing = 75% of getting it sword_1 = 15% of getting it sword_2 = 30% of getting it 任何想法怎么做?

2 个答案:

答案 0 :(得分:2)

  1. 定义%的范围以获取项目 示例 - sword_1 = 0-15%,sword_2 = 15-45% 请注意,上面的数字加起来不是100%,所以除非你真的想要多次返回,否则有时......以上范围可以得到任何结果。 如果您想在滚动上获得多个奖励,只需相应地调整范围。

  2. 在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;

有几种(也许更好)的方法可以做到这一点。这只是一个简单的例子。