Sujet n°12349
Posté par Ginsetsu le 22 Jan - 11:59 (2013)
Titre : [Résolu][PSP v0.7] Oeuf avec Pokemon Aléatoire à l'intérieur
Bonjour à toutes et à tous !

Comme le dit le titre du sujet, j'aimerai que mon personnage reçoive un oeuf avec, à l'intérieur, un pokemon aléatoire (définit par une liste que j'ai faite). Pour ce faire, j'ai créé un personnage (un professeur, très banal je sais) qui, au lieu de donner le choix entre trois starters, nous donne simplement un oeuf. Ensuite, une fois le nombre de pas définit, l'oeuf éclot et un pokemon aléatoire en sort (que j'aurais toujours définis, hein ?). J'ai déjà créé l'évènement lié au professeur, qui donne un oeuf, mais un oeuf avec un pokemon définit, ce que je ne veux pas.
Je vous demande donc si, déjà, c'est possible de faire ceci, si non, et bien tant pis, je me débrouillerai autrement.
Je vous remercie par avance de votre aide,
Tout en continuant à chercher,
Ginsetsu.

Posté par Gold le 22 Jan - 12:41 (2013)
Moi à ta place j'utiliserais des variables pour donner au joueur un oeuf différent en fonction du nombre de la variable. Le Pokémon serait ainsi défini aléatoirement au moment où le joueur obtiendrait l'oeuf.

Posté par Ginsetsu le 22 Jan - 12:44 (2013)
Ah oui ! De ce que j'ai vu, on ne peux attribuer un oeuf qu'en définissant le Pokémon qu'il contient. Je vais chercher sur cette voie, je vous tiens au courant de si je trouve (ou non).

EDIT : Bon, je vous prie de m'excuser mais je sèche... Je me suis pourtant bien exercé à créer des events, avec switch et autres, mais pourtant je n'arrive pas à créer le pnj qui donne un oeuf aléatoire... De plus, comme je ne m'y connais pas en Ruby, je n'ose pas toucher aux Scriptes, de peur de les corrompre...
Je vous demande donc de l'aide, comme quel scripte changer, ou quoi écrire s'il faut en faire un nouveau... Je vais essayer d'apprendre un peu plus le Ruby, en attendant.
Je vous remercie par avance,
Ginsetsu.

Posté par hoirogorio le 22 Jan - 18:06 (2013)
effectivement inutile de toucher aux scripts
affecte une valeur à un à une variable via ton event entre 1 et le nombres de possibilités que tu veux
ensuite fais une condition avec si cette variable est égale à 1 alors: prof donne un pikachu
si cette variable est égale à 1 alors: prof donne un lixy
si cette variable est égale à 1 alors: prof donne un limonde (lol^^)
ect...

Posté par Ginsetsu le 22 Jan - 19:16 (2013)
Hum... Comment on fait pour affecter une valeur à une variable ? Moi j'ai fait ça :
Spoiler
@>Conditionnal Branch: Variable [0004: INDEX POKEMON] == 1
@>
: Else
@>
: Branch End

Désolé si c'est mal écrit, mais je n'ai pas réussis à copier/coller.
Pour ce qui est du code, je pense que ce n'est pas du tout ça, pourtant j'ai cliqué et fais pas mal de trucs, mais c'est ce qui se rapproche le plus de ce que tu m'as dit.
Je cherche encore, si jamais je tombe sur un truc mieux

EDIT : Il y a bien l'onglet "Contrôl Variables" qui correspondrait, mais j'avoue que je ne comprend pas trop à quoi ça aboutie...

EDIT 2 : Bon, je pense avoir un peu trouvé. J'ai créé une variable que j'ai nommé "PokemonAleatoire", après je dis que cette variable est égale à un. Ensuite, je mets des Conditions qui sont : Si la variable = 1 alors script: ajouter_pokemon(1, 5)...
Le hic, c'est que je ne sais pas où insérer les autres... Je dois refaire une condition pour chaque Pokemon, ou je mets tous les autres à la suite des Else, Else, Else... ?

EDIT 3 : Désolé pour les multiples édit... Mais là c'est pour dire que j'ai trouvé ! Enfin, je crois... Juste pour savoir : J'ai créé une variable qui prend, aléatoirement, la valeur entre 1 et 50. Ensuite, je dis que si cette variable = 1, alors j'obtiens bulbisard, si la valeur = 2 alors j'obtiens carapuce... etc... C'est bien ça ?

Posté par hoirogorio le 22 Jan - 19:49 (2013)
quand je dis pas besoin de toucher aux scripts... c'est qu'il n'y a vraiment pas besoin de toucher aux scripts (à vrai je ne comprends même pas compris ton code lol Imbécile heureux )
tu cliques sur ton event, tu doubles cliques sur la page listes des commandes d'évènements et tu sélectionnes gestion des variables et tu vas dans une valeur aléatoire entre...
Et après tu fais ce que j'ai mis dans mon post d'avant

