php sql删除率系统
这个问题可能看起来有点奇怪,但是 我运行一个用PHP编写的黑手党风格的游戏网站。当玩家犯罪时,他们很有可能会被“打倒”,比如说一件新武器 我现在是如何让它工作的是他们所做的每一次犯罪,我从10个中运行一个rand(),如果它达到10,那么我会从Armocrams_db表中随机选择一行,并给他们这个值 但我想做的是,使每种武器都有不同的“下降”百分比,这样威力更大、价格更昂贵的武器下降的更少,而便宜的武器下降的更频繁。目前,你买便宜的机会和买贵的一样多php sql删除率系统,php,sql,Php,Sql,这个问题可能看起来有点奇怪,但是 我运行一个用PHP编写的黑手党风格的游戏网站。当玩家犯罪时,他们很有可能会被“打倒”,比如说一件新武器 我现在是如何让它工作的是他们所做的每一次犯罪,我从10个中运行一个rand(),如果它达到10,那么我会从Armocrams_db表中随机选择一行,并给他们这个值 但我想做的是,使每种武器都有不同的“下降”百分比,这样威力更大、价格更昂贵的武器下降的更少,而便宜的武器下降的更频繁。目前,你买便宜的机会和买贵的一样多 有人知道我该怎么添加这个吗?我是否需要向火器
有人知道我该怎么添加这个吗?我是否需要向火器数据库中添加另一个具有丢弃率值的字段,然后使用该字段?最简单的方法可能是始终选择一个项目,然后使用丢弃率列来确定他们是否实际获得该项目。您可以将其设置为%几率,并将其存储为整数。您可以编写一个公式:对于给定级别的武器和类型的武器,您可以获得“下降”率。可以使用对数/指数来获得非线性曲线 您还可以使用一个非常简单的公式: chanceOfDrop=(maxprice-priceOfWeapon)/maxprice*randomFactor()
例如,使用介于-0.8和1.2之间的randomFactor()。您可以尝试向表中添加一列,以某种方式对武器进行排序。例如,您可以将
火箭发射器
评级为10,而牙签
评级为2
数据库表可能如下所示:
+---------------------------------+
| weapon | rating |
| rocket_launcher | 10 |
| toothpick | 2 |
+---------------------------------+
你可以做一个rand()。假设您将结果存储在res中。然后,查询数据库:
SELECT * FROM weapons WHERE rating <= res
SELECT*从我认为您希望实现的武器等级中(即指定每个项目的机会)。您可以显示您的db模式吗。简短的回答是肯定的,添加另一个允许对武器进行评级的专栏可能是最容易的。否则如何判断武器的等级。这种方法不会给你同样的概率得到顶级武器或垃圾武器吗?如果第一个rand()
输出10,它会给你同样的概率。如果你的第一个rand()
低于10,那么你将无法获得该武器-获得火箭发射器比获得牙签更难。一旦你剔除了排名靠前的武器,你将有同样的机会从查询结果中获得任何武器。好的,谢谢,所以我的查询类似于SELECT*from db_arms WHERE rating what what what what,以便我将下降率存储为武器表条目中的一个新字段?那么,我如何根据下降率概率提取记录呢?对不起,如果我误解了,数学不是很好:P