AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le Deal du moment :
Cartes Pokémon EB12.5 Zénith ...
Voir le deal

Partagez
 

 Problème script

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Wurzag
Poulet carnivore Lv.2
Poulet carnivore Lv.2
Wurzag


Masculin Age : 28
Inscrit le : 21/03/2011
Messages : 23

Problème script Empty
MessageSujet: Problème script   Problème script Icon_minitimeMar 16 Aoû 2011 - 11:37

Bonjour à tous!
Alors voilà: je ne suis qu'un débutant (plutôt nul) dans le monde fascinant des scripts, mais j'ai décidé de me lancer et de créer un script permettant au joueur de personnaliser son héros au début du jeu. J'ai donc commencé, et voici mon code: (je sais, pour le moment, il n'y a que les cheveux et le personnage n'est pas enregistré à la fin, mais bon... en théorie on devrait pouvoir juste visualiser le personnage avec différentes coupes de cheveux)
Code:
class Scene_Chara_Custom
 
  def main
   
    array_commandes_principales = [
    "Type de cheveux",
    "Couleur de cheveux"]
   
    @window_commandes_principales = Window_Command.new (200, array_commandes_principales)
    @window_commandes_principales.x = 5
    @window_commandes_principales.y = 5
   
    @type_cheveux = 0
    @couleur_cheveux = 0
   
    @array_filename_cheveux =[
    "Tete 1-blond 1",
    "Tete 2-blond 1",
    "Tete 3-blond 1",
    "Tete 4-blond 1",
    "Tete 5-blond 1",
    "Tete 1-blond 2",
    "Tete 2-blond 2",
    "Tete 3-blond 2",
    "Tete 4-blond 2",
    "Tete 5-blond 2",
    "Tete 1-brun 1",
    "Tete 2-brun 1",
    "Tete 3-brun 1",
    "Tete 4-brun 1",
    "Tete 5-brun 1",
    "Tete 1-brun 2",
    "Tete 2-brun 2",
    "Tete 3-brun 2",
    "Tete 4-brun 2",
    "Tete 5-brun 2",
    "Tete 1-gris",
    "Tete 2-gris",
    "Tete 3-gris",
    "Tete 4-gris",
    "Tete 5-gris",
    "Tete 1-vert 1",
    "Tete 2-vert 1",
    "Tete 3-vert 1",
    "Tete 4-vert 1",
    "Tete 5-vert 1",
    "Tete 1-vert 2",
    "Tete 2-vert 2",
    "Tete 3-vert 2",
    "Tete 4-vert 2",
    "Tete 5-vert 2"]
   
   
    @sprite_corps = Sprite.new
    @sprite_corps.x = 300
    @sprite_corps.y = 200
    @sprite_corps.bitmap = Cache.picture("Template")

    @sprite_cheveux = Sprite.new
    @sprite_cheveux.x = 300
    @sprite_cheveux.y = 200
   
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @window_commandes_principales.dispose
    @sprite_corps.dispose
    @sprite_cheveux.dispose
    @sprite_corps.bitmap.dispose if @sprite_corps.bitmap != nil
    @sprite_cheveux.bitmap.dispose if @sprite_cheveux.bitmap != nil
  end
 
  def update
    @window_commandes_principales.update
    if @window_commandes_principales.active  = true
      update_commandes
    elsif @type_cheveux = 1
      select_type_cheveux
    elsif @couleur_cheveux = 1
      select_couleur_cheveux
    end
  end
 
  def update_commandes
    if Input.trigger? (Input::C)
      @window_commandes_principales.active = false
      case @window_commandes_principales.index
      when 0
        @type_cheveux = 1
      when 1
        @couleur_cheveux = 1
      end
      update
    end
  end
 
  def select_couleur
    index = 0
    @sprite_cheveux.bitmap = Cache.picture(@array_filename_cheveux[index])
    if Input.trigger? (Input::RIGHT)
      if index<31
        index +=5
      end
    elsif Input.trigger? (Input::LEFT)
      if index>4
        index -= 5
      end
    elsif Input.trigger? (Input::C) or if Input.trigger? (Input::B)
      @window_commandes_principales.active = true
      @couleur_cheveux = 0
    end
  end
 
  def select_type_cheveux
    index = 0
    index_couleur = index+4
    @sprite_cheveux.bimap = Cache.picture(@array_filename_cheveux[index])
    if Input.trigger? (Input::RIGHT)
      if index<index_couleur
        index += 1
      end
    elsif Input.trigger? (Input::LEFT)
      if index>index_couleur - 4
        index -= 1
      end
    elsif Input.trigger?(Input::C) or if Input.trigger? (Input::B)
      @window_commandes_principales.active = true
      @type_cheveux = 0
    end
  end
end
end
end

Seulement voilà: déjà, j'ai besoin de mettre 5 end à la fin au lieu normalement de 3, sinon cela met "Syntax Error" pour la dernière ligne.
Ensuite, j'arrive bien sur la fenêtre des commandes principales (où l'on choisit soit "type de cheveux" soit "couleur de cheveux"), on voit le chara tout nu sans cheveux. Mais lorsque je sélectionne "type de cheveux" ou "couleur de cheveux", une erreur apparait:
"Script 'Window_Selectable' line X: SystemStackError occured.
Stack level too deep"
Et le plus beau dans tout ça, c'est que le X (qui normalement indique où ça coince) change quasiment à chaque fois!!!^^ (une fois ligne 97, une fois 98, une fois 220...)
Je suis sur que l'erreur est toute bête (comme souvent) mais où est elle donc???
Sinon, je n'utilise aucun autre script (à part ceux de base, évidement).
Je vous remercie donc d'avance!
Revenir en haut Aller en bas
Zangther
Maître des Duels
Maître des Duels
Zangther


