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 |