%に基づいてランダムに遭遇しようとしています。MYSQL/PHP - %
私は、MySQLデータベースに "monster_chancespawn" という列ました:1が得た
- モンスターモンスター2が30%
- モンスター3が20%を得ました
- 50%を
私がしたいのは、ランダムなMySQL SELECT
を私の "モンスター"データベースでこれらの%に基づいて行うことです。
$monsterspawn=$db->prepare('SELECT * FROM monster');
$monsterspawn->execute();
$monsterspawn->CloseCursor();
foreach ($monsterspawn as $infospawn)
{
echo . $infospawn["monster_chanceloot"] . ;
}
を得たが、何も本当に便利。 私がしたいことは:
- それぞれのモンスターに戦利品を得る可能性があります。
- "もしrandが0から50の間であれば、モンスター1を生み出すかもしれない。もしそれが50から80の間であれば、モンスター3を生み出す。それが80と100の間であれば、モンスター3を生み出す。柔軟、そして私は私が主な問題3.モンスターのため
$randomspawn = rand(0, 100); if ($randomspawn >= 0 && $randomspawn <= $infospawn["monster_chanceloot"]) { $monstername = "Monster1" } elseif ($randomspawn >= $infospawn["monster_chanceloot"] && $randomspawn <= $infospawn["monster_chanceloot"](Monster 2's one)) { $monstername = "Monster2" }
と同じことが、つまり私を聞かせていないだろうと思い、このような何かを行うことができ
monster_chanceloot
値
を変更したときに変更します利用可能なモンスターの数を変更してください。もう1つの問題は、どのモンスターのモンスターチェンジを得るかわからないことですe foreach
。 30個のMYSQL接続をしたくないので、毎回それを使用しないでください。
ありがとうございます!
EDIT
:私はMonster1、Monster2、Monster3ました:ここは"ドイツDrulyk" によって与えられた可能性があります。 私はモンスター1私のデータベースとMonster2 1倍2倍に複製します。
私は今3 Monster1、2 Monster2と1 Monster3を持っています。 モンスター1を選択する確率は50%、モンスター2は33,3、モンスター3は16,6です。
より正確な結果を得るには、100にコピーして1モンスター= 1%にすることができます。モンスターを取得するには、単に実行します。
$query=$db->prepare('SELECT * FROM MONSTERDDB ORDER BY RAND() LIMIT 1');
$query->execute();
あなたは100以上のモンスターを作りますか?特定のモンスターがタイプ/層内で同じ正確な機会を持っている場合はどうなりますか?このシナリオを想像してみてください。モンスター1または2でなければならない時間の50%、モンスター3でなければならない時間の30%、モンスター4または5でなければならない時間の20% – MonkeyZeus
私は答えを書いてみます – MonkeyZeus
私の最後のコメントを削除しました、申し訳ありません、私は非常によく理解していませんでした)。まず、5〜20個のモンスターがありますが、大きな数字はありません。あなたの例では、通常、誰も私のデータベースに同じ%を持つことはできませんが、それが当てはまる場合、私はそれを100%に制限するので、実際にはわかりません。つまり、別のモンスターを置くと、他のモンスターの%も等しくなります。 (50〜40%、30〜24 ..) –