Sujet n°12774
Posté par Arno00 le 31 Mai - 13:12 (2013)
Titre : [Résolu] [PSP 0.7/4G+/DS] Les pokémons évoluent TOUS avec des pierres
Salut,

Voilà, j'ai cherché partout sur le forum mais j'ai rien trouvé.

Quand un pokémon qui évolue de façon naturelle (par niveau) atteins son niveau d'évolution, mais n'évolue pas (donc hors combat) par exemple via la capture, ou un PNJ qui donne un pokémon qui a un niveau égal ou supérieur à celui ou il est censé evoluer, je peux le faire évoluer via des pierres.
Pour l'exemple je reçoit un : Magicarpe niveau 25 (il évolue normalement niveau 20), je peux le faire évoluer via les pierres évolutives (TOUTES les pierres !)

Je peux donc faire évoluer un pokémon avec une pierre, une fois qu'il a atteins son niveau d'évolution (et qu'il n'a pas évolué) mais pas avant (pas apte)
J'ai vérifié partout au niveau de la base de donnée des pokémons, des configuration des pierres, je ne trouve pas ce qui ne va pas ...
Ca fonctionne bien avec TOUS les pokémon qui évoluent de manière naturelle selon un niveau ...

Je n'ai pas changé grand chose à ce niveau là, donc je ne vois pas d'ou ça peut venir.

Quelqu'un sait d'ou ça peut venir ?


Merci !

Posté par Pαlвσlѕку le 31 Mai - 20:23 (2013)
Une mauvaise conception de PSP. Il faut que je regarde ça.
Merci d'avoir signaler le problème.

EDIT : Je confirme qu'il y a effectivement un problème.
Bizarrement, ça ne le fait pas avec Carabaffe, mais avec Minidraco, Mimigal, Magicarpe (les Pokémon que j'ai testé) il est possible de les faire évoluer avec une pierre une fois leur niveau d'évolution naturelle dépassé.

Posté par Arno00 le 1 Juin - 18:32 (2013)
Perso j'avais testé avec Poissirène et Magicarpe, peut-être que ça fonctionne uniquement pour le 1er stade d'évolution ?

Posté par Gold le 2 Juin - 07:49 (2013)
Hé mais il est funky ce bug, si vous le corrigez moi je le garde !

Posté par Pαlвσlѕку le 4 Juin - 19:02 (2013)
Après quelques recherches, je suis parvenu à corriger ce bug.

Dans le script Pokémon, vers la ligne 916, vous devriez avoir ceci :
Code:
          # Evolution par niveau
          if evolve_list[i][j].type == Fixnum and @level >= evolve_list[i][j]       
            next
          end

Remplacez-le par :

Code:
          # Evolution par niveau
          if evolve_list[i][j].type == Fixnum and @level >= evolve_list[i][j] and mode != "stone"           
            next
          end

Posté par Arno00 le 5 Juin - 23:36 (2013)
Yeah c'est cool, merci !

Posté par Sphinx le 9 Juin - 18:12 (2013)
Je n'ai pas de PSP sous les yeux, mais dans la correction de Pal je vois un léger détail qui mériterait d'être corrigé (même s'il pourrait être sans conséquences, je n'ai pas testé)

C'est au niveau du
Code:
mode != "stone"
que je ne suis pas d'accord ^^ Je doute qu'il n'y ait que 3 modes d'évolution ("trade", qui est traité séparément pour les échanges, "stone", pour les pierres, et une troisième valeur que je ne connais pas)

Je crois donc qu'il serait plus exact de tester si le mode d'évolution est bien évolution par niveau (genre mode == "level" même si je ne suis pas sur de la valeur) plutôt que de vérifier si on est en présence d'une évolution par pierre (mode != "stone")

Je laisse les scripteurs qui ont un PSP sous la main étudier, s'ils le souhaitent, ma suggestion ^^

Posté par Pαlвσlѕку le 9 Juin - 21:42 (2013)
Le code qui gère le type d'évolution je le trouve pourri, ma correction corrige un problème mais pas forcément tous les problèmes.
Je n'arrive pas à me projeter suffisamment pour voir si d'autres bugs du même type sont possibles.
Le mieux serait de recoder le bout de code qui tout gère ça, au moins on serait sûr d'avoir un truc qui fonctionne.