View difference between Paste ID: vwjUkYJG and 0LX0g2PU
SHOW: | | - or go back to the newest paste.
1
#==============================================================================
2
# • Event Bar
3
#==============================================================================
4
# Autor: Dax
5
# Versão: 2.2
6
# Site: www.dax-soft.weebly.com
7
# Requerimento: Dax Core Xi1.4
8
#==============================================================================
9
# • Descrição:
10
#------------------------------------------------------------------------------
11-
#   Permite fazer/criar barras que fiquem na cabeça dos eventos. Útil para 
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])
17
#     a : ID da variável das HUD. NUNCA PONHA VALOR IGUAL SE JÁ EXISTE.
18
#     b : ID do evento do Mapa.
19
#     c : ID da variável que irá mostrar o valor atual da barra.
20
#     d : ID da variável que irá mostrar o valor máximo da barra.
21
#     e : Definir valor da variável 'a' | Defina o valor somente caso, o valor
22
# da variável não estiver definido ainda.
23
#     f : Definir valor da variável 'b' | Defina o valor somente caso, o valor
24
# da variável não estiver definido ainda.
25
#     *** Opcional ***
26
#     g : Posição X adicional.
27
#     h : Posição Y adicional.
28
#==============================================================================
29-
Dax.register(:event_bar, "Dax", 2.2) 
29+
Dax.register(:event_bar, "Dax", 2.2)
30
class << Rpg
31
  #----------------------------------------------------------------------------
32
  # • Iniciar.
33
  #----------------------------------------------------------------------------
34
  alias :event_bar_data_manager :data_manager
35
  def data_manager
36
   event_bar_data_manager
37
   @data_event_bar = []
38
  end
39
  #----------------------------------------------------------------------------
40
  # • Configuração.
41
  #----------------------------------------------------------------------------
42
  def event_bar
43
    return {
44-
      z: 200, # Propriedade.
44+
      z: 199, # Propriedade.
45
      color2: ColorBasic.hex("920120"), # Cor 2
46-
      color: ColorBasic.hex("d3002d"), # Cor 
46+
      color: ColorBasic.hex("d3002d"), # Cor
47
      width: 24, # Largura.
48
      height: 5, # Altura.
49
      x_add: 0, # Posição adicional.
50
      y_add: 0, # Posição adicional.
51
      color_background: ColorBasic[7], # Cor de fundo.
52
    }
53
  end
54
  #----------------------------------------------------------------------------
55
  # • Criar.
56
  #    id : ID da variável.
57
  #    event_id : ID do Evento.
58
  #    variable : [a, b, c, d]
59
  #     a : ID da variável que irá definir o valor atual.
60
  #     b : ID da variável que irá definir o valor máximo.
61
  #     c : Definir valor da variável 'a'
62
  #     d : Definir valor da variável 'b'
63
  #----------------------------------------------------------------------------
64
  def make_event_bar(id, *args)
65
    return unless @data_event_bar[id].nil?
66
    @data_event_bar[id] = Sprite_Event_Bar.new(*args)
67
  end
68
  #----------------------------------------------------------------------------
69
  # • Conteúdo.
70
  #----------------------------------------------------------------------------
71
  def data_event_bar(id)
72
    return @data_event_bar[id]
73
  end
74
  #----------------------------------------------------------------------------
75
  # •  Esconder
76
  #----------------------------------------------------------------------------
77
  def hide_event_bar
78
    @data_event_bar.each { |i| i.opacity = 0 unless i.nil?}
79
  end
80
  #----------------------------------------------------------------------------
81
  # • Atualizar.
82
  #----------------------------------------------------------------------------
83
  def update_event_bar
84
    return if @data_event_bar.nil?
85
    @data_event_bar.each_with_index do |bar, index|
86
      unless bar.nil?
87-
       bar.update 
87+
       bar.update
88
       bar.opacity = 255 if bar.opacity == 0
89
       unless bar.visible
90
         bar.dispose
91
         @data_event_bar.delete_at(index)
92
       end
93
      end
94
    end
95
  end
96
end
97
#==============================================================================
98
# • Sprite_Event_Bar
99
#==============================================================================
100
class Sprite_Event_Bar < Sprite
101
  #----------------------------------------------------------------------------
102
  # • Variáveis públicas da instância.
103
  #----------------------------------------------------------------------------
104
  attr_reader :actual
105
  #----------------------------------------------------------------------------
106
  # • Inicialização dos objetos.
107
  #----------------------------------------------------------------------------
108
  def initialize(event_id, variable=[0, 0, 1, 1], xy=[0,0])
109
    @xy = xy
110
    @event_id = event_id
111
    super([Rpg.event_bar[:width], Rpg.event_bar[:height]])
112
    self.x = $game_map.events[@event_id].screen_x - (self.width/2) + (Rpg.event_bar[:x_add] + @xy[0])
113
    self.y = $game_map.events[@event_id].screen_y - (32+self.height+1) + (Rpg.event_bar[:y_add] + @xy[0])
114
    self.z = Rpg.event_bar[:z]
115
    @variable_actual_id = variable[0]
116
    @variable_max_id = variable[1]
117
    $game_variables[@variable_actual_id] = variable[2] if $game_variables[@variable_actual_id] == 0
118
    $game_variables[@variable_max_id] = variable[3] if $game_variables[@variable_max_id] == 0
119
  end
120
  #----------------------------------------------------------------------------
121
  # • Renovação dos objetos.
122
  #----------------------------------------------------------------------------
123
  def dispose
124
    self.bitmap.dispose
125
    super
126
  end
127
  #----------------------------------------------------------------------------
128
  # • Atualização dos objetos.
129
  #----------------------------------------------------------------------------
130
  def update
131
    return if self.bitmap.nil?
132
    self.x = $game_map.events[@event_id].screen_x - (self.width/2) + (Rpg.event_bar[:x_add] + @xy[0])
133
    self.y = $game_map.events[@event_id].screen_y - (32+self.height+1) + (Rpg.event_bar[:y_add] + @xy[0])
134
    self.bitmap.clear
135
    @actual = $game_variables[@variable_actual_id]
136
    @max = $game_variables[@variable_max_id]
137
    self.bitmap.fill_rect(self.rect, Rpg.event_bar[:color_background])
138
    self.bitmap.gradient_bar([Rpg.event_bar[:color], Rpg.event_bar[:color2]], @actual, @max, 1)
139
    self.visible = false if @actual < 1
140
  end
141
end
142
#==============================================================================
143
# • Spriteset_Map
144
#==============================================================================
145
class Spriteset_Map
146
  alias :event_bar_dispose :dispose
147
  def dispose
148
    Rpg.hide_event_bar
149
    event_bar_dispose
150
  end
151
  alias :event_bar_update :update
152
  def update
153
    event_bar_update
154
    Rpg.update_event_bar
155
  end
156
end
157
#==============================================================================
158
# • Interpretador;
159
#==============================================================================
160
class Game_Interpreter
161
  #----------------------------------------------------------------------------
162
  # • Barra no evento.
163
  #----------------------------------------------------------------------------
164
  def event_bar(*args)
165
    Rpg.make_event_bar(*args)
166
  end
167
  #----------------------------------------------------------------------------
168
  # • Conteúdo.
169
  #----------------------------------------------------------------------------
170
  def event_bar_data(id)
171
    Rpg.data_event_bar(id)
172
  end
173
end