Обучение/Помощь новичкам | PHP рондом
Как правильно реализовать выпадение допустим вещей.
Шансы выпадения :
Шмот 1 - 10% шанса выбить.
Шмот 2 - 2% выпадения
Шмот 3 - 40% выпадения и т.д
Всем спасибо
Шансы выпадения :
Шмот 1 - 10% шанса выбить.
Шмот 2 - 2% выпадения
Шмот 3 - 40% выпадения и т.д
Всем спасибо
function drop($items)
{
$sumOfPercents = 0;
foreach($items as $itemsPercent)
{
$sumOfPercents += $itemsPercent;
}
$decimals = numberOfDecimals($sumOfPercents);
$multiplier = 1;
for ($i=0; $i < $decimals; $i++)
{
$multiplier *= 10;
}
$sumOfPercents *= $multiplier;
$rand = rand(1, $sumOfPercents);
$rangeStart = 1;
foreach($items as $itemKey => $itemsPercent)
{
$rangeFinish = $rangeStart + ($itemsPercent * $multiplier);
if($rand >= $rangeStart && $rand <= $rangeFinish)
{
return $itemKey;
}
$rangeStart = $rangeFinish + 1;
}
}
$drop = drop(['0' => 90(это проценты), '1' => 10]);
Дальше делаешь выборку:
IF ELSE
{
$sumOfPercents = 0;
foreach($items as $itemsPercent)
{
$sumOfPercents += $itemsPercent;
}
$decimals = numberOfDecimals($sumOfPercents);
$multiplier = 1;
for ($i=0; $i < $decimals; $i++)
{
$multiplier *= 10;
}
$sumOfPercents *= $multiplier;
$rand = rand(1, $sumOfPercents);
$rangeStart = 1;
foreach($items as $itemKey => $itemsPercent)
{
$rangeFinish = $rangeStart + ($itemsPercent * $multiplier);
if($rand >= $rangeStart && $rand <= $rangeFinish)
{
return $itemKey;
}
$rangeStart = $rangeFinish + 1;
}
}
$drop = drop(['0' => 90(это проценты), '1' => 10]);
Дальше делаешь выборку:
IF ELSE
Rand(); bunu islet
php
// Шанс выпадения (в процентах)
$proc = 10;
$rand = mt_rand(1,100);
if($rand <= $proc) {
echo 'Вещь выпала при шансе '.$proc.'%';
}
else {
echo 'Вещь не выпала при шансе '.$proc.'%';
} 213731682 (20.11.2021 в 21:08)
Как правильно реализовать выпадение допустим вещей.
Шансы выпадения :
Шмот 1 - 10% шанса выбить.
Шмот 2 - 2% выпадения
Шмот 3 - 40% выпадения и т.д
Всем спасибо
Как правильно реализовать выпадение допустим вещей.
Шансы выпадения :
Шмот 1 - 10% шанса выбить.
Шмот 2 - 2% выпадения
Шмот 3 - 40% выпадения и т.д
Всем спасибо
php
$chance = 40; // 40%
if (rand(1, 100) <= $chance) echo 'Ок';