Partagez
Aller en bas
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

[Script] Fenêtre affichant le contenu d'un tableau Empty [Script] Fenêtre affichant le contenu d'un tableau

le Mar 1 Juin 2010 - 13:25
Avant toute chose ce script est un outil pour les scripteurs, il n'est d'aucune utilité pour les autres.
Voilà un petit script que j'avais fait lors de la conception de mon arène et que j'ai modifier pour un meilleur rendu, il vous permet d'afficher le contenu d'un tableau qu'il soit bidimensionnel ou non. Ce script ne marche pas avec les Hash seulement avec les Arrays.

Code:

#==============================================================================
# ** Window_TestTableau
#==============================================================================

class Window_TestTableau< Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    x : window X coordinate
  #    y : window Y coordinate
  #--------------------------------------------------------------------------
  def initialize( tableau)
    @tableau = tableau
    @size = 0
    @inter = false
    for i in 0...@tableau.size
      if @tableau[i].is_a?(Array)
        @inter = true
      end
    end
    if  @inter
      for i in 0...@tableau.size
        @size = [@size, @tableau[i].size ].max if @tableau[i] != nil
      end
    else
      @size = 1
    end
    @spacing  = (544/ @size)
    super(0, 0, 544, 416, @spacing)
    if  @inter
      @column_max = @size
    else
      @column_max = 1
    end
    self.index = -1
    self.active = true
    refresh
  end

  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if  @inter
      for i in 0...@tableau.size
        for j in 0...@size
          if !@tableau[i].is_a?(Array) and j == 0
            if @tableau[i] == nil
              draw_nil(i, i*@size + j, false)
            else
              draw_tableau2(i, @tableau, i*@size + j)
            end           
          elsif !@tableau[i].is_a?(Array) or (@tableau[i][j] == nil and j > @tableau[i].size - 1)
            draw_nil(i, i*@size + j)
          elsif  @tableau[i][j] == nil
            draw_nil(i, i*@size + j, false)
          else
            draw_tableau2(j, @tableau[i], i*@size + j)
          end
        end
      end
    else
      for i in 0...@tableau.size
        draw_tableau1(i, @tableau)
      end
    end
  end
 
  #--------------------------------------------------------------------------
  # * Draw Nil
  #--------------------------------------------------------------------------
  def draw_nil(index, rang, know = true)
    rect = item_rect(rang)
    rect.x = rang % @column_max * (rect.width + @spacing)
    if (rang - index*@size) < @size
      self.contents.clear_rect(rect)
      self.contents.font.color = crisis_color
      self.contents.font.color.alpha =  255
      if know
        self.contents.font.color = crisis_color
        self.contents.font.color.alpha =  255
        self.contents.draw_text(rect.x, rect.y, 172, WLH, "X")   
      else
        self.contents.font.color = knockout_color
        self.contents.font.color.alpha =  255
        self.contents.font. size -= 5
        self.contents.draw_text(rect.x - 1.5, rect.y, 172, WLH, "nil")   
        self.contents.font. size += 5
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Tableau 1
  #--------------------------------------------------------------------------
  def draw_tableau1(index, tableau, align  = 0)
    rect = item_rect(index)
    rect.x =  (index % @column_max * (rect.width + @spacing)) + rect.width/2
    self.contents.clear_rect(rect)
    indice = tableau[index]
    if index != nil
      self.contents.font.color = normal_color
      self.contents.font.color.alpha =  255
      self.contents.draw_text(rect.x, rect.y, 172, WLH, indice)     
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Tableau 2
  #--------------------------------------------------------------------------
  def draw_tableau2(index, tableau, rang)
    rect = item_rect(rang)
    rect.x = rang % @column_max * (rect.width + @spacing)
    self.contents.clear_rect(rect)
    indice = tableau[index]
    if index != nil
      self.contents.font.color = normal_color
      self.contents.font.color.alpha =  255
      self.contents.draw_text(rect.x, rect.y, 172, WLH, indice)     
    end
  end
end

Pour l'utiliser il suffit de mettre Window_TestTableau(nom du tableau).new à l'endroit dans votre script où vous souhaitez voir le contenu de votre tableau.

Voilà laissez vos comms.
Anonymous
Invité
Invité

[Script] Fenêtre affichant le contenu d'un tableau Empty Re: [Script] Fenêtre affichant le contenu d'un tableau

le Mer 2 Juin 2010 - 18:51
Dans l'immédiat, je ne voies pas trop à quoi cela pourrait me servir, mais j'imagines que ça le sera quand je saurais scripter XD
Enfin, ça marche nickel, c'est beau, fonctionnel, encore du bon boulot Wink
Dudu'
Dudu'
Staffeux retraité

Nombre de messages : 2060
Age : 28
Distinction : Apprenti KGB-boy en avenir
[Coco' Smile]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009

[Script] Fenêtre affichant le contenu d'un tableau Empty Re: [Script] Fenêtre affichant le contenu d'un tableau

le Sam 19 Juin 2010 - 20:46
ptain je vient de tilter à quel point sa peut être utile
bien jouer
grifdail
grifdail
Membre

Nombre de messages : 51
Distinction : aucune
Date d'inscription : 18/04/2008

[Script] Fenêtre affichant le contenu d'un tableau Empty Re: [Script] Fenêtre affichant le contenu d'un tableau

le Sam 26 Juin 2010 - 11:17
Super ! et grace a mes bonus dans ce scripte on peut le faire "gerer les hash"
Contenu sponsorisé

[Script] Fenêtre affichant le contenu d'un tableau Empty Re: [Script] Fenêtre affichant le contenu d'un tableau

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