Sujet n°8872
Posté par Misa-Xage le 8 Jan - 16:37 (2011)
Titre : Bug dans mon script
Boujour,aujourd'hui j'ai essayé de faire un script mais quand je lance le jeu ça me fait:


Voici le script:
Spoiler
#============================================================================== 
# ■ Id_Echange - Pierre-Louis 
# 8/01/11 
#============================================================================== 
 
class Echange_Poke_1 < Window_Base
 ID_ECHANGE_TABLE_1 = ["0","1","2","3","4","5","6","7","8","9"]
 ID_ECHANGE_TABLE_2 = ["A","B","C","D","E","F","G","H","I","J"]
 ID_ECHANGE_TABLE_3 = ["a","b","c","d","e","f","g","h","i","j"]
 $id1 == $game_variables[14]
 $id2 == $game_variables[15]
 $id3 == $game_variables[16]
 case $id1
 when 0
   $Id_echange_1 = ID_ECHANGE_TABLE_1[0]
 when 1
   $Id_echange_1 = ID_ECHANGE_TABLE_1[1]
 when 2
   $Id_echange_1 = ID_ECHANGE_TABLE_1[2]
 when 3
   $Id_echange_1 = ID_ECHANGE_TABLE_1[3]
 when 4
   $Id_echange_1 = ID_ECHANGE_TABLE_1[4]
 when 5
   $Id_echange_1 = ID_ECHANGE_TABLE_1[5]
 when 6
   $Id_echange_1 = ID_ECHANGE_TABLE_1[6]
 when 7
   $Id_echange_1 = ID_ECHANGE_TABLE_1[7]
 when 8
   $Id_echange_1 = ID_ECHANGE_TABLE_1[8]
 when 9
   $Id_echange_1 = ID_ECHANGE_TABLE_1[9]
 end
 case $id2
 when 0
   $Id_echange_2 = ID_ECHANGE_TABLE_2[0]
 when 1
   $Id_echange_2 = ID_ECHANGE_TABLE_2[1]
 when 2
   $Id_echange_2 = ID_ECHANGE_TABLE_2[2]
 when 3
   $Id_echange_2 = ID_ECHANGE_TABLE_2[3]
 when 4
   $Id_echange_2 = ID_ECHANGE_TABLE_2[4]
 when 5
   $Id_echange_2 = ID_ECHANGE_TABLE_2[5]
 when 6
   $Id_echange_2 = ID_ECHANGE_TABLE_2[6]
 when 7
   $Id_echange_2 = ID_ECHANGE_TABLE_2[7]
 when 8
   $Id_echange_2 = ID_ECHANGE_TABLE_2[8]
 when 9
   $Id_echange_2 = ID_ECHANGE_TABLE_2[9]
 end
 case $id3
 when 0
   $Id_echange_3 = ID_ECHANGE_TABLE_3[0]
 when 1
   $Id_echange_3 = ID_ECHANGE_TABLE_3[1]
 when 2
   $Id_echange_3 = ID_ECHANGE_TABLE_3[2]
 when 3
   $Id_echange_3 = ID_ECHANGE_TABLE_3[3]
 when 4
   $Id_echange_3 = ID_ECHANGE_TABLE_3[4]
 when 5
   $Id_echange_3 = ID_ECHANGE_TABLE_3[5]
 when 6
   $Id_echange_3 = ID_ECHANGE_TABLE_3[6]
 when 7
   $Id_echange_3 = ID_ECHANGE_TABLE_3[7]
 when 8
   $Id_echange_3 = ID_ECHANGE_TABLE_3[8]
 when 9
   $Id_echange_3 = ID_ECHANGE_TABLE_3[9]
 end
 $Id_fin = $Id_echange_1+$Id_echange_2+$Id_echange_3
 nom_fichier = "Id_echange.txt"
 
 File.open("Id_echange.txt", "w") do |ecrire|
   ecrire.write $Id_fin
 end
end

Voila et merci si vous m'aidez.

                                             Pierre-Louis

Posté par Nuri Yuri le 8 Jan - 21:33 (2011)
C'est normal.
$game_variable n'a pas été initialisé Hors ton script s'exécute lors de la compilation (le temps de 3 seconde avant que le jeu démarre)
et pendant la compilation $game_variables n'existe pas tu dois donc mettre une méthode pour que ton code s'exécute quand il faut.

Posté par Misa-Xage le 8 Jan - 22:10 (2011)
J'ai cherché comment faire mais je ne suis pas arrivé,peux-tu me donner une solution?

Posté par Nuri Yuri le 8 Jan - 23:13 (2011)
Une methode :
Code:
def machin
#code
end

Posté par Sphinx le 9 Jan - 14:04 (2011)
Afin d'économiser la création d'un objet, je recommanderais plutôt :

Code:
class Truc
  def self.machin
    #code
  end
end


Méthode que tu pourras appeler par
Code:
Truc.machin
(où Truc est le nom de ta classe, et machin le nom de ta méthode)