Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. ################################################################################
  2. ##### VAR MAP
  3. ################################################################################
  4. # Auteur : Biward ; Date : 13/09/2013 18:31 ; Version : XP
  5. # Utilité : permet l'affichage facile et rapide de variable sur la map.
  6. #
  7. # liste des commandes :
  8. # draw_variable(variable, position x, position y, largeur, hauteur, opacité, icone, position x icone, position y icone, "texte", position x texte, position y texte)
  9. # qui sert à créer une fenêtre contenant une variable
  10. # dispose_variable(variable) qui sert à effacer une window
  11. # dispose_all_variable qui sert à effacer toutes les windows
  12. # refresh_variables qui sert à mettre à jour les fenêtres (automatique)
  13. #
  14. # Autres commandes :
  15. # var_x(var, x) ; var_y(var, y) ; var_w(var, w) ; var_h(var, h)
  16. # var_opa(var, opa) ; var_ico(var, ico) ; var_xi(var, xi) ; var_yi(var, yi)
  17. # var_text(var, text) ; var_xt(var, xt) ; var_yt(var, yt)
  18. # Ces commandes servent à modifier une fenêtre ingame grace à un appel de script.
  19.  
  20. ################################################################################
  21. ##### Début du script
  22. ################################################################################
  23. class Interpreter
  24.   def draw_variable(var, x_v, y_v, x, y, w, h, opa, ico, x_i, y_i, text, x_t, y_t)
  25.     if ! Spriteset_Variable.dr[var]
  26.       Spriteset_Variable.var << var
  27.       Spriteset_Variable.x_v[var] = x_v
  28.       Spriteset_Variable.y_v[var] = y_v
  29.       Spriteset_Variable.x[var] = x
  30.       Spriteset_Variable.y[var] = y
  31.       Spriteset_Variable.w[var] = w
  32.       Spriteset_Variable.h[var] = h
  33.       Spriteset_Variable.opa[var] = opa
  34.       Spriteset_Variable.ico[var] = ico
  35.       Spriteset_Variable.x_i[var] = x_i
  36.       Spriteset_Variable.y_i[var] = y_i
  37.       Spriteset_Variable.text[var] = text
  38.       Spriteset_Variable.x_t[var] = x_t
  39.       Spriteset_Variable.y_t[var] = y_t
  40.       Spriteset_Variable.upo = var
  41.       Spriteset_Variable.cr = true  
  42.     end
  43.   end
  44.   def dispose_variable(number) ; Spriteset_Variable.ds << number ; end
  45.   def dispose_all_variable ; Spriteset_Variable.co = true ; end
  46.   def refresh_variables ; Spriteset_Variable.rs = true ; end
  47.   def var_x_v(var, xv) ; Spriteset_Variable.x_v[var] = xv ; Spriteset_Variable.upo = var ; end
  48.   def var_y_v(var, yv) ; Spriteset_Variable.y_v[var] = yv ; Spriteset_Variable.upo = var ; end
  49.   def var_x(var, x) ; Spriteset_Variable.x[var] = x ; Spriteset_Variable.upo = var ; end
  50.   def var_y(var, y) ; Spriteset_Variable.y[var] = y ; Spriteset_Variable.upo = var ; end
  51.   def var_w(var, w) ; Spriteset_Variable.w[var] = w ; Spriteset_Variable.upo = var ; end
  52.   def var_h(var, h) ; Spriteset_Variable.h[var] = h ; Spriteset_Variable.upo = var ; end
  53.   def var_opa(var, opa) ; Spriteset_Variable.opa[var] = opa ; Spriteset_Variable.upo = var ; end
  54.   def var_ico(var, ico) ; Spriteset_Variable.ico[var] = ico ; Spriteset_Variable.upo = var ; end
  55.   def var_xi(var, xi) ; Spriteset_Variable.x_i[var] = xi ; Spriteset_Variable.upo = var ; end
  56.   def var_yi(var, yi) ; Spriteset_Variable.y_i[var] = yi ; Spriteset_Variable.upo = var ; end
  57.   def var_text(var, text) ; Spriteset_Variable.text[var] = text ; Spriteset_Variable.upo = var ; end
  58.   def var_xt(var, xt) ; Spriteset_Variable.x_t[var] = xt ; Spriteset_Variable.upo = var ; end
  59.   def var_yt(var, yt) ; Spriteset_Variable.y_t[var] = yt ; Spriteset_Variable.upo = var ; end
  60.   alias command_122_bi command_122 ; def command_122 ; command_122_bi ; Spriteset_Variable.rs = true ; end
  61. end
  62.    
  63. class Window_Variable < Window_Base
  64.   def initialize(x, y, h, w, var, opa, icone, x_i, y_i, text, x_t, y_t, x_v, y_v)
  65.     super(x, y, h, w)
  66.     self.opacity = opa
  67.     @var = var
  68.     @icon_index = icone
  69.     @x_i = x_i
  70.     @y_i = y_i
  71.     @text = text
  72.     @x_v = x_v
  73.     @y_v = y_v
  74.     @x_t = x_t
  75.     @y_t = y_t
  76.     @w = w
  77.     @h = h
  78.     refresh
  79.   end
  80.   def refresh
  81.     self.contents = Bitmap.new(@h - 32, @w - 32)
  82.     self.contents.clear
  83.     self.contents.draw_text(@x_v, @y_v - 198, 544, 416, $game_variables[@var].to_s, 0)
  84.     bitmap = RPG::Cache.icon(@icon_index) if @icon_index
  85.     self.contents.blt(@x_i, @y_i + 4, bitmap, Rect.new(0, 0, 24, 24)) if @icon_index && @x_i && @y_i
  86.     self.contents.draw_text(@x_t, @y_t - 198, 544, 416, @text.to_s, 0)
  87.   end
  88.   def redraw(ico, x_i, y_i, text, x_t, y_t, x_v, y_v, h, w)
  89.     @icon_index = ico
  90.     @x_i = x_i
  91.     @y_i = y_i
  92.     @text = text
  93.     @x_t = x_t
  94.     @y_t = y_t
  95.     @x_v = x_v
  96.     @y_v = y_v
  97.     @w = w
  98.     @h = h
  99.     refresh
  100.   end
  101. end
  102.      
  103. class Spriteset_Variable
  104.   class << self ; attr_accessor :var, :x_v, :y_v, :x, :y, :w, :h, :opa, :ico, :x_i, :y_i, :text, :x_t, :y_t, :upo, :dr, :ds, :rs, :cr, :co ; end
  105.   def initialize ; create_variable ; create_window_var if Spriteset_Variable.var ; end
  106.   def create_variable
  107.     Spriteset_Variable.var ||= []
  108.     Spriteset_Variable.x_v ||= {}
  109.     Spriteset_Variable.y_v ||= {}
  110.     Spriteset_Variable.rs ||= false
  111.     Spriteset_Variable.co ||= false
  112.     Spriteset_Variable.dr ||= []
  113.     Spriteset_Variable.ds ||= []
  114.     Spriteset_Variable.x ||= {}
  115.     Spriteset_Variable.y ||= {}
  116.     Spriteset_Variable.w ||= {}
  117.     Spriteset_Variable.h ||= {}
  118.     Spriteset_Variable.opa ||= {}
  119.     Spriteset_Variable.ico ||= {}
  120.     Spriteset_Variable.text ||= {}
  121.     Spriteset_Variable.x_i ||= {}
  122.     Spriteset_Variable.y_i ||= {}
  123.     Spriteset_Variable.x_t ||= {}
  124.     Spriteset_Variable.y_t ||= {}
  125.     @winvar = {} if ! @winvar
  126.   end
  127.   def start ; create_window_var if ! Spriteset_Variable.var.empty? ; end
  128.   def create_window_var
  129.     Spriteset_Variable.var.each do |i|
  130.       if ! Spriteset_Variable.dr[i]
  131.         @winvar[i] = Window_Variable.new(Spriteset_Variable.x[i], Spriteset_Variable.y[i], Spriteset_Variable.w[i],
  132.                                     Spriteset_Variable.h[i], i, Spriteset_Variable.opa[i], Spriteset_Variable.ico[i],
  133.                                     Spriteset_Variable.x_i[i], Spriteset_Variable.y_i[i] , Spriteset_Variable.text[i],
  134.                                     Spriteset_Variable.x_t[i], Spriteset_Variable.y_t[i], Spriteset_Variable.x_v[i],
  135.                                     Spriteset_Variable.y_v[i])
  136.         Spriteset_Variable.dr[i] = true
  137.       end
  138.     end
  139.     Spriteset_Variable.cr = nil if  Spriteset_Variable.cr
  140.   end
  141.   def terminate ; dispose_window_var ; end
  142.   def dispose_window_var(command = false)
  143.     @winvar.each { |i| i[1].dispose }
  144.     Spriteset_Variable.dr.clear
  145.     Spriteset_Variable.var.clear if command
  146.     Spriteset_Variable.co = false if Spriteset_Variable.co
  147.   end
  148.   def dispose_owv(var)
  149.     @winvar[var].dispose if @winvar[var]
  150.     if Spriteset_Variable.dr[var]
  151.       index = Spriteset_Variable.var.index(var)
  152.       Spriteset_Variable.var.delete_at(index)  
  153.     end
  154.     Spriteset_Variable.dr[var] = nil
  155.   end
  156.   def prep_dispose_window_var ; Spriteset_Variable.ds.each { |i| dispose_owv(i) } ; Spriteset_Variable.ds.clear ; end
  157.   def update
  158.     create_window_var if Spriteset_Variable.cr
  159.     update_window_var if Spriteset_Variable.upo
  160.     prep_dispose_window_var if ! Spriteset_Variable.ds.empty?
  161.     refresh_windows if Spriteset_Variable.rs
  162.     dispose_window_var(true) if Spriteset_Variable.co
  163.   end
  164.   def update_window_var
  165.     i = Spriteset_Variable.upo
  166.     if Spriteset_Variable.dr[i]
  167.       @winvar[i].x = Spriteset_Variable.x[i]
  168.       @winvar[i].y = Spriteset_Variable.y[i]
  169.       @winvar[i].width = Spriteset_Variable.w[i]
  170.       @winvar[i].height = Spriteset_Variable.h[i]
  171.       @winvar[i].opacity = Spriteset_Variable.opa[i]
  172.       @winvar[i].redraw(Spriteset_Variable.ico[i], Spriteset_Variable.x_i[i], Spriteset_Variable.y_i[i],
  173.       Spriteset_Variable.text[i], Spriteset_Variable.x_t[i], Spriteset_Variable.y_t[i],
  174.       Spriteset_Variable.x_v[i], Spriteset_Variable.y_v[i], Spriteset_Variable.w[i], Spriteset_Variable.h[i])
  175.     end
  176.     Spriteset_Variable.upo = nil
  177.   end
  178.   def refresh_windows
  179.     @winvar.each do  |i|        
  180.       i[1].refresh if i[1] && Spriteset_Variable.dr[i[0]]
  181.       Spriteset_Variable.rs = false
  182.     end
  183.   end
  184. end
  185.  
  186. class Scene_Map
  187.   alias sbbi main
  188.   alias ubbi update  
  189.   def main
  190.     @spriteset_variable = Spriteset_Variable.new
  191.     sbbi
  192.     @spriteset_variable.terminate if @spriteset_variable
  193.   end
  194.   def update ; ubbi ; @spriteset_variable.update if @spriteset_variable ; end
  195. end
  196. ################################################################################
  197. ##### Début du script
  198. ################################################################################