View difference between Paste ID: VS3E6b7q and vwjUkYJG
SHOW: | | - or go back to the newest paste.
1
#==============================================================================
2
# • Event Bar
3
#==============================================================================
4
# Autor: Dax
5-
# Versão: 2.2
5+
# Versão: 3.0
6
# Site: www.dax-soft.weebly.com
7-
# Requerimento: Dax Core Xi1.4
7+
# Requerimento: Dax Core 
8
#==============================================================================
9
# • Descrição:
10
#------------------------------------------------------------------------------
11
#   Permite fazer/criar barras que fiquem na cabeça dos eventos. Útil para
12
# fazer barras de vida..Para Sistemas de Batalha.
13
#==============================================================================
14
# • Como usar: NO COMANDO CHAMAR SCRIPT
15
#------------------------------------------------------------------------------
16-
# * event_bar(a, b, [c, d, e, f], [g, h])
16+
# ebar(eID, vID, m, vm, x, y, w, h, color2, color)
17-
#     a : ID da variável das HUD. NUNCA PONHA VALOR IGUAL SE JÁ EXISTE.
17+
18-
#     b : ID do evento do Mapa.
18+
# ► Requerido.
19-
#     c : ID da variável que irá mostrar o valor atual da barra.
19+
#   eID : ID do evento do mapa. Se estiver vázio é o id do evento local.
20-
#     d : ID da variável que irá mostrar o valor máximo da barra.
20+
#   vID : ID da variável que irá mostrar o valor atual da barra.
21-
#     e : Definir valor da variável 'a' | Defina o valor somente caso, o valor
21+
#   m : Definir valor máximo da barra.
22-
# da variável não estiver definido ainda.
22+
#   vm : Quer controlar o valor máximo da barra através de uma variável? Então
23-
#     f : Definir valor da variável 'b' | Defina o valor somente caso, o valor
23+
# ponha o ID da variável no lugar de D. Caso não, deixe vázio.
24-
# da variável não estiver definido ainda.
24+
25-
#     *** Opcional ***
25+
# ► Opicional.
26-
#     g : Posição X adicional.
26+
#   x : Posição X adicional. Caso queira nada, deixe vázio.
27-
#     h : Posição Y adicional.
27+
#   y : Posição Y adicional. Caso queira nada, deixe vázio.
28
#   w : Modificar a largura do tamanho da HUD. Caso queira nada, deixe vázio.
29-
Dax.register(:event_bar, "Dax", 2.2)
29+
# O valor padrão é definido.
30-
class << Rpg
30+
#   h : Modificar a altura do tamanho da HUD. Caso queira nada, deixe vázio.
31
# O valor padrão é definido.
32-
  # • Iniciar.
32+
#   i : Modificar a primeira cor da barra. Caso não queira deixe vázio.
33
#   j : Modificar a segunda cor da barra. Caso não queira deixe vázio.
34-
  alias :event_bar_data_manager :data_manager
34+
35-
  def data_manager
35+
# ► Dica:
36-
   event_bar_data_manager
36+
#  Deixar vázio é igual a por o valor em: nil
37-
   @data_event_bar = []
37+
38
# Exemplo: 
39
#==============================================================================
40
Dax.register(:event_bar, "Dax", 3.0, "12/09/14")
41
#==============================================================================
42-
  def event_bar
42+
# • Módulo de configuração.
43-
    return {
43+
44-
      z: 199, # Propriedade.
44+
module EventBar
45-
      color2: ColorBasic.hex("920120"), # Cor 2
45+
  extend self
46-
      color: ColorBasic.hex("d3002d"), # Cor
46+
47-
      width: 24, # Largura.
47+
48-
      height: 5, # Altura.
48+
49-
      x_add: 0, # Posição adicional.
49+
  Z = 199 # ► Propriedade no mapa.
50-
      y_add: 0, # Posição adicional.
50+
  COLOR_DEFAULT_BAR2 = "920120".color # ► Cor padrão da barra 2.
51-
      color_background: ColorBasic[7], # Cor de fundo.
51+
  COLOR_DEFAULT_BAR = "d3002d".color # ► Cor padrão da barra.
52
  COLOR_BACKGROUND = "000000".color # ► Cor do fundo.
53
  WIDTH = 24 # ► Largura padrão da barra.
54
  HEIGHT = 5 # ► Altura padrão da barra.
55-
  # • Criar.
55+
  @data = [] 
56-
  #    id : ID da variável.
56+
57-
  #    event_id : ID do Evento.
57+
  # • Criar uma barra.
58-
  #    variable : [a, b, c, d]
58+
59-
  #     a : ID da variável que irá definir o valor atual.
59+
  def do(*args)
60-
  #     b : ID da variável que irá definir o valor máximo.
60+
    return unless @data[rand(9999)].nil?
61-
  #     c : Definir valor da variável 'a'
61+
    @data[rand(9999)] = Sprite_Event_Bar.new(*args)
62-
  #     d : Definir valor da variável 'b'
62+
63
  #----------------------------------------------------------------------------
64-
  def make_event_bar(id, *args)
64+
  # • Esconder.
65-
    return unless @data_event_bar[id].nil?
65+
66-
    @data_event_bar[id] = Sprite_Event_Bar.new(*args)
66+
  def hide
67
    @data.each { |each| each.opacity = 0 unless each.nil? }
68
  end
69-
  # • Conteúdo.
69+
70
  # • Atualizar.
71-
  def data_event_bar(id)
71+
72-
    return @data_event_bar[id]
72+
73
    return if @data.nil?
74
    @data.each_with_index { |bar, index|
75-
  # •  Esconder
75+
76
        bar.update
77-
  def hide_event_bar
77+
        bar.opacity = 255 if bar.opacity == 0
78-
    @data_event_bar.each { |i| i.opacity = 0 unless i.nil?}
78+
        unless bar.visible
79
          bar.dispose
80
          @data.delete_at(index)
81
        end
82
      end
83-
  def update_event_bar
83+
84-
    return if @data_event_bar.nil?
84+
85-
    @data_event_bar.each_with_index do |bar, index|
85+
86
#==============================================================================
87-
       bar.update
87+
88-
       bar.opacity = 255 if bar.opacity == 0
88+
89-
       unless bar.visible
89+
90-
         bar.dispose
90+
  include EventBar
91-
         @data_event_bar.delete_at(index)
91+
92-
       end
92+
93
  #----------------------------------------------------------------------------
94-
    end
94+
  def initialize(eID, vID, m, vm, x=nil, y=nil, w=nil, h=nil, color2=nil, color=nil)
95
    @x, @y = x || 0, y || 0
96
    @eID = eID
97
    @m, @vm, @vID = m, vm, vID
98
    super([w || WIDTH, h || HEIGHT])
99
    self.x = $game_map.events[@eID].screen_x - (self.width / 2) + @x
100
    self.y = $game_map.events[@eID].screen_y - (33+self.height) + @y
101
    self.z = Z
102-
  # • Variáveis públicas da instância.
102+
    @color2, @color = color2 || COLOR_DEFAULT_BAR2, color || COLOR_DEFAULT_BAR
103
  end
104-
  attr_reader :actual
104+
105
  # • Renovação dos objetos.
106
  #----------------------------------------------------------------------------
107
  def dispose
108-
  def initialize(event_id, variable=[0, 0, 1, 1], xy=[0,0])
108+
109-
    @xy = xy
109+
110-
    @event_id = event_id
110+
111-
    super([Rpg.event_bar[:width], Rpg.event_bar[:height]])
111+
112-
    self.x = $game_map.events[@event_id].screen_x - (self.width/2) + (Rpg.event_bar[:x_add] + @xy[0])
112+
113-
    self.y = $game_map.events[@event_id].screen_y - (32+self.height+1) + (Rpg.event_bar[:y_add] + @xy[0])
113+
114-
    self.z = Rpg.event_bar[:z]
114+
115-
    @variable_actual_id = variable[0]
115+
116-
    @variable_max_id = variable[1]
116+
    self.x = $game_map.events[@eID].screen_x - (self.width / 2) + @x
117-
    $game_variables[@variable_actual_id] = variable[2] if $game_variables[@variable_actual_id] == 0
117+
    self.y = $game_map.events[@eID].screen_y - (33+self.height) + @y
118-
    $game_variables[@variable_max_id] = variable[3] if $game_variables[@variable_max_id] == 0
118+
119
    @actual = $game_variables[@vID] = $game_variables[@vID] == 0 ? 1 : $game_variables[@vID]
120
    @max = @vm.nil? ? @m : $game_variables[@vm] = @m
121
    self.bitmap.fill_rect(self.rect, COLOR_BACKGROUND)
122
    self.bitmap.gradient_bar([@color, @color2], @actual, @max, 1)
123
    self.visible = false if @actual <= 1
124
  end
125
end
126
#==============================================================================
127
# • Spriteset_Map
128
#==============================================================================
129
class Spriteset_Map
130
  alias :event_bar_dispose :dispose
131
  def dispose
132-
    self.x = $game_map.events[@event_id].screen_x - (self.width/2) + (Rpg.event_bar[:x_add] + @xy[0])
132+
    EventBar.hide
133-
    self.y = $game_map.events[@event_id].screen_y - (32+self.height+1) + (Rpg.event_bar[:y_add] + @xy[0])
133+
134
  end
135-
    @actual = $game_variables[@variable_actual_id]
135+
136-
    @max = $game_variables[@variable_max_id]
136+
137-
    self.bitmap.fill_rect(self.rect, Rpg.event_bar[:color_background])
137+
138-
    self.bitmap.gradient_bar([Rpg.event_bar[:color], Rpg.event_bar[:color2]], @actual, @max, 1)
138+
    EventBar.update
139-
    self.visible = false if @actual < 1
139+
140
end
141
#==============================================================================
142
# • Interpretador;
143
#==============================================================================
144
class Game_Interpreter
145
  #----------------------------------------------------------------------------
146
  # • Barra no evento.
147
  #----------------------------------------------------------------------------
148-
    Rpg.hide_event_bar
148+
  def ebar(*args)
149
    EventBar.do(*args)
150
  end
151
end
152
__END__
153
#--------------------------------------------------------------------------
154-
    Rpg.update_event_bar
154+
 # ● Setup Event Text
155
 #--------------------------------------------------------------------------                       
156
  def setup_event_bar
157
    return if @list == nil
158
    for command in @list
159
    if command.code == 108
160
        if command.parameters[0].match(/ebar: id(\d+) h(\d+) m(\d+) vm(\w+) p(\w+) s(\w+) #(\w+)_(\w+)/im)
161
          msgbox "OK"
162
          EventBar.do($1.to_i, $2.to_i, $3.to_i, $4 == "@" ? nil : 
163
            $4.nil?, $5.to_s.split("_")[0].to_i, $5.to_s.split("_")[1].to_i,
164-
  def event_bar(*args)
164+
              $6.to_s.split("_")[0].to_i, $6.to_s.split("_")[1].to_i, $7, $8)
165-
    Rpg.make_event_bar(*args)
165+
        end  
166
      end
167
    end 
168-
  # • Conteúdo.
168+
  end