Partagez
Aller en bas
avatar
Elphealer
Membre

Nombre de messages : 52
Age : 29
Localisation : Lyon
Distinction : aucune
Date d'inscription : 07/12/2009

[résolu] Je reviens avec mon script merveilleux: erreur inconnu pour moi

le Mar 23 Fév 2010 - 23:19
Bonsoir tout le monde,

Après un combat acharné contre ce script (et après avoir essuyé 3 échecs critiques ^^), je me retourne vers vous pour savoir comment géré cette erreur :
SystemStackError occured
stack level too deep

Voilà le script en question :

Spoiler:
Code:
class Window_Help_Cuisine < Window_Base
   
   def initialize
      super (160,0,384,128)
      self.contents.clear
      self.contents.font.color = normal_color
   end
   
   def modifier (recette)
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(0,0,384,25,recette.description,1)
      self.contents.draw_text(0,0,384,75,recette.effet,1)
      liste_des_ingredients = ""
      compteur = recette.liste_ingredients.size
      recette.liste_ingredients.each do |ingredient|
         if ingredient[0] > 1
            liste_des_ingredients += ingredient[0].to_s + "x " + ingredient[1]
            
         elsif ingredient[0] = 1
            liste_des_ingredients += ingredient[1]
         end
         compteur = compteur -1
         liste_des_ingredients += ", " if compteur > 1
      end
      liste_des_ingredients += "."
      self.contents.draw_text(0,0,384,125,liste_des_ingredients,1)
   end
   
end

class Recette_Cuisine
   
   def initialize (numero_recette,nom_recette, description_recette, effet_recette, *ingredients_recette_id  )
      @num= numero_recette
      @nom = nom_recette
      @description = description_recette
      @effet = effet_recette
      @ingredients = *ingredients_recette_id
      creer_liste_ingredients
   end
   
   def num
      return @num
   end

   def nom
      return @nom
   end
   
   def description
      return @description
   end
   
   def effet
      return @effet
   end
   
   def ingredients
      return @ingredients
   end
   
   def creer_liste_ingredients
      $data_items= load_data("Data/Items.rvdata")
      @liste_ingredients = []
      @ingredients.each do |ingredient_id|
         @liste_ingredients.push ( [ ingredient_id[1] , $data_items[ingredient_id[0]].name ]  )
      end   
   end
   
   def liste_ingredients
      return @liste_ingredients
   end
end
       
module RECETTES
   LISTE_COMPLETE_DES_RECETTES = [
   #  Placez les recettes dans l'ordre d'apparition dans le menu cuisine
   #  Recette_Cuisine.new (ordre d'apprentissage (possibilité d'apprendre plusieurs recettes d'un coup), "nom de la recette", "description" , "effet" , ingredients : [id de l'ingredient, quantité])
   Recette_Cuisine.new(1,"Sandwitch","Un petit encas","Regen un peu de PV et PM",[30,1],[31,1],[32,1]),
   Recette_Cuisine.new(2,"Soupe","Pour bien grandir!!","Donne Force+",[33,1],[31,1])
   # Fin de la liste
   ]
end


class Scene_Cuisine < Scene_Base
   
   def initialize
      @menu_index = 0
   end
   
   def start
      super
      create_menu_background
      create_liste_recettes
      accessible
      create_command_window
   end

   def terminate
      super
      dispose_menu_background
      @command_window.dispose
   end

   def update
      super
      update_menu_background
      @command_window.update
      if @command_window.active
         update_command_selection
      end
      i = @command_window.index
      @description_window.modifier(@liste_recettes[i])
   end

   def create_liste_recettes
      recettes_apprises = $game_variables[14]
      @liste_recettes = []
      RECETTES::LISTE_COMPLETE_DES_RECETTES.each do |recette|
         @liste_recettes.push(recette) if recette.num <= recettes_apprises
      end
   end
   
   def create_command_window
      liste_noms=[]
      @liste_recettes.each do |recette|
         liste_noms.push recette.nom
      end
      @command_window = Window_Command.new(160, liste_noms )
      @command_window.index = @menu_index
      for i in (0 ... (@accessible.size - 1)) do
         @command_window.draw_item(i, @accessible[i])
      end
      @description_window =  Window_Help_Cuisine.new
   end
   
   def update_command_selection
      if Input.trigger?(Input::B)
         Sound.play_cancel
         $scene = Scene_Menu.new(6)
      end
      case @command_window.index
         when 0      # Sandwitch
            
         when 1  # Epinard
            
         when 2      # Soupe
            
      end
   end
   
   def accessible
      @accessible = []
      @liste_recettes.each do |recette|
         acces = true
         recette.ingredients.each do |ingredient|
            acces = acces && ($game_party.item_number($data_items[ingredient[0]]) >= ingredient[1])
         end
         accessible.push (acces)
      end
   end
 end

L'erreur se produit à la ligne
Code:
acces = acces && ($game_party.item_number($data_items[ingredient[0]]) >= ingredient[1])

(avant-avant dernière ligne)
Moi je comprends plus ce qui lui pose problème...


Si vous voulez des détails quelconque sur le script... ben... demandez les ^^

PS: les raccourcies attr_accessor je les utiliserai une fois le script fini.


Dernière édition par Elphealer le Sam 20 Mar 2010 - 12:04, édité 1 fois
avatar
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 26
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' Smile]
Date d'inscription : 13/05/2009

Re: [résolu] Je reviens avec mon script merveilleux: erreur inconnu pour moi

le Ven 19 Mar 2010 - 20:36
Résolu ? Dans une semaine, je sanctionne, s'il y a pas de relance ou de réponse, résolvant le problème.
avatar
Elphealer
Membre

Nombre de messages : 52
Age : 29
Localisation : Lyon
Distinction : aucune
Date d'inscription : 07/12/2009

Re: [résolu] Je reviens avec mon script merveilleux: erreur inconnu pour moi

le Sam 20 Mar 2010 - 12:03
Disons que j'ai trouvé une autre méthode depuis.
Désolé de pas être revenu pour modifier le titre.
Contenu sponsorisé

Re: [résolu] Je reviens avec mon script merveilleux: erreur inconnu pour moi

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum