Sujet n°4530
Posté par
Angi-MK le
18 Juil - 23:45 (2009)Titre :
EXP gagné a virgule... ?Nouveau bug, pourtant je touche même pas aux script... bref le voila, tout est écrit:
Le nombre de points gagner est normalement entier, pas flottant
.
Posté par
Krosk le
19 Juil - 00:17 (2009)ouais, et c'est exceptionnel ? combat dresseur ? combat sauvage ? utilisé des attaques particulières ? psp0.7 ou 4G+?
Posté par
Angi-MK le
19 Juil - 05:56 (2009)Non, ça se répète a chaque combats, dresseurs, sauvages, tout ce que tu veux !
J'utilise uniquement psp0.7.
Posté par
pokechii le
19 Juil - 10:12 (2009)J'ai eu le même problème mais pour le niveau des pokemon sauvages, genre "niveau 2,524937543".
J'ai cherché dans les scripts et à l'endroit ou le niveau était défini j'ai remplacé "level" par "Integer(level)".
Il faudrait trouver la ligne où les points d'expérience gagnés sont définis.
Posté par
Krosk le
19 Juil - 12:37 (2009)mk >> depuis quand le bug? ca t'es arrivé au début?
Posté par
Pαlвσlѕку le
19 Juil - 13:44 (2009)J'utilise PSP0.7 et je n'ai jamais eu ce bug.
Posté par
Sphinx le
19 Juil - 13:45 (2009)Moi non plus, je n'ai jamais eu ce genre de bug
Posté par
Pαlвσlѕку le
19 Juil - 14:15 (2009)Tu as dû forcément modifier quelques choses, même une infime modification peut produire ce genre de bug.
Par exemple :
>> x / 1 donnera obligatoirement un nombre entier même si x est un nombre flottant.
>> x / 1.0 peut donner un nombre entier, ou flottant. Cela dépend si x est flottant oui ou non. Ici, le nombre n'aura qu'un seul chiffre après la virgule.
Posté par
Krosk le
19 Juil - 14:21 (2009)Bah surtout que je transforme moi même l'expérience gagnée en Entier, quoi...
dans le script Pokemon, ligne 687
Code: |
def exp_calculation(battle_list, level, number = 1, type = 1, exp_share_number = 0, out_battle = 1) # Formule de base exp_sup = Integer(battle_list[6] * level * type / 7) / number # Formule multi_exp if exp_share_number > 0 exp_share_hold = Item.data(item_hold)["expshare"] ? 1 : 0 value = level*battle_list[6]/14 exp_sup = (Integer(value/number)*out_battle + Integer(value/exp_share_number)*exp_share_hold)*type end return exp_sup end |
remplace (temporairement) par ca :
Code: |
def exp_calculation(battle_list, level, number = 1, type = 1, exp_share_number = 0, out_battle = 1) # Formule de base exp_sup = Integer(battle_list[6] * level * type / 7) / number # Formule multi_exp if exp_share_number > 0 exp_share_hold = Item.data(item_hold)["expshare"] ? 1 : 0 value = level*battle_list[6]/14 exp_sup = (Integer(value/number)*out_battle + Integer(value/exp_share_number)*exp_share_hold)*type end print "number : #{number} exp_sup : #{exp_sup}" return exp_sup end |
Posté par
Pαlвσlѕку le
19 Juil - 14:32 (2009)Je confirme que l'expérience est un nombre entier. Après avoir pris le morceau de Krosk, voici ce qui est apparu à l'écran.
Posté par
Sphinx le
19 Juil - 15:44 (2009) Palbolsky a écrit: |
Par exemple : >> x / 1 donnera obligatoirement un nombre entier même si x est un nombre flottant.
>> x / 1.0 peut donner un nombre entier, ou flottant. Cela dépend si x est flottant oui ou non. Ici, le nombre n'aura qu'un seul chiffre après la virgule. |
faux
x (+ - * /) ENTIER donnera un entier ou un flottant selon le type de x
x (+ - * /) DECIMAL donnera toujours un décimal