Sujet n°4896
Posté par Disccat le 22 Aoû - 15:16 (2009)
Titre : Evolu pas, évoluera toujours
Un petit bug découvert par hasard, c'est celui de l'évolution naturelle qui accepte les pierre lorsque le niveau est passé.

Prenons un exemple, ça sera plus radical:
Poussifeu évolu au niveau 16, cependant son évolution a été annulé. Du fait que Poussifeu soit au dessus du niveau 16, n'importe quelle pierre peut le faire évoluer (Pierre feu, foudre, eau, etc...).
Normalement, cet acte devrait être impossible, alors maintenant je vous laisse y réfléchir.

Et maintenant que j'y pense, j'ai un autre bug, c'est celui de l'évolution par chance (50/50 de Chenipotte en Armulys ou Blindalys), que vous pouvez voir en cliquant ici.
Je rajoute ci-dessous les quelque lignes de mon script Pokemon, concernant les évolutions entre ligne 967 et 994:
Spoiler

# Compo équipe
if evolve_list[i][j][0] == "compo_equipe"
tab = evolve_list[i][j][1]
cond_a_remplir = evolve_list[i][j][2]
if combinaison_possedees(tab,cond_a_remplir)
next
end
end

# Evolution aléatoire
if evolve_list[i][j].is_a?(Array) and evolve_list[i][j][0] == "aleatoire"
if rate == nil
rate = rand(100)
end
if chance == nil
chance = 0
end
if rate <= evolve_list[i][j][1] + chance
next
else
chance += evolve_list[i][j][1]
end
end

# Echange
if evolve_list[i][j] == "trade" and mode == "trade"
next
end


J'ai ajouté les méthodes d'évolutions précédant et suivant celui concernant le aléatoire. J'ai mis en gras la ligne qui ferait bugguer ce système.

Merci de m'aider pour l'évolution aléatoire, sinon concernant celui des pierres qui fonctionnent avec tous ceux qui évoluent naturellement et ayant passé le niveau, et bien je ne pense pas que ça ne soit que de chez moi.

Posté par Peter le 22 Aoû - 15:47 (2009)
Ce que tu dit est faux,chenipote evolue en armulis au niv 7 de jour et en blindalys au niv 7 de nuit et pas du 50/50 Clin d'œil foireux

Posté par Disccat le 22 Aoû - 16:01 (2009)
$data_pokemon[ 265 ] = ["CHENIPOTTE", ["Il s'accroche aux branches des arbres et mange leurs feuilles. Le fil qu'il sécrète devient gluant au contact de l'air et sert à ralentir ses ennemis.","VER","0.3 m","3.6 kg"] , ["ARMULYS", 7, ["aleatoire", 50]], ["BLINDALYS", 7, ["aleatoire", 50]] ]

Si ceci tu comprends pas, alors ne t'en mêle même pas.

Posté par Peter le 22 Aoû - 16:09 (2009)
Lol,je comprend un peu les script mais je croyais que tu parler des version officiel la donc sorry

Posté par Disccat le 22 Aoû - 16:37 (2009)
Forcément, ici on ne parle pas des versions officielles, mais celles que nous sommes censé créer. Donc ce n'est pas grave Clin d'œil foireux .

Posté par Empire1601 le 22 Aoû - 22:05 (2009)
Tiens je pensais que l'évo en fonction de la période de la journée était faite Oo
Je te bricole ça et je poste la solution Clin d'œil foireux

Posté par Sphinx le 22 Aoû - 22:07 (2009)
>> c'est déjà codé, empire Clin d'œil foireux faut juste l'appliquer à chenipotte Clin d'œil foireux

Posté par Empire1601 le 22 Aoû - 22:18 (2009)
en effet, je viens de le voir ^o^

donc remplace la ligne de chenipotte par celle-ci :

 
Code:
  $data_pokemon[ 265 ] = ["CHENIPOTTE", ["Il s'accroche aux branches des arbres et mange leurs feuilles. Le fil qu'il sécrète devient gluant au contact de l'air et sert à ralentir ses ennemis.","VER","0.3 m","3.6 kg"] , ["ARMULYS", 7, ["periode", "jour"]], ["BLINDALYS", 7, ["periode", "nuit"]] ]
La modification sera apportée à 5G+, merci de nous avoir signalé le problème Clin d'œil foireux

Posté par Peter le 22 Aoû - 22:19 (2009)
sphinx,c'est corriger sur 4g+?

Posté par Empire1601 le 22 Aoû - 22:23 (2009)
A propos de ton problème, je constate que tu n'as pas le même script aléatoire que le mien.
Je t'invite donc à tester celui-ci :
Code:
if evolve_list[i][j][0][0] == "aleatoire"
            @alea_max = 0
            for k in 0...evolve_list[i][j][0][1].size
              @alea_max += evolve_list[i][j][0][1][k][1]
            end
            @alea = rand(@alea_max) + 1
            for k in 0...evolve_list[i][j][0][1].size
              @alea -= evolve_list[i][j][0][1][k][1]
              if @alea <= 0
                break
              end
            end

Posté par Sphinx le 22 Aoû - 22:27 (2009)
ca doit pas (je ne suis pas sur d'avoir repris le data_pokemon.txt) mais les évolutions présentées dans le post it en S/T sont toutes intégrées à 4G+ =)

Posté par Disccat le 23 Aoû - 01:10 (2009)
Le problème, c'est qu'il n'y a pas le jour et la nuit dans mon jeu, j'utilise donc l'aléatoire pour ce pokémon et un autre de ma 5ème génération.

empire1601 a écrit:
A propos de ton problème, je constate que tu n'as pas le même script aléatoire que le mien.
Je t'invite donc à tester celui-ci :
Code:
if evolve_list[i][j][0][0] == "aleatoire"
            @alea_max = 0
            for k in 0...evolve_list[i][j][0][1].size
              @alea_max += evolve_list[i][j][0][1][k][1]
            end
            @alea = rand(@alea_max) + 1
            for k in 0...evolve_list[i][j][0][1].size
              @alea -= evolve_list[i][j][0][1][k][1]
              if @alea <= 0
                break
              end
            end


À ce propos, je viens d'essayer ce code mais ça ne passe pas, bug dès démarrage du jeu. Donc si je n'arrive pas à utiliser l'aléatoire, je prendrai une solution différente.

Et en ce qui concerne l'exemple avec le poussifeu (du moins c'est sur Abson que j'avais tester, qui évolu au niveau 25 en Absol), quand j'ai utilisé la pierre (feu, foudre, eau,...) il s'est mit à évoluer parce-qu'il est du niveau suppérieur à celui dont il doit évoluer, est-ce que vous avez une idée à ce sujet là ?

Posté par Empire1601 le 23 Aoû - 10:08 (2009)
Le problème vient donc des modifications que tu as apportées toi même au jeu =/
Pourrait-on avoir le log du bug ?

Posté par Disccat le 23 Aoû - 11:53 (2009)
Voici le log du jeu

---------- Erreur de script : Pokemon ----------
----- Type
NameError

----- Message
undefined local variable or method `rate' for #<POKEMON_S::Pokemon:0x80e82b0>

----- Position dans Pokemon
Ligne 978

----- Backtrace
Script : Pokemon | Ligne : 978 | Méthode : in `evolve_check'
Script : Pokemon | Ligne : 907 | Méthode : in `each'
Script : Pokemon | Ligne : 907 | Méthode : in `evolve_check'
Script : Pokemon | Ligne : 904 | Méthode : in `each'
Script : Pokemon | Ligne : 904 | Méthode : in `evolve_check'
Script : Pokemon_Item / Data | Ligne : 572 | Méthode : in `effect_on_pokemon'
Script : Pokemon_Item / Data | Ligne : 566 | Méthode : in `each'
Script : Pokemon_Item / Data | Ligne : 566 | Méthode : in `effect_on_pokemon'
Script : Pokemon_Party_Menu | Ligne : 239 | Méthode : in `update'
Script : Pokemon_Party_Menu | Ligne : 93 | Méthode : in `main'
Script : Pokemon_Party_Menu | Ligne : 81 | Méthode : in `loop'
Script : Pokemon_Party_Menu | Ligne : 98 | Méthode : in `main'
Script : Pokemon_Item_Bag | Ligne : 364 | Méthode : in `update_command'
Script : Pokemon_Item_Bag | Ligne : 126 | Méthode : in `main'
Script : Pokemon_Item_Bag | Ligne : 115 | Méthode : in `loop'
Script : Pokemon_Item_Bag | Ligne : 134 | Méthode : in `main'
Script : Main | Ligne : 53


Docteur, j'espère que ce n'est pas trop grave Oo' .

Posté par Néva le 23 Aoû - 15:03 (2009)
Citation:
Un petit bug découvert par hasard, c'est celui de l'évolution naturelle qui accepte les pierre lorsque le niveau est passé.

Prenons un exemple, ça sera plus radical:
Poussifeu évolu au niveau 16, cependant son évolution a été annulé. Du fait que Poussifeu soit au dessus du niveau 16, n'importe quelle pierre peut le faire évoluer (Pierre feu, foudre, eau, etc...).
Normalement, cet acte devrait être impossible, alors maintenant je vous laisse y réfléchir.


 

J'ai également ce problème chez moi. Le problème est en fait valable avec toutes les évolutions. Dès que toutes les conditions d'évolution sont remplies, le pokémon peut accepter n'importe quelle pierre et évolue. C'est un peu gênant ! Quelqu'un sait comment remédier à cela ?
Merci d'avance !