Holy87

Barra Generica VX - VX Ace

Jul 12th, 2013
125
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #===============================================================================
  2. # BARRA GENERICA SU MAPPA
  3. #===============================================================================
  4. # Autore: Holy87
  5. # Versione: 1.2
  6. # Difficoltà utente: ★★
  7. # Changelog 1.2:
  8. # - Possibilità di assegnare una variabile ad una barra, in modo da aggiornarsi
  9. #   automaticamente ad ogni modifica del valore
  10. # - Bugfix generali
  11. # Changelog 1.1:
  12. # - Passaggio di gestione da Game_Party a Game_System
  13. # - Possibilità di inserire un numero illimitato di barre
  14. # - Effetti speciali! Tremolio e flash alla barra
  15. #-------------------------------------------------------------------------------
  16. # Con questo script potrai mostrare una barra su mappa che indichi una qualsiasi
  17. # cosa. È possibile, tramite comandi script, impostare posizione, descrizione e
  18. # colore della barra, e, ovviamente, il valore.
  19. # Non è volutamente personalizzabilissimo per renderlo facile da usare.
  20. #-------------------------------------------------------------------------------
  21. # Istruzioni:
  22. # Copiare lo script sotto Materials, prima del Main. Puoi impostare la descri-
  23. # zione della barra con un Chiama Script:
  24. # ★ set_genbar("Testo"), ad esempio Vita, Magia ecc...
  25. # una volta impostata, puoi mostrarla con il comando
  26. # ★ show_bar
  27. # puoi impostare il valore della barra con un numero da 0 a 100, chiamando lo
  28. # script
  29. # ★ bar_value(x), dove x è il valore.
  30. # per chiudere la finestraq quando non serve più
  31. # ★ hide_bar
  32. #
  33. # CONTROLLI AVANZATI:
  34. # ★ set_genbar("Testo",colore,x,y)
  35. # dove colore è Color.new(R,G,B) (R, G e B) sono le tonalità da 0 a 255, e
  36. # rappresenta il colore della barra
  37. # x e y sono rispettivamente le coordinate x e y del riquadro
  38. # ★ bar_resize(lunghezza, altezza)
  39. # ridimensiona l'aspetto del riquadro della barra
  40. # ★ get_bar_value o get_bar_value(nome_barra) restituisce il valore della barra
  41. #
  42. # PER PIU' BARRE:
  43. # ★ add_bar("nome_barra") aggiunge una nuova barra generica
  44. # ★ remove_bar("nome_barra") elimina una barra dalla mappa
  45. # ★ set_custom_bar("Testo",colore,x,y, "nome_barra")
  46. #    aggiunge e imposta una nuova barra sullo schermo. La variabile nome_barra
  47. #    la identifica (ad esempio "fame")
  48. # ★ bar_resize(lunghezza, altezza, "nome_barra")
  49. #    ridimensiona l'aspetto del riquadro della barra identificata da nome_barra
  50. # ★ show_bar("nome_barra") mostra una barra specifica sullo schermo
  51. # ★ bar_value(x, "nome_barra") imposta il valore di una barra specifica
  52. # ★ hide_bar("nome_barra") nasconde una barra
  53. #
  54. # USARE EFFETTI SPECIALI
  55. # ★ snooze_bar o snooze_bar(nome_barra) fa tremare la barra (ad esempio per
  56. #    simulare un colpo ricevuto)
  57. #    altre opzioni: snooze_bar(nome_barra, tempo, forza)
  58. #    tempo: il tempo di tremata (predefinito è 15)
  59. #    forza: la forza della tremata(predefinito è 5)
  60. # ★ flash_bar o flash_bar(nome_barra) emette un flash sulla barra
  61. #    altre opzioni: flash_bar(nome_barra, tempo, colore)
  62. #    tempo: il tempo del flash (prefefinito è 30, ½ secondo)
  63. #    colore (predefinito è bianco) mettere Color.new(R, G, B)
  64. #-------------------------------------------------------------------------------
  65. # Compatibilità:
  66. # classe Spriteset_Map -> alias di update, initialize, terminate
  67. #-------------------------------------------------------------------------------
  68.  
  69. #===============================================================================
  70. # ** Impostazioni
  71. #===============================================================================
  72. module H87_GBSettings
  73.   #R, G,  B
  74.   Default_Color = [0,120,250]           #Colore predefinito
  75.   DefaultX = 10                         #Posizione X predefinita
  76.   DefaultY = 10                         #Posizione Y predefinita
  77.   DefaultWidth = 200                    #Larghezza predefinita
  78.   DefaultHeight = 40                    #Altezza predefinita
  79.   BarHeight = 10                        #Altezza della barra
  80. end
  81. #============================================================================
  82. # ** FINE CONFIGURAZIONE **
  83. # Modificare da questo punto in poi è rischioso.
  84. #============================================================================
  85.  
  86. $imported = {} if $imported == nil
  87. $imported["h87_Genericbar"] = true
  88. #===============================================================================
  89. # ** Classe Game_System
  90. #===============================================================================
  91. class Game_System
  92.   include H87_GBSettings          #Inclusione del modulo
  93.   #-----------------------------------------------------------------------------
  94.   # * Restituisce lo stato della barra generica
  95.   #-----------------------------------------------------------------------------
  96.   def generic_bar_settings(bar = :default)
  97.     @barsettings = {} if @barsettings.nil?
  98.     reset_bar_h(bar) if @barsettings[bar] == nil
  99.     @barsettings[bar]
  100.   end
  101.   #-----------------------------------------------------------------------------
  102.   # * Resetta le impostazioni della barra
  103.   #-----------------------------------------------------------------------------
  104.   def reset_bar_h(bar = :default)
  105.     @barsettings[bar] = [
  106.         bar_defaultx, #PosX
  107.         bar_defaulty, #PosY
  108.         bar_defaultw, #Larghezza
  109.         bar_defaulth, #Altezza
  110.         "",           #Nome
  111.         bar_def_colr, #Colore Barra
  112.         false,        #Visibile?
  113.         0,            #Percentuale
  114.         false,        #Cambiato?
  115.         false         #aggiorna lung_barra
  116.     ]
  117.   end
  118.   #-----------------------------------------------------------------------------
  119.   # * Restituisce la schermata corrente (VX o VX Ace)
  120.   #-----------------------------------------------------------------------------
  121.   def current_scene
  122.     begin
  123.       return SceneManager.scene
  124.     rescue
  125.       return $scene
  126.     end
  127.   end
  128.   #-----------------------------------------------------------------------------
  129.   # * Restituisce il colore predefinito della barra
  130.   #-----------------------------------------------------------------------------
  131.   def bar_def_colr
  132.     c = Default_Color
  133.     Color.new(c[0],c[1],c[2])
  134.   end
  135.   #-----------------------------------------------------------------------------
  136.   # * Restituisce la coordinata predefinita
  137.   #-----------------------------------------------------------------------------
  138.   def bar_defaultx
  139.     DefaultX
  140.   end
  141.   #-----------------------------------------------------------------------------
  142.   # * Restituisce la coordinata predefinita
  143.   #-----------------------------------------------------------------------------
  144.   def bar_defaulty
  145.     DefaultY
  146.   end
  147.   #-----------------------------------------------------------------------------
  148.   # * Restituisce la larghezza predefinita
  149.   #-----------------------------------------------------------------------------
  150.   def bar_defaultw
  151.     DefaultWidth
  152.   end
  153.   #-----------------------------------------------------------------------------
  154.   # * Restituisce l'altezza predefinita
  155.   #-----------------------------------------------------------------------------
  156.   def bar_defaulth
  157.     DefaultHeight
  158.   end
  159.   #-----------------------------------------------------------------------------
  160.   # * Reimposta le proprietà della finestra della barra. Aggiunge una nuova se
  161.   #   il nome non è compreso
  162.   #-----------------------------------------------------------------------------
  163.   def generic_bar_set(letter, colore = bar_def_colr, x = nil, y = nil, bar = :default)
  164.     @barsettings = {} if @barsettings.nil?
  165.     if @barsettings[bar] == nil
  166.       reset_bar_h
  167.       add_active_bar(bar)
  168.     end
  169.     @barsettings[bar][0] = x if x != nil
  170.     @barsettings[bar][1] = y if y != nil
  171.     @barsettings[bar][4] = letter
  172.     @barsettings[bar][5] = colore
  173.     @barsettings[bar][8] = true #flag di modifica per refresh
  174.   end
  175.   #-----------------------------------------------------------------------------
  176.   # * Metodo alternativo per impostare la barra
  177.   #-----------------------------------------------------------------------------
  178.   def set_bar(bar, text, colore = bar_def_colr, x = nil, y = nil)
  179.     generic_bar_set(text, colore, x, y, bar)
  180.   end
  181.   #-----------------------------------------------------------------------------
  182.   # * Restituisce il colore predefinito della barra
  183.   #-----------------------------------------------------------------------------
  184.   def active_bars
  185.     @barsettings ||= {}
  186.     return @barsettings
  187.   end
  188.   #-----------------------------------------------------------------------------
  189.   # * Aggiunge una nuova barra
  190.   #-----------------------------------------------------------------------------
  191.   def add_active_bar(bar_name)
  192.     return if bar_name == :default
  193.     return if active_bars.keys.include?(bar_name)
  194.     @barsettings[bar_name] = reset_bar_h(bar_name)
  195.     current_scene.add_genbar(bar_name)
  196.   end
  197.   #-----------------------------------------------------------------------------
  198.   # * Rimuove una barra
  199.   #-----------------------------------------------------------------------------
  200.   def remove_active_bar(bar_name)
  201.     return if bar_name == :default
  202.     return unless active_bars.keys.include?(bar_name)
  203.     self.active_bars.delete(bar_name)
  204.     current_scene.remove_genbar(bar_name)
  205.   end
  206.   #-----------------------------------------------------------------------------
  207.   # * Mostra la finestra della barra
  208.   #-----------------------------------------------------------------------------
  209.   def show_generic_bar(bar = :default)
  210.     @barsettings ||= {}
  211.     reset_bar_h(bar) if @barsettings[bar] == nil
  212.     return unless @barsettings[bar][6]
  213.     @barsettings[bar][6] = true
  214.     @barsettings[bar][8] = true
  215.   end
  216.   #-----------------------------------------------------------------------------
  217.   # * Nasconde la finestra della barra
  218.   #-----------------------------------------------------------------------------
  219.   def hide_generic_bar(bar = :default)
  220.     @barsettings ||= {}
  221.     reset_bar_h(bar) if @barsettings[bar] == nil
  222.     return unless @barsettings[bar][6]
  223.     @barsettings[bar][6] = false
  224.     @barsettings[bar][8] = true
  225.   end
  226.   #-----------------------------------------------------------------------------
  227.   # * Assegna un valore da 0 a 100 per la percentuale della barra
  228.   #-----------------------------------------------------------------------------
  229.   def bar_percentage(value, bar = :default)
  230.     @barsettings = {} if @barsettings.nil?
  231.     reset_bar_h(bar) if @barsettings[bar].nil?
  232.     max = @barsettings[bar][10] ? @barsettings[bar][10] : 100
  233.     value = [[0, value].max, max].min
  234.     @barsettings[bar][7] = value
  235.     @barsettings[bar][9] = false
  236.   end
  237.   #-----------------------------------------------------------------------------
  238.   # * restituisce il valore della barra
  239.   #-----------------------------------------------------------------------------
  240.   def get_bar_percentage(bar = :default)
  241.     @barsettings = {} if @barsettings.nil?
  242.     @barsettings[bar][7] = 0 if @barsettings[bar][7] == nil
  243.     @barsettings[bar][7]
  244.   end
  245.   #-----------------------------------------------------------------------------
  246.   # * Ridimensiona la finestra della barra
  247.   #-----------------------------------------------------------------------------
  248.   def bar_resize(w,h, bar = :default)
  249.     @barsettings[bar][2] = w
  250.     @barsettings[bar][3] = h
  251.     @barsettings[bar][8] = true
  252.   end
  253.   #-----------------------------------------------------------------------------
  254.   # *  Returns an assigned bars array
  255.   #-----------------------------------------------------------------------------
  256.   def assigned_bars; @assigned_bars ||= {}; end
  257.   #-----------------------------------------------------------------------------
  258.   # * Assegna il valore di una variabile ad una barra
  259.   # @param [Integer] variable_id
  260.   # @param [Object] bar_id
  261.   #-----------------------------------------------------------------------------
  262.   def assign_bar(variable_id, bar_id = :default)
  263.     if assigned_bars[variable_id].nil?
  264.       assigned_bars[variable_id] = [bar_id]
  265.     else
  266.       unless assigned_bars[variable_id].include?(bar_id)
  267.         assigned_bars[variable_id].push(bar_id)
  268.       end
  269.     end
  270.   end
  271.   #-----------------------------------------------------------------------------
  272.   # * Unassign bar from variable
  273.   # @param [Integer] variable_id
  274.   # @param [Object] bar_id
  275.   #-----------------------------------------------------------------------------
  276.   def unassign_bar(variable_id, bar_id = :default)
  277.     assigned_bars[variable_id].delete(bar_id)
  278.   end
  279.   #-----------------------------------------------------------------------------
  280.   # * Handle assigned bars
  281.   # @param [Integer] variable_id
  282.   # @param [Object] bar_id
  283.   #-----------------------------------------------------------------------------
  284.   def handle_bars(variable_id, value)
  285.     return unless assigned_bars[variable_id]
  286.     if assigned_bars[variable_id].size > 0
  287.       assigned_bars[variable_id].each {|x| bar_percentage(value, x)}
  288.     end
  289.   end
  290. end #game_system
  291.  
  292. #===============================================================================
  293. # ** Classe Barra_Generica
  294. #===============================================================================
  295. class Barra_Generica
  296.   attr_reader   :visible    # if the bar is visible
  297.   attr_reader   :x          # x coord
  298.   attr_reader   :y          # y coord
  299.   attr_reader   :width      # bar frame width
  300.   attr_reader   :height     # bar frame height
  301.   attr_reader   :max_value  # max value
  302.   #-----------------------------------------------------------------------------
  303.   # * Inizializzazione
  304.   #-----------------------------------------------------------------------------
  305.   def initialize(viewport, bar_name = :default)
  306.     @bar_name = bar_name
  307.     @lb = H87_GBSettings::BarHeight #altezza barra
  308.     @sp = 5                         #spaziatura
  309.     @viewport = viewport
  310.     @snooze_time = 0
  311.     reset_settings
  312.   end
  313.   #-----------------------------------------------------------------------------
  314.   # * Assegna (o reimposta) le proprietà
  315.   #-----------------------------------------------------------------------------
  316.   def reset_settings(update = false)
  317.     set = $game_system.generic_bar_settings(@bar_name)
  318.     @x = set[0]
  319.     @y = set[1]
  320.     @width = set[2]
  321.     @height = set[3]
  322.     @letter = set[4]
  323.     @color = set[5]
  324.     @visible = set[6]
  325.     @max_value = set[10] ? set[10] : 100
  326.     start(update)
  327.   end
  328.   #-----------------------------------------------------------------------------
  329.   # * Comincia a creare la grafica
  330.   #   update: true se è già stata creata
  331.   #-----------------------------------------------------------------------------
  332.   def start(update=false)
  333.     create_main_graphic(update)
  334.     create_bar(update)
  335.   end
  336.   #-----------------------------------------------------------------------------
  337.   # * Crea la grafica di sfondo
  338.   #-----------------------------------------------------------------------------
  339.   def create_main_graphic(update)
  340.     @sprite_rect.bitmap.clear if update
  341.     barback_color = Color.new(@color.red/2,@color.green/2,@color.blue/2)
  342.     bitmap = Bitmap.new(@width+4, @height+4)
  343.     bitmap.fill_rect(2,2,@width,@height,Color.new(0,0,0,150))
  344.     bitmap.blur
  345.     bitmap.fill_rect(@sp,@height-(@sp+@lb),@width-(@sp*2),@lb,barback_color)
  346.     bitmap.draw_text(@sp,@sp,@width-@sp,24,@letter)
  347.     @sprite_rect = Sprite.new(@viewport)
  348.     @sprite_rect.bitmap = bitmap
  349.     @sprite_rect.x = @x-2
  350.     @sprite_rect.y = @y-2
  351.     @visible ? @sprite_rect.opacity = 255 : @sprite_rect.opacity = 0
  352.   end
  353.   #-----------------------------------------------------------------------------
  354.   # * Crea la grafica della barra
  355.   #-----------------------------------------------------------------------------
  356.   def create_bar(update)
  357.     @bar.bitmap.clear if update                       #pulisci se si deve agg.
  358.     bitmap = Bitmap.new(1,@lb)
  359.     @color = $game_system.generic_bar_settings(@bar_name)[5]
  360.     bitmap.fill_rect(0,0,1,@lb,@color)
  361.     @bar = Sprite.new(@viewport)
  362.     @bar.x = @sprite_rect.x + @sp
  363.     @bar.y = @sprite_rect.y + @sprite_rect.height - @sp-@lb -4
  364.     @bar.bitmap = bitmap
  365.     @bar.zoom_x = 1
  366.     @visible ? @bar.opacity = 255 : @bar.opacity = 0
  367.     $game_system.generic_bar_settings(@bar_name)[9] = false
  368.   end
  369.   #-----------------------------------------------------------------------------
  370.   # * Imposta se mostrare o nascondere la finestra della barra
  371.   #-----------------------------------------------------------------------------
  372.   def visible=(vis)
  373.     @visible = vis
  374.     @visible ? @sprite_rect.opacity = 255 : @sprite_rect.opacity = 0
  375.     @visible ? @bar.opacity = 255 : @bar.opacity = 0
  376.   end
  377.   #-----------------------------------------------------------------------------
  378.   # * Effetto del flash
  379.   #-----------------------------------------------------------------------------
  380.   def flash(time = 30, color = Color.new(255,255,255))
  381.     @bar.flash(color, time)
  382.     @sprite_rect.flash(color, time)
  383.   end
  384.   #-----------------------------------------------------------------------------
  385.   # * Effetto tremolio
  386.   #-----------------------------------------------------------------------------
  387.   def snooze(time = 20, str = 5)
  388.     str = 0 if str < 0
  389.     time = 0 if time < 0
  390.     str = 20 if str > 20
  391.     @snooze_str = str
  392.     @snooze_time = time
  393.   end
  394.   #-----------------------------------------------------------------------------
  395.   # * Aggiornamento
  396.   #-----------------------------------------------------------------------------
  397.   def update
  398.     if $game_system.generic_bar_settings(@bar_name)[8] #controllo refresh
  399.       reset_settings(true)
  400.       $game_system.generic_bar_settings(@bar_name)[8] = false
  401.       return
  402.     end
  403.     if @visible #aggiorna se la finestra è visibile
  404.       bar_update
  405.       snooze_update
  406.       effects_update
  407.     end
  408.   end
  409.   #-----------------------------------------------------------------------------
  410.   # * Aggiornamento del tremolio
  411.   #-----------------------------------------------------------------------------
  412.   def snooze_update
  413.     return if @snooze_time <= 0
  414.     if @snooze_time % 2 == 0
  415.       randx = rand(@snooze_str)-(@snooze_str/2)
  416.       randy = rand(@snooze_str)-(@snooze_str/2)
  417.       @bar.ox = randx
  418.       @bar.oy = randy
  419.       @sprite_rect.ox = randx
  420.       @sprite_rect.oy = randy
  421.     else
  422.       @bar.ox = 0
  423.       @bar.oy = 0
  424.       @sprite_rect.ox = 0
  425.       @sprite_rect.oy = 0
  426.     end
  427.     @snooze_time -= 1
  428.     if @snooze_time == 0
  429.       @bar.ox = 0
  430.       @bar.oy = 0
  431.       @sprite_rect.ox = 0
  432.       @sprite_rect.oy = 0
  433.     end
  434.   end
  435.   #-----------------------------------------------------------------------------
  436.   # * Aggiornamento del flash
  437.   #-----------------------------------------------------------------------------
  438.   def effects_update
  439.     @bar.update
  440.     @sprite_rect.update
  441.   end
  442.   #-----------------------------------------------------------------------------
  443.   # * Aggiornamento dell'animazione della barra
  444.   #-----------------------------------------------------------------------------
  445.   def bar_update
  446.     return if $game_system.generic_bar_settings(@bar_name)[9]
  447.     percent = $game_system.generic_bar_settings(@bar_name)[7]
  448.     width = @width-(@sp*2)
  449.     larg = width.to_f * percent / @max_value
  450.     distanza = larg - @bar.zoom_x
  451.     @bar.zoom_x += distanza/2
  452.     $game_system.generic_bar_settings(@bar_name)[9] = true if distanza <1 and distanza > -1
  453.   end
  454.   #-----------------------------------------------------------------------------
  455.   # * Assegnazione del valore massimo
  456.   #-----------------------------------------------------------------------------
  457.   def max_value=(value); @max_value = [1, value].max; end
  458.   #-----------------------------------------------------------------------------
  459.   # * Eliminazione
  460.   #-----------------------------------------------------------------------------
  461.   def dispose
  462.     @bar.bitmap.dispose
  463.     @bar.dispose
  464.     @sprite_rect.bitmap.dispose
  465.     @sprite_rect.dispose
  466.   end
  467. end #barra
  468.  
  469. #===============================================================================
  470. # ** Classe Spriteset_Map
  471. #===============================================================================
  472. class Spriteset_Map
  473.   alias bgen_initialize initialize unless $@
  474.   alias bgen_dispose dispose unless $@
  475.   alias bgen_update update unless $@
  476.   #-----------------------------------------------------------------------------
  477.   # * Alias Inizializzazione
  478.   #-----------------------------------------------------------------------------
  479.   def initialize
  480.     create_generic_bars
  481.     bgen_initialize
  482.   end
  483.   #-----------------------------------------------------------------------------
  484.   # * Alias Uscita
  485.   #-----------------------------------------------------------------------------
  486.   def dispose
  487.     bgen_dispose
  488.     dispose_generic_bars
  489.   end
  490.   #-----------------------------------------------------------------------------
  491.   # * Alias Aggiornamento
  492.   #-----------------------------------------------------------------------------
  493.   def update
  494.     bgen_update
  495.     update_generic_bars
  496.   end
  497.   #-----------------------------------------------------------------------------
  498.   # * Creazione finestra con barra
  499.   #-----------------------------------------------------------------------------
  500.   def create_generic_bars
  501.     @generic_bars = {}
  502.     @generic_bars[:default] = Barra_Generica.new(@viewport2)
  503.     $game_system.active_bars.each_key do |name|
  504.       next if name == :default or name.nil?
  505.       @generic_bars[name]=Barra_Generica.new(@viewport2, name)
  506.     end
  507.   end
  508.   #-----------------------------------------------------------------------------
  509.   # * Eliminazione
  510.   #-----------------------------------------------------------------------------
  511.   def dispose_generic_bars
  512.     @generic_bars.each do |bar|
  513.       bar[1].dispose
  514.     end
  515.   end
  516.   #-----------------------------------------------------------------------------
  517.   # * Aggiornamento
  518.   #-----------------------------------------------------------------------------
  519.   def update_generic_bars
  520.     @generic_bars.each do |gbar|
  521.       gbar[1].update
  522.     end
  523.   end
  524.   #-----------------------------------------------------------------------------
  525.   # * Aggiunge una barra
  526.   #-----------------------------------------------------------------------------
  527.   def add_gen_bar(bar_name)
  528.     @generic_bars[bar_name] = Barra_Generica.new(@viewport2, bar_name)
  529.     print @generic_bars.size
  530.   end
  531.   #-----------------------------------------------------------------------------
  532.   # * Rimuove una barra
  533.   #-----------------------------------------------------------------------------
  534.   def remove_gen_bar(bar_name)
  535.     bar = @generic_bars[bar_name]
  536.     bar.visible = false
  537.     bar.dispose
  538.     @generic_bars.delete(bar_name)
  539.   end
  540.   #-----------------------------------------------------------------------------
  541.   # * Flash alla barra
  542.   #-----------------------------------------------------------------------------
  543.   def bar_flash(time, color, bar)
  544.     return if @generic_bars[bar].nil?
  545.     @generic_bars[bar].flash(time, color)
  546.   end
  547.   #-----------------------------------------------------------------------------
  548.   # * Tremolio della barra
  549.   #-----------------------------------------------------------------------------
  550.   def bar_snooze(time, str, bar)
  551.     return if @generic_bars[bar].nil?
  552.     @generic_bars[bar].snooze(time, str)
  553.   end
  554. end #spriteset_map
  555.  
  556. #===============================================================================
  557. # ** Classe Game_Interpreter
  558. #===============================================================================
  559. class Game_Interpreter
  560.   #-----------------------------------------------------------------------------
  561.   # * Reimposta le proprietà della barra
  562.   #-----------------------------------------------------------------------------
  563.   def set_genbar(letter, color = bar_def_colr, x = nil, y = nil)
  564.     $game_system.generic_bar_set(letter, color, x, y)
  565.   end
  566.   #-----------------------------------------------------------------------------
  567.   # * Reimposta una barra generica
  568.   #-----------------------------------------------------------------------------
  569.   def set_custom_bar(bar_name, letter, color = bar_def_colr, x = nil, y = nil)
  570.     $game_system.generic_bar_set(letter, color, x, y, bar_name)
  571.   end
  572.   #-----------------------------------------------------------------------------
  573.   # * Nascondi barra
  574.   #-----------------------------------------------------------------------------
  575.   def hide_bar(bar_name = :default)
  576.     $game_system.hide_generic_bar(bar_name)
  577.   end
  578.   #-----------------------------------------------------------------------------
  579.   # * Mostra barra
  580.   #-----------------------------------------------------------------------------
  581.   def show_bar(bar_name = :default)
  582.     $game_system.show_generic_bar(bar_name)
  583.   end
  584.   #-----------------------------------------------------------------------------
  585.   # * Assegna valore barra
  586.   #-----------------------------------------------------------------------------
  587.   def bar_value(value, bar_name = :default)
  588.     $game_system.bar_percentage(value, bar_name)
  589.   end
  590.   #-----------------------------------------------------------------------------
  591.   # * Ridimensiona finestra
  592.   #-----------------------------------------------------------------------------
  593.   def bar_resize(width,height,bar_name = :default)
  594.     $game_system.bar_resize(width,height,bar_name)
  595.   end
  596.   #-----------------------------------------------------------------------------
  597.   # * Aggiunge una barra personalizzata
  598.   #-----------------------------------------------------------------------------
  599.   def add_bar(bar_name)
  600.     $game_system.add_active_bar(bar_name)
  601.   end
  602.   #-----------------------------------------------------------------------------
  603.   # * Rimuove una barra personalizzata
  604.   #-----------------------------------------------------------------------------
  605.   def remove_bar(bar_name)
  606.     $game_system.remove_active_bar(bar_name)
  607.   end
  608.   #-----------------------------------------------------------------------------
  609.   # * Flash alla barra
  610.   #-----------------------------------------------------------------------------
  611.   def flash_bar(bar = :default, time = 30, color = Color.new(255,255,255))
  612.     $game_system.current_scene.bar_flash(time, color, bar)
  613.   end
  614.   #-----------------------------------------------------------------------------
  615.   # * Tremolio
  616.   #-----------------------------------------------------------------------------
  617.   def snooze_bar(bar = :default, time = 15, str = 5)
  618.     $game_system.current_scene.bar_snooze(time, str, bar)
  619.   end
  620.   #-----------------------------------------------------------------------------
  621.   # * Assign a bar to a variable change
  622.   # @param [Integer] variable_id
  623.   # @param [Object] bar_id
  624.   #-----------------------------------------------------------------------------
  625.   def assign_bar(variable_id, bar_id = :default)
  626.     $game_system.assign_bar(variable_id, bar_id)
  627.   end
  628.   #-----------------------------------------------------------------------------
  629.   # * Unassign a bar from a variable
  630.   # @param [Integer] variable_id
  631.   # @param [Object] bar_id
  632.   #-----------------------------------------------------------------------------
  633.   def unassign_bar(variable_id, bar_id = :default)
  634.     $game_system.unassign_bar(variable_id, bar_id)
  635.   end
  636.   #-----------------------------------------------------------------------------
  637.   # * Set a new max (100 default)
  638.   # @param [Integer] max
  639.   # @param [Object] bar_id
  640.   #-----------------------------------------------------------------------------
  641.   def set_bar_max(max = 100, bar_id = :default)
  642.     $game_system.set_bar_max(max, bar_id)
  643.   end
  644.   #-----------------------------------------------------------------------------
  645.   # * Assegnazione colore
  646.   #-----------------------------------------------------------------------------
  647.   def bar_def_colr
  648.     c = H87_GBSettings::Default_Color
  649.     Color.new(c[0],c[1],c[2])
  650.   end
  651. end #game_interpreter
  652.  
  653. #===============================================================================
  654. # ** Classe Scene_Base
  655. #===============================================================================
  656. class Scene_Base
  657.   #-----------------------------------------------------------------------------
  658.   # * Metodi vuoti, servono per non generare errori se non si è sulla mappa.
  659.   #-----------------------------------------------------------------------------
  660.   def add_genbar(bar_name);end
  661.   def remove_genbar(bar_name);end
  662.   def bar_flash(time, color, bar);end
  663.   def bar_snooze(time, str, bar);end
  664. end #scene_base
  665.  
  666. #===============================================================================
  667. # ** Classe Scene_Map
  668. #===============================================================================
  669. class Scene_Map < Scene_Base
  670.   #-----------------------------------------------------------------------------
  671.   # * Aggiunge una barra allo spriteset
  672.   #-----------------------------------------------------------------------------
  673.   def add_genbar(bar_name)
  674.     @spriteset.add_gen_bar(bar_name)
  675.   end
  676.   #-----------------------------------------------------------------------------
  677.   # * Rimuove una barra dallo spriteset
  678.   #-----------------------------------------------------------------------------
  679.   def remove_genbar(bar_name)
  680.     @spriteset.remove_gen_bar(bar_name)
  681.   end
  682.   #-----------------------------------------------------------------------------
  683.   # * Flash barra dello spriteset
  684.   #-----------------------------------------------------------------------------
  685.   def bar_flash(time, color, bar)
  686.     @spriteset.bar_flash(time, color, bar)
  687.   end
  688.   #-----------------------------------------------------------------------------
  689.   # * Tremolio alla barra dello spriteset
  690.   #-----------------------------------------------------------------------------
  691.   def bar_snooze(time, str, bar)
  692.     @spriteset.bar_snooze(time,str,bar)
  693.   end
  694. end #scene_map
  695.  
  696. #===============================================================================
  697. # ** Game_Variables
  698. #===============================================================================
  699. class Game_Variables
  700.   alias old_set []= unless $@
  701.   #-----------------------------------------------------------------------------
  702.   # * Adding bar handle on value change
  703.   # @param [Integer] variable_id
  704.   # @param [Integer] value
  705.   #-----------------------------------------------------------------------------
  706.   def []=(variable_id, value)
  707.     old_set(variable_id, value)
  708.     $game_system.handle_bars(variable_id, value)
  709.   end
  710. end
RAW Paste Data