Système de rareté

Répondre
Partager Rechercher
Bonjour

l'un d'entre vous saurait comment je peut m'y prendre pour faire un système de rareté?

j'ai un distributeur d'ours avec plusieurs couleur dedans

je désire avoir un pourcentage et pouvoir choisir qu'elle couleur sera donnée le plus
bonjour, il suffit de faire un tirage au sort " truqué".....par exemple
(integer)llFrand( 10.0) donnera un entier de 0 à9.....suivit d' un truc du genre
if ( tirage == 0) : donner nounours blanc (1/10)
else if (tirage ==1 || tirage ==2) :donner nounours rouge (2/10)
else : donner nounours bleu (7/10)
Hello,
tout dépend de ta connaissance en scripting. voici comment moi je procéderais, c'est une analyse hein pas un script -)

Tu pourrais partir sur un tableau qui contient les items a donner et leur probabilité en float par exemple.
  • Ours bleu: 50%, 0.5
  • Ours vert: 35%, 0.35
  • Ours pourpre: 25%, 0.25
  • Ours jaune: 5%, 0.05
  • Ours dorés: 0.1%, 0.01

Ensuite quand il clique tu fais une boucle pour déterminer quel ours tu vas lui donner par exemple en faisant des random sur 10000. Je te l'écris en français j'ai pas le lsl bien en tête ces temps ^^

string oursadonner = ""

tant que oursadonner = ""
{

choisis un ours aléatoire dans le tableau (rand() x nombre d'éléments du tableau)
si un random() x 10000 < (10000 x probabilité) alors oursadonner = ourschoisi
sinon oursadonner = ""
}

Exemple de fonctionnement
1. Choisi un ours: le jaune
2. Tirer un nombre aléatoire entre 0 et 10000: 5429
3. Si 5429 < (10000 x 0.05 = 500): non : on recommence

4. Choisi un ours: le pourpre
5. Tirer un nombre aléatoire entre 0 et 10000: 791
6. Si 791 < (10000 x 0.25 = 2500): oui: on donne l'ours poupre !

J'espère que ça a été assez compréhensible. bonne chance
Avec ce système l'ours doré va sortir très peu!

AC
NB.

En y réfléchissant mon système va fonctionner mais les ours qui seront sélectionnés ne refléteront pas les probabilités.

Il y a un autre moyen de faire...En déduisant d'un nombre aléatoire les probabilités de chaque ours...Enfin si qqn veut s'y coller -)
J'ai posé la question à un ami voici sa solution:

Tu fais ton tableau d'ours a donné: par exemple
ours brun : 50%
ours jaune : 30%
ours vert : 15%
ours rouge : 5%

ensuite pour choisir l'ours, tu tire un nombre X aléatoire entre 0 et 10'000

ours brun:
tu compare ce nombre aleatoire a 50% * 10'000

* si X est plus petit : tu donnes l'ours brun

* si X plus grand
tu remplaces X par X - (50% * 10'000)

ensuite tu recommences pour ours jaune:

* si X < 30% * 10'000 : tu donnes ours jaune

* si X > 30% * 10'000 : X = X -(30% * 10'000)

ensuite tu recommences pour ours vert:

* si X < 15% * 10'000 : tu donnes ours vert

* si X > 15% * 10'000 : tu donnes l'ours rouge

Merci Ibicus !
Pourquoi se compliquer la vie ?

Code PHP:

// Noms des ours
list NOMS = ["ours brun","ours jaune","ours vert","ours rouge"];

// Pourcentages
list POURCENTAGES = [5030155];

default
{
    
touch_start(integer total_number)
    {
        
// Valeur aléatoire
        
integer r = (integer)llFrand(100);
        
// Recherche ours
        
integer i;
        
integer s;
        
integer n llGetListLength(NOMS);
        for(; 
n; ++i) {
            
+= llList2Integer(POURCENTAGESi);
            if (
s) {
                
llGiveInventory(llDetectedKey(0), llList2String(NOMSi));
                return;
            }
        }
    }

Citation :
Publié par Arthur Corrigible
salut
ok mais comme mon premier exemple le taux que tu indiques ne correspond pas réellement au taux de loot -)
En es-tu sûr ?
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés