Sujet n°7157
Posté par shaolan le 1 Juil - 10:10 (2010)
Titre : Problème avec le système d'échange pokémon. Une solution ?
Bon je crois que le titre est assez explicite :

Je rencontre des problèmes lors d'échanges pokemon : le pokemon envoyé change de sexe et les stats de combats change (sauf celle de défense, et les PV). Chaque échange produit les mêmes erreurs.

Suis-je le seul à avoir ce problème ? une solution a-t-elle été trouvé ? (Si oui, je ne l'ai pas trouvé, cela serait gentil de me l'indiquer)

Posté par Zion le 19 Juil - 00:06 (2010)
Non, tu n'es pas le seul a avoir ce problème. Je pense, et les créateurs de ce code me corrigeront si j'ai tort, que
le code ne prend pas en charge les stats et le sexe du pokémon échangé. Mais ceux-ci sont générés pendant que
le pokémon entre dans ton équipe, comme quand tu fais ajouter_pokémon normalement.


EDIT => Désolé pour le nécropost, je viens de me rendre compte de la date du message du dessus. Si un Modérateur passe par là,
merci de sa compréhension.

Posté par shaolan le 19 Juil - 00:33 (2010)
Je ne sais pas du tout, j'ai regardé le code, mais il utilise des fonctions que je n'ai pas l'habitude d'utilisé, alors j'ai vite abondonné, mais d'après ce que j'ai pu en lire, je ne pense pas que les stats soient généré car d'après ce que j'en ai lu et compris, il rajoute bien dans le code à générer les stats du Pokémon. Et si vraiment,il s'agit d'une génération voulu, cela ne sert à rien de faire des échanges, car il ne s'agit pas vraiment de faire des échanges dans ce cas, surtout avec les sexes des pokémons, si par exemple, on veut faire un élevage de pokémon rare. Au départ, je pensais à une erreur d'interprétation de la chaîne de caractère. Mais je vais quand même voir la fonction ajouter un pokemon dans l'échange pour voir s'il n'y a pas une erreur à ce niveau là.
Je vais voir dans la semaine, si par hasard je peux trouver l'erreur.

Après c'est pas encore un nécropost, je pense car ca fait à peine 2 semaines que j'ai posté ça, au contraire cela fait surtout plaisir (du moins pour moi), que quelqu'un s'est intéressé au problème.

Posté par Zion le 19 Juil - 01:00 (2010)
Ben, en fait, c'est pas vraiment un échange, puisque, quand tu envoies un pokémon, tu n'en reçois pas en retour,
ou alors il faut t'organiser avec un ami pour cela. Et cela s'est-il produit à plusieurs reprises? Car, si c'est le cas, il faut
vérifier dans le script ou l'évènement commun si il n'y a pas qqchose qui bidouille les stats. Pour les scripts, je te laisse vérifier,
car je ne m'y connais pas en script, mais pour l'évent, je peux vérifier, vu que ça le fait pour moi aussi. 

Posté par shaolan le 19 Juil - 13:09 (2010)
C'est sur que c'est pas vraiment un échange, mais quand même, un envoie qui finalement est modifié à la fin, eux... voilà. T'imagines, tu envoie un message à quelqu'un et finalement, il est pas comme tu l'as envoyé, ben t'es un peu dans le c***, surtout si c'est important.

Et oui, bon je n'ai pas fait beaucoup de test, mais à chaque fois il y a des modifications dans les stats et le sexe du pokémon. Je n'ai pas encore regardé en détail les techniques, mais le pokémon garde bien l'objet qu'il avait (mais ça je l'ai testé qu'une fois).

Posté par Pαlвσlѕку le 19 Juil - 16:05 (2010)
Je viens de faire un tour dans le script en question, et effectivement, il y a quelques problèmes.
Déjà, comme vous l'avez remarqué, il y a un problème avec le sexe du Pokémon. Lors du codage du Pokémon, beaucoup d'informations sont stockés, mais le genre du Pokémon n'y est pas. Lors du décodage du Pokémon (donc quand on le récupère), le genre manquant est donc défini aléatoirement, d'où le changement de sexe du Pokémon.

En ce qui concerne les objets, il n'y a aucun problème : la variable où est stocké l'objet est bien codée.

Pour le changement de stats, cela me paraît bizarre. A moins que je me trompe, les stats ont besoin de 3 variables pour exister : la base, les IVs et les EVs.
La base est propre à chaque Pokémon et c'est partout la même, donc inutile de la coder.
Les IVs sont donnés au Pokémon lors de sa création, donc les IVs changent selon le Pokémon. Les IVs sont codés.
Les EVs sont donnés à notre Pokémon lorsqu'il combat, donc selon les Pokémon battus, les EVs ne sont pas les mêmes. Encore une fois, ceci est codé.
Je me demande donc comment ça se fait qu'on est un changement de stats.

Et si les PV n'ont jamais changé, c'est peut-être à cause de cette ligne :
Code:
bit_code += sprintf("%010d", pokemon.hp.to_s(2))

Posté par shaolan le 27 Aoû - 23:04 (2010)
est ce que le sexe du pokémon peut influencer les statistiques d'un pokemon ?

effectivement, le sexe du pokemon n'est pas retenu, mais ce qui me choque c'est que le sexe est toujours l'inverse à l'arrivée (du moins, je n'ai jamais eu de cas contraire)

Après quelques tests, voici au niveau Ruby les attributs du pokemon qui changent (avec la fonction inspect):
trainer_id (une fois pas changé), trainer_code, spd, gender, dfs, dfe, ats, atk, id_bis (quand le trainer_id ne change pas)

mais le problème n'est toujours pas résolu.

Posté par shaolan le 12 Oct - 18:49 (2010)
Désolé pour le double post, c'est juste pour remonter le topic, pour voir si quelqu'un peut m'aider.

Voilà. Étudier le script m'a ennuyer, et était un peu trop compliquer pour moi.
Alors j'ai décidé de créer ma propre façon "d'envoyer un pokemon" : ma méthode est de tout envoyer, de manière "brut" (chaque variable est écrire, et envoyer, et ensuite toutes les variables sont écris dans celui qui reçoit, ainsi, les problèmes de caractéristiques  différentes lors de l'échange ont disparu (ce qui va être pratique pour les combats pokemon online).

En fait, si j'ai mis une solution avec un point d'interrogation, et que je me dis s'il faut, il y a quelques modifications à faire quand même pour dire, je ne sais pas, que ce pokemon provient d'un échange, et cela sert notamment pour l'augmentation d'obtention d'XP avec un pokemon échangé. J'ai fait quelques tests, et on dirait que ma manière de faire un échange enlève cette possibilité. Est ce que le PSP avait déjà cette caractéristique ? ou bien je dois faire quelques modifications pour prendre en compte cela ? (le problème, c'est que je n'ai pas le moindre idée de ce que je dois modifier si c'est le cas échéant).

J'espère que je me suis bien exprimé.