Posté par Ginsetsu le 22 Jan - 20:22 (2013)
Bon j'ai trouvé ! Merci à vous deux, Gold et Hoirogorio, car vous m'avez bien aiguillés ! Si besoin est, je peux mettre le "code" que j'ai pour ceux que ça interesse. Même si au final ce n'était pas si compliqué que ça...
En vous remerciant encore une fois,
Ginsetsu.

Posté par The_Doctor le 23 Jan - 12:49 (2013)
Je suis assez interresser par le code , pourrais tu le posté ?

Posté par Ginsetsu le 23 Jan - 14:48 (2013)
Bien sur, le voici. Cependant il a était écrit pour un choix entre 52 Pokemon différents, à vous de le modifier comme il faut pour qu'il corresponde à ce que vous souhaitez.
(Désolé, je ne sais pas comment copier le texte contenu dans une event, pour le coller ensuite...)
Je vais donc te dire la méthode à suivre :
1) control variable (single tu choisis une place libre que tu nommes comme tu le souhaites), opération : set, random de 1 à de que tu veux),
2) une fois ta variable créée, tu crées une condition à branche (page 1, variable [ta variable], Equal to, Constant = 1),
3) Dans cette condition, tu crées une nouvelle condition à branche, où tu vas page 4, scripte, ajouter_pokemon (ou oeuf)([ID POKEMON], [lvl ]),
4) Retour tout au bout (et non dans la première branche) tu crées une nouvelle variable à branche, mais cette fois avec constant = 2,
5) Dans cette condition, condition à branche avec le second Pokemon voulu,
6) tu répètes ceci jusqu'à avoir ce que tu voulais.


J'espère avoir été clair. Si non, j'essaierai de mieux m'expliquer.
EDIT : Voici une image d'un bout de mon event, si cela peut aider à mieux comprendre :

Posté par Ginsetsu le 23 Jan - 16:05 (2013)
Pas si compliquée que ça. J'ai mis quelque chose comme 2 minutes à rentrer tout les Pokemon. Tu copies/colles la première branche avec ton premier pokemon en autant d'exemplaire que nécessaire, après il faut juste changer la valeur de la variable ainsi que l'id du pokemon, ce qui prend 5s, environ. C'est sur que c'est fastidieux, mais au moins elle fonctionne et je suis content d'avoir réussis à faire ce que je voulais (encore merci aux deux personnes qui m'ont aidé).
Mais c'est sur que pour moi, j'en avais que 52, si toi tu en veux 300 ou 600, bonne chance et surtout, n'oublies pas le café Lord teatime

Posté par The_Doctor le 23 Jan - 16:55 (2013)
Je vien de trouver un truc beaucoup plus court Clin d'œil foireux .




Je le met :


1/ Creer une variable appelé " Oeuf/pokémon " ou bien un autre truc.
2/ Faire un " Gestion Variable dans l'event et choisir aléatoire entre ce que vous voulez et le numero max du pokémon.
3/ Faire " inserer un script " et écrire
Code:

ajouter_pokémon($game_variable[X])

X est a remplacer par le numero de la variable.


Exemple : Si on veut donner un poékmon entre le numéro 1 et le numero 600 , 
on met Gestion Variable , aléatoire entre 1 et 600 sur la variable Oeuf ou autre Clin d'œil foireux


J'espere avoir été clair.

Posté par Pαlвσlѕку le 23 Jan - 19:21 (2013)
Il y a encore plus court, deux lignes (sans les commentaires). Imbécile heureux

Code:

# les ids des Pokémon que tu veux, par exemple ici : 1, 2 et 3 ; tu peux en mettre autant que tu veux
list = [1,2,3]
# ajoute au hasard un œuf de la liste
ajouter_oeuf(list[rand(list.size)])

Il suffit de mettre ça en insérer de script.

Posté par Ginsetsu le 24 Jan - 20:13 (2013)
Ah voila ! C'était la fonction rand que je ne savais pas comment utiliser ! Au départ c'était un code comme celui-là que je voulais faire, mais comme je ne savais pas me servir de la fonction rand, ni ne savais qu'on pouvait l'implanter dans le script d'ajout d'oeuf, je n'aurais jamais trouvé ça...
Merci à toi, Pαlвσlѕку, pour ce code court, mais génial !
Pour dab777, le truc est qu'avec ton code, on ne peut pas retirer les évolutions. Imagines quelqu'un tombant sur un Dracolosse lvl 5, et un autre sur un chenipan... Il y aurait un gros déséquilibre, tout de même.
M'enfin, il y a assez de code pour qui voudrait faire ce genre de chose dans son jeu ! ^^
En vous remerciant tous de l'attention que vous avez portée à mon problème,
Ginsetsu.