Advertisement
DaxSoft

Event Bar 2.1

Jan 17th, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.41 KB | None | 0 0
  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
  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)
  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.
  45. color2: ColorBasic.hex("920120"), # Cor 2
  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
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement