Advertisement
DaxSoft

Event Bar 3.0

Sep 12th, 2014
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. #==============================================================================
  40. Dax.register(:event_bar, "Dax", 3.0, "12/09/14")
  41. #==============================================================================
  42. # • Módulo de configuração.
  43. #==============================================================================
  44. module EventBar
  45. extend self
  46. #----------------------------------------------------------------------------
  47. # • Configuração.
  48. #----------------------------------------------------------------------------
  49. Z = 199 # ► Propriedade no mapa.
  50. COLOR_DEFAULT_BAR2 = "920120".color # ► Cor padrão da barra 2.
  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. @data = []
  56. #----------------------------------------------------------------------------
  57. # • Criar uma barra.
  58. #----------------------------------------------------------------------------
  59. def do(*args)
  60. return unless @data[rand(9999)].nil?
  61. @data[rand(9999)] = Sprite_Event_Bar.new(*args)
  62. end
  63. #----------------------------------------------------------------------------
  64. # • Esconder.
  65. #----------------------------------------------------------------------------
  66. def hide
  67. @data.each { |each| each.opacity = 0 unless each.nil? }
  68. end
  69. #----------------------------------------------------------------------------
  70. # • Atualizar.
  71. #----------------------------------------------------------------------------
  72. def update
  73. return if @data.nil?
  74. @data.each_with_index { |bar, index|
  75. unless bar.nil?
  76. bar.update
  77. bar.opacity = 255 if bar.opacity == 0
  78. unless bar.visible
  79. bar.dispose
  80. @data.delete_at(index)
  81. end
  82. end
  83. }
  84. end
  85. end
  86. #==============================================================================
  87. # • Sprite_Event_Bar
  88. #==============================================================================
  89. class Sprite_Event_Bar < Sprite
  90. include EventBar
  91. #----------------------------------------------------------------------------
  92. # • Inicialização dos objetos.
  93. #----------------------------------------------------------------------------
  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. @color2, @color = color2 || COLOR_DEFAULT_BAR2, color || COLOR_DEFAULT_BAR
  103. end
  104. #----------------------------------------------------------------------------
  105. # • Renovação dos objetos.
  106. #----------------------------------------------------------------------------
  107. def dispose
  108. self.bitmap.dispose
  109. super
  110. end
  111. #----------------------------------------------------------------------------
  112. # • Atualização dos objetos.
  113. #----------------------------------------------------------------------------
  114. def update
  115. return if self.bitmap.nil?
  116. self.x = $game_map.events[@eID].screen_x - (self.width / 2) + @x
  117. self.y = $game_map.events[@eID].screen_y - (33+self.height) + @y
  118. self.bitmap.clear
  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. EventBar.hide
  133. event_bar_dispose
  134. end
  135. alias :event_bar_update :update
  136. def update
  137. event_bar_update
  138. EventBar.update
  139. end
  140. end
  141. #==============================================================================
  142. # • Interpretador;
  143. #==============================================================================
  144. class Game_Interpreter
  145. #----------------------------------------------------------------------------
  146. # • Barra no evento.
  147. #----------------------------------------------------------------------------
  148. def ebar(*args)
  149. EventBar.do(*args)
  150. end
  151. end
  152. __END__
  153. #--------------------------------------------------------------------------
  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. $6.to_s.split("_")[0].to_i, $6.to_s.split("_")[1].to_i, $7, $8)
  165. end
  166. end
  167. end
  168. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement