View difference between Paste ID: 8gGKcAss and VS3E6b7q
SHOW: | | - or go back to the newest paste.
1
#==============================================================================
2
# • Event Bar
3
#==============================================================================
4
# Autor: Dax
5
# Versão: 3.0
6
# Site: www.dax-soft.weebly.com
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
# ebar(eID, vID, m, vm, x, y, w, h, color2, color)
17
#------------------------------------------------------------------------------
18
# ► Requerido.
19
#   eID : ID do evento do mapa. Se estiver vázio é o id do evento local.
20
#   vID : ID da variável que irá mostrar o valor atual da barra.
21
#   m : Definir valor máximo da barra.
22
#   vm : Quer controlar o valor máximo da barra através de uma variável? Então
23
# ponha o ID da variável no lugar de D. Caso não, deixe vázio.
24
#------------------------------------------------------------------------------
25
# ► Opicional.
26
#   x : Posição X adicional. Caso queira nada, deixe vázio.
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
# O valor padrão é definido.
30
#   h : Modificar a altura do tamanho da HUD. Caso queira nada, deixe vázio.
31
# O valor padrão é definido.
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
#------------------------------------------------------------------------------
35
# ► Dica:
36
#  Deixar vázio é igual a por o valor em: nil
37
#------------------------------------------------------------------------------
38
# Exemplo: 
39
#	ebar(1,1,100,nil,0,0,25,5,"f2e341".color, "fdef57".color)
40
#	ebar(1,2,100,nil,0,-5,32)
41
#==============================================================================
42
Dax.register(:event_bar, "Dax", 3.0, "12/09/14")
43
#==============================================================================
44
# • Módulo de configuração.
45
#==============================================================================
46
module EventBar
47
  extend self
48
  #----------------------------------------------------------------------------
49
  # • Configuração.
50
  #----------------------------------------------------------------------------
51
  Z = 199 # ► Propriedade no mapa.
52
  COLOR_DEFAULT_BAR2 = "920120".color # ► Cor padrão da barra 2.
53
  COLOR_DEFAULT_BAR = "d3002d".color # ► Cor padrão da barra.
54
  COLOR_BACKGROUND = "000000".color # ► Cor do fundo.
55
  WIDTH = 24 # ► Largura padrão da barra.
56
  HEIGHT = 5 # ► Altura padrão da barra.
57
  @data = [] 
58
  #----------------------------------------------------------------------------
59
  # • Criar uma barra.
60
  #----------------------------------------------------------------------------
61
  def do(*args)
62
    return unless @data[rand(9999)].nil?
63
    @data[rand(9999)] = Sprite_Event_Bar.new(*args)
64
  end
65
  #----------------------------------------------------------------------------
66
  # • Esconder.
67
  #----------------------------------------------------------------------------
68
  def hide
69
    @data.each { |each| each.opacity = 0 unless each.nil? }
70
  end
71
  #----------------------------------------------------------------------------
72
  # • Atualizar.
73
  #----------------------------------------------------------------------------
74
  def update
75
    return if @data.nil?
76
    @data.each_with_index { |bar, index|
77
      unless bar.nil?
78
        bar.update
79
        bar.opacity = 255 if bar.opacity == 0
80
        unless bar.visible
81
          bar.dispose
82
          @data.delete_at(index)
83
        end
84
      end
85
    }
86
  end
87
end
88
#==============================================================================
89
# • Sprite_Event_Bar
90
#==============================================================================
91
class Sprite_Event_Bar < Sprite
92
  include EventBar
93
  #----------------------------------------------------------------------------
94
  # • Inicialização dos objetos.
95
  #----------------------------------------------------------------------------
96
  def initialize(eID, vID, m, vm, x=nil, y=nil, w=nil, h=nil, color2=nil, color=nil)
97
    @x, @y = x || 0, y || 0
98
    @eID = eID
99
    @m, @vm, @vID = m, vm, vID
100
    super([w || WIDTH, h || HEIGHT])
101
    self.x = $game_map.events[@eID].screen_x - (self.width / 2) + @x
102
    self.y = $game_map.events[@eID].screen_y - (33+self.height) + @y
103
    self.z = Z
104
    @color2, @color = color2 || COLOR_DEFAULT_BAR2, color || COLOR_DEFAULT_BAR
105
  end
106
  #----------------------------------------------------------------------------
107
  # • Renovação dos objetos.
108
  #----------------------------------------------------------------------------
109
  def dispose
110
    self.bitmap.dispose
111
    super
112
  end
113
  #----------------------------------------------------------------------------
114
  # • Atualização dos objetos.
115
  #----------------------------------------------------------------------------
116
  def update
117
    return if self.bitmap.nil?
118
    self.x = $game_map.events[@eID].screen_x - (self.width / 2) + @x
119
    self.y = $game_map.events[@eID].screen_y - (33+self.height) + @y
120
    self.bitmap.clear
121
    @actual = $game_variables[@vID] = $game_variables[@vID] == 0 ? 1 : $game_variables[@vID]
122
    @max = @vm.nil? ? @m : $game_variables[@vm] = @m
123
    self.bitmap.fill_rect(self.rect, COLOR_BACKGROUND)
124
    self.bitmap.gradient_bar([@color, @color2], @actual, @max, 1)
125
    self.visible = false if @actual <= 1
126
  end
127
end
128
#==============================================================================
129
# • Spriteset_Map
130
#==============================================================================
131
class Spriteset_Map
132
  alias :event_bar_dispose :dispose
133
  def dispose
134
    EventBar.hide
135
    event_bar_dispose
136
  end
137
  alias :event_bar_update :update
138
  def update
139
    event_bar_update
140
    EventBar.update
141
  end
142
end
143
#==============================================================================
144
# • Interpretador;
145
#==============================================================================
146
class Game_Interpreter
147
  #----------------------------------------------------------------------------
148
  # • Barra no evento.
149
  #----------------------------------------------------------------------------
150
  def ebar(*args)
151
    EventBar.do(*args)
152
  end
153
end
154
__END__
155
#--------------------------------------------------------------------------
156
 # ● Setup Event Text
157
 #--------------------------------------------------------------------------                       
158
  def setup_event_bar
159
    return if @list == nil
160
    for command in @list
161
    if command.code == 108
162
        if command.parameters[0].match(/ebar: id(\d+) h(\d+) m(\d+) vm(\w+) p(\w+) s(\w+) #(\w+)_(\w+)/im)
163
          msgbox "OK"
164
          EventBar.do($1.to_i, $2.to_i, $3.to_i, $4 == "@" ? nil : 
165
            $4.nil?, $5.to_s.split("_")[0].to_i, $5.to_s.split("_")[1].to_i,
166
              $6.to_s.split("_")[0].to_i, $6.to_s.split("_")[1].to_i, $7, $8)
167
        end  
168
      end
169
    end 
170
  end