Masculin Age : 30
Inscrit le : 29/07/2009
Messages : 7838

Problème script Empty
MessageSujet: Re: Problème script   Problème script Icon_minitimeMar 16 Aoû 2011 - 12:41

Tout d'abord quelques remarques sur ton code en lui même.
Pourquoi tu n'utilises pas l'héritage ? Ce serait beaucoup mieux, surtout pour ta scene !

Bref, ton erreur c'est que la pile ( stack ) est pleine. Donc ça dégage une erreur "Stack level too deep".
C'est généralement un problème de fonctions imbriquées les unes dans les autres qui s'accumulent, qui s'accumule, encore et encore.
Revenir en haut Aller en bas
Wurzag
Poulet carnivore Lv.2
Poulet carnivore Lv.2
Wurzag


Masculin Age : 28
Inscrit le : 21/03/2011
Messages : 23

Problème script Empty
MessageSujet: Re: Problème script   Problème script Icon_minitimeMar 16 Aoû 2011 - 17:03

Bon, voilà: vu que je ne sais pas trop comment utiliser l'héritage, je ne l'ai utilisé que pour réduire "main" (en la séparant en "start" et en "terminate"). Mais sinon, je pense que cette accumulation de fonctions doit être due à une quelconque boucle qui n'est pas arrêtée (d'où le nombre excessif de "end" à la fin), mais le problème, c'est que je ne vois pas où... (aucune boucle dans le code...)
Code:
class Scene_Chara_Custom<Scene_Base
 
  def start
   
    array_commandes_principales = [
    "Type de cheveux",
    "Couleur de cheveux"]
   
    @window_commandes_principales = Window_Command.new (200, array_commandes_principales)
    @window_commandes_principales.x = 5
    @window_commandes_principales.y = 5
   
    @type_cheveux = 0
    @couleur_cheveux = 0
   
    @array_filename_cheveux =[
    "Tete 1-blond 1",
    "Tete 2-blond 1",
    "Tete 3-blond 1",
    "Tete 4-blond 1",
    "Tete 5-blond 1",
    "Tete 1-blond 2",
    "Tete 2-blond 2",
    "Tete 3-blond 2",
    "Tete 4-blond 2",
    "Tete 5-blond 2",
    "Tete 1-brun 1",
    "Tete 2-brun 1",
    "Tete 3-brun 1",
    "Tete 4-brun 1",
    "Tete 5-brun 1",
    "Tete 1-brun 2",
    "Tete 2-brun 2",
    "Tete 3-brun 2",
    "Tete 4-brun 2",
    "Tete 5-brun 2",
    "Tete 1-gris",
    "Tete 2-gris",
    "Tete 3-gris",
    "Tete 4-gris",
    "Tete 5-gris",
    "Tete 1-vert 1",
    "Tete 2-vert 1",
    "Tete 3-vert 1",
    "Tete 4-vert 1",
    "Tete 5-vert 1",
    "Tete 1-vert 2",
    "Tete 2-vert 2",
    "Tete 3-vert 2",
    "Tete 4-vert 2",
    "Tete 5-vert 2"]
   
   
    @sprite_corps = Sprite.new
    @sprite_corps.x = 300
    @sprite_corps.y = 200
    @sprite_corps.bitmap = Cache.picture("Template")

    @sprite_cheveux = Sprite.new
    @sprite_cheveux.x = 300
    @sprite_cheveux.y = 200
   
  end
 
  def terminate
    @window_commandes_principales.dispose
    @sprite_corps.dispose
    @sprite_cheveux.dispose
    @sprite_corps.bitmap.dispose if @sprite_corps.bitmap != nil
    @sprite_cheveux.bitmap.dispose if @sprite_cheveux.bitmap != nil
  end
 
  def update
    @window_commandes_principales.update
    if @window_commandes_principales.active  = true
      update_commandes
    elsif @type_cheveux = 1
      select_type_cheveux
    elsif @couleur_cheveux = 1
      select_couleur_cheveux
    end
  end
 
  def update_commandes
    if Input.trigger? (Input::C)
      @window_commandes_principales.active = false
      case @window_commandes_principales.index
      when 0
        @type_cheveux = 1
      when 1
        @couleur_cheveux = 1
      end
      update
    end
  end
 
  def select_couleur
    index = 0
    @sprite_cheveux.bitmap = Cache.picture(@array_filename_cheveux[index])
    if Input.trigger? (Input::RIGHT)
      if index<31
        index +=5
      end
     
    elsif Input.trigger? (Input::LEFT)
      if index >4
        index = index-5
      end
    elsif Input.trigger? (Input::C) or if Input.trigger? (Input::B)
      @window_commandes_principales.active = true
      @couleur_cheveux = 0
    end
  end
 
  def select_type_cheveux
    index = 0
    index_couleur = index+4
    @sprite_cheveux.bimap = Cache.picture(@array_filename_cheveux[index])
    if Input.trigger? (Input::RIGHT)
      if index <index_couleur+1
      index += 1
      end
   
    elsif Input.trigger? (Input::LEFT)
      if index>index_couleur-4
      index = index-1
      end
    elsif Input.trigger?(Input::C) or if Input.trigger? (Input::B)
      @window_commandes_principales.active = true
      @type_cheveux = 0
    end
  end
end
end
end
Revenir en haut Aller en bas
Contenu sponsorisé




Problème script Empty
MessageSujet: Re: Problème script   Problème script Icon_minitime

Revenir en haut Aller en bas
 

Problème script

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Problème Script
» [Script] [Très Important] Problème avec script augmentation limite lvl
» Probleme script SBS
» [Script] Recherche d'un problème face à la modification d'un script [Résolu]
» probleme script d'ajout de commande et script ATB

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Problèmes et Solutions :: Abandonné-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit