Accueil du SiteAccueil du Site  AccueilAccueil  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  ConnexionConnexion  S'enregistrerS'enregistrer  




Partagez | 
 

 Gagner un objet aléatoirement

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Zexion
Administrateur
Administrateur
avatar

Masculin
Messages postés : 6227
Date d'inscription : 04/01/2012
Jauge LPC :
97 / 10097 / 100












MessageSujet: Gagner un objet aléatoirement   Mar 9 Juil 2013 - 19:49

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 1
Avec 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 1
Avec 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 !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
Gagner un objet aléatoirement
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker XP :: Autres-
Sauter vers: