GameMaker Studio 2 Desktop

GameMaker Studio 2 Desktop

Not enough ratings
Výběr předmětu podle šance
By Orbis
Funkce náhodně vybere jeden z předmětů na základě jejich pravděpodobností
   
Award
Favorite
Favorited
Unfavorite
Funkce náhodně vybere jeden z předmětů na základě jejich pravděpodobností
Představ si, že chceš náhodně vybrat jeden předmět ze seznamu. Některé předměty jsou vzácnější, jiné běžnější. Tahle funkce to dělá tak, že vezme předměty jeden po druhém, od těch nejvzácnějších po ty nejběžnější, a u každého z nich se náhodně rozhodne, jestli zrovna padne. Každý předmět má svoji šanci na to, že bude vybrán – například 1 %, 15 %, nebo 50 %.

Funkce se zastaví u prvního předmětu, který "padne", a ten vrátí. Pokud žádný předmět nepadne, vybere ten úplně poslední jako záložní.

Díky tomu se může stát, že občas získáš vzácný předmět, ale častěji dostaneš běžný. Je to spravedlivý a jednoduchý způsob, jak řídit náhodné odměny, aniž by bylo potřeba složitě počítat šance nebo vytvářet složité systémy.

function choose_rare() { var argc = argument_count; for (var index = 0; index < argc - 1; index += 2) { var item = argument[index]; var chance = argument[index + 1]; if (random(100) < chance) { return item; } } return argument[argc - 1]; }

var loot = choose_rare( "Legendární meč", 1, "Diamantový meč", 4, "Zlatý meč", 15, "Železný meč", 30, "Dřevěný meč", 50, "Zlomená vidlička" // Výchozí předmět, pokud nic nepadne );

Tady je jednoduchá tabulka, která ukazuje, jak si můžeš představit rozdělení šancí při výběru náhodného předmětu. Funguje to tak, že hra postupně zkouší předměty od nejvzácnějšího po nejběžnější, každý se svou vlastní šancí. Pokud žádný nepadne, získáš ten poslední jako výchozí.

Předmět
Šance na získání
Legendární meč:
1 %
Diamantový meč:
4 %
Zlatý meč:
15 %
Železný meč:
30 %
Dřevěný meč:
50 %
Zlomená vidlička:
Pokud nepadne nic jiného

Výsledky z otevření 100 truhel:

Předmět
Počet získaných kusů
Legendární meč:
Diamantový meč:
Zlatý meč:
15×
Železný meč:
27×
Dřevěný meč:
20×
Zlomená vidlička:
34×