Wahou la classe on dirait que j'inaugure la section...ça marche pas fort on dirait les scripts dans le coin...bah je suis lancé alors c'est parti !
Voici donc un nouveau script fait maison (pour ceux qui ont deja vu un de mes rares scripts^^)....rien de bien compliqué mais j'en avais besoin pour mon projet et en plus je pense que ça pourra etre utile à d'autres
Ce script permet donc simplement via la commande "inserer script" des evenements, de faire gagner au joueur un objet choisi aleatoirement parmis une liste, avec possibilité pour le createur d'attribuer des pourcentages à chaque objet. Le nombre d'objets possibles n'est pas limité. On peut ensuite enregistrer le nom de l'objet dans une variable du jeu pour l'ecrire dans un message.
Pour commencer, voici le script, les quelques instructions sont en bas
Comme d'hab' casez ça au dessus de "main".
- Spoiler:
- 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
Voici le principe : tout d'abord il ya 2 façons de l'utiliser, mais vous verrez c'est pas tres difficile....
>Premiere méthode, la simple : vous choisissez des objets et le joueur aura autant de chances d'avoir chacun de ces objets. Dans "inserer script" :
- Code:
-
Objets_hasard.new([objet1, objet2, objet3])
Remplacez simplement "objet1" etc par les
ID de vos objets (vous n'êtes pas limités à 3, a vous de choisir).
C'est tout ce qu'il y a à faire (pour l'histoire de la variable dont jai parlée au debut, voire plus loin^^)
>Ensuite la deuxieme methode fait intervenir des pourcentages, ça fonctionne pareil mais on ajoute un argument, en gros ça donne quelque chose comme ça :
- Code:
-
Objets_hasard.new([objet1, objet2, objet3], [10, 20, 70])
Pour les objets c'est toujours pareil, les chiffres 10, 20, 70 correspondent à la probabilité d'obtenir chaque objet, en pourcentage. Ici le joueur aura 10% de chances d'obtenir l'objet 1, 20% de chances d'obtenir l'objet 2 et ainsi de suite.
Attention, c'est bete mais la somme doit faire exactement 100, sinon ça pourrait provoquer des bugs. De plus en toute logique, il doit y avoir autant de pourcentages que d'objets....encore une fois ca pourrait bugger sinon.
>Afficher l'objet reçu :A chaque fois que le joueur gagne un objet de cette maniere son nom est enregistré dans une variable du jeu, qu'il est possible de changer à la ligne 6 du script :
- Code:
-
variable=1
Ici la variable 001 contiendra le nom du dernier objet reçu (en utilisant ce script), si elle est deja utilisée dans votre projet mettez en une autre. Pour ceux qui ne connaissent pas ruby, ca peut paraitre etonnant qu'une variable contienne du texte, mais c'est bien le cas (faites F9 pour verifier au pire^^"), par consequent il suffit pour voir le nom de l'objet d'afficher un message du genre :
"Vous avez reçu : \v[1] !"
Voilà, je crois que c'est tout, j'ai encore l'impression d'avoir ecrit un pavé^^
Pour les remarques et suggestions n'hésitez pas. J'avais pensé à gerer par exemple le nombre d'objets reçus, ou l'argent, mais l'utilisation du script risque d'etre beaucoup moins simple...