php sql掉线率系统

use*_*585 2 php sql

这个问题可能看起来有点奇怪,但......

我运行一个用PHP编写的黑手党风格游戏网站.当玩家犯罪时,他们有机会获得"摔倒",让我们说一个新的武器.

我现在如何工作是他们犯下的每一个罪行,我在10中运行rand(),如果它达到10,那么我随机从firearms_db表中选择一行,然后给它们.

我想做的是,让每个武器都有不同的"掉落"百分率 - 所以更强大和更昂贵的武器会降低,而便宜的武器会频繁掉落.目前你得到一个便宜的机会,因为你是一个昂贵的机会.

有没有人有任何想法我怎么可以添加这个?我是否需要使用丢弃率值向firearms_db添加另一个字段然后使用它?

Tha*_*son 5

你可以尝试在表格中添加一个列,以某种方式对武器进行排名.例如,您的rocket_launcher评级为10,而a toothpick的评级为2.

数据库表可能如下所示:

+---------------------------------+
|    weapon           |  rating   |
|    rocket_launcher  |  10       |
|    toothpick        |  2        |
+---------------------------------+
Run Code Online (Sandbox Code Playgroud)

你可以做rand()十分之一.假设您将结果存储在res中.然后,查询数据库:

SELECT * FROM weapons WHERE rating <= res
Run Code Online (Sandbox Code Playgroud)

如果res是7,那么你只会得到toothpick.如果res是10,你将得到两个toothpickrocket_launcher.

然后,您可以从查询中随机选择要提供的武器.