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 |