Ce script permet, en une ligne de "Insérer un script" de faire gagner au joueur un objet choisi au hasard parmi une liste. Il est possible de spécifier en pourcentage quelle chance le joueur a exactement de gagner chaque objet. C'est utile pour gérer des drops dans un A-RPG par exemple, ou faire une loterie.
Son auteur est Bahamut 1.2, merci de ne pas l'oublier dans les crédits de votre jeu.
En premier lieu, voici le code à coller dans un nouveau script, au-dessus de main :
- Code:
-
class Objets_hasard
#Par Bahamut 1.2
def initialize(objet, proba=0)
#ID de la variable qui contiendra le nom de l'objet (effacer ou mettre en commentaire pour n'utiliser aucune variable)
variable=1
#premier tableau : les objets qu'il est possible de trouver
#deuxieme tableau : les probabilités pour chaque objet
if proba==0
#Proba n'est pas defini par l'utilisateur (vaut 0) => Meme proba pour chaque objet
hasard=rand(objet.size)
id_objet=objet[hasard]
else
#Proba est defini (c'est un array)
hasard = rand(100)+1
curseur=1
for i in 0..objet.size-1
if hasard >= curseur and hasard < curseur+proba[i]
id_objet=objet[i]
break
end
curseur += proba[i]
end
end
$game_party.gain_item(id_objet, 1)
$game_variables[variable] = $data_items[id_objet].name
end
end
Ensuite, pour l'utiliser, vous avez 2 possibilités :
Méthode 1Avec cette méthode, chaque objet à autant de chance d'être gagné que les autres objets.
A mettre dans la commande événement "Insérer un script":
- Code:
-
Objets_hasard.new([objet1, objet2, objet3])
Il vous suffit alors de remplacer "objet1", "objet2",etc... par les ID des objets que le joueur a une chance de gagner.
Note : vous pouvez mettre plus ou moins que 3 objets.
Méthode 1Avec cette méthode, vous pouvez indiquer précisément quel pourcentage de chance chaque objet a d'être gagné.
A mettre dans la commande événement "Insérer un script":
- Code:
-
Objets_hasard.new([objet1, objet2, objet3], [p1, p2, p3])
Pour les objets, c'est pareil que dans la première méthode. La seconde liste de chiffres "p1", "p2",etc... indique le pourcentage de chance de gagner chaque objet.
Note : vous pouvez mettre plus ou moins que 3 objets.
Note² : pour éviter les bugs, la somme des pourcentages doit être égale à 100 et il doit y avoir autant d'objets que de pourcentages associés.
Comment savoir quel objet a été gagné ?Le script enregistre
le nom (et pas l'ID) de l'objet que vous avez gagné dans une variable (la variable 1 par défaut). Ceci est modifiable en début du script.
Vous pouvez ensuite utiliser un message du type : ""Vous avez reçu : \v[1] !""
Merci Bahamut 1.2 !