DaxSoft

Hotkey Item Event 1.1

Feb 26th, 2014
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.30 KB | None | 0 0
  1. #==============================================================================
  2. # • Hotkeys Itens Event
  3. #==============================================================================
  4. # Autor: Dax
  5. # Versão: 1.0
  6. # Site: www.dax-soft.weebly.com
  7. # Requerimento: Dax Core
  8. #==============================================================================
  9. # • Descrição: USO DE IMAGENS OPCIONAL.
  10. #------------------------------------------------------------------------------
  11. # Esse script irá desenhar no mapa, alguns blocos onde irá mostrar o item,
  12. # e a chave que é necessária para usar. O script somente irá desenhar, sendo
  13. # útil apenas para os eventers.. Usarem isso.
  14. #==============================================================================
  15. Dax.register(:hotkey_itens, "Dax", 1.0, "27/01/14")
  16. #==============================================================================
  17. # • Módulo de configuração do script.
  18. #==============================================================================
  19. class << Rpg::Hud
  20. #----------------------------------------------------------------------------
  21. # • Configure o script aqui; [Retorna a uma HASH]
  22. #----------------------------------------------------------------------------
  23. def his # hotkeys itens
  24. return {
  25. # Caso for usar alguma imagem como bloco, escreva entre as áspas abaixo,
  26. # o nome dela. Ela deve estar na pasta System. Caso não, deixe as áspas
  27. # vázias.
  28. picture: "",
  29. # Ponha abaixo os id's dos itens que irá ser desenhado na tela.
  30. # Ao definir aqui, defina as 'keys' também. Caso não exista o item,
  31. # não irá ser desenhado o ícone mais somente o bloco.
  32. itens: [1, 2],
  33. # Escreva abaixo as teclas que ao ser apertada irá acionar o item de id
  34. # correspondente ao que você definiou acima.
  35. keys: ["Q", "L"],
  36. # Largura do bloco.
  37. width: 32,
  38. # Altura do bloco.
  39. height: 32,
  40. # Cor primária do bloco.
  41. color_1: ColorBasic.hex("000000"),
  42. # Cor secundária do bloco.
  43. color_2: ColorBasic.hex("454545").opacity,
  44. # Qual design você irá usar? Design Fill ou Window...
  45. # Para usar o 'Fill' escreva abaixo true, Para usar 'Window' escreve abaixo false.
  46. mode: true,
  47. # Opacidade do bloco.
  48. opacity: 255,
  49. # Defina aqui abaixo a posição dos blocos. As posição em X e Y.
  50. # Defina também a propriedade no mapa.
  51. position: [4, 4, 200],
  52. # Defina aqui se os blocos será na posição vertical ou horizontal.
  53. draw: true, # true - horizontal, false - vertical.
  54. # Defina aqui os espaço entre os blocos.
  55. space: 4,
  56. # Defina logo abaixo a fonte usada.
  57. name: "Bell MT", # Nome da fonte.
  58. size: 16, # Tamanho da fonte.
  59. bold: true, # Negrito na fonte.
  60. italic: false, # Itálico na fonte.
  61. shadow: true, # Sombra na fonte.
  62. outline: false, # Cor da borda.
  63. color: ColorBasic.hex("ffffff"), # Cor da fonte.
  64. out_color: ColorBasic.hex("000000"), # Cor da borda da fonte.
  65. # Texto.
  66. text: "%s",
  67. }
  68. end
  69. end
  70. #==============================================================================
  71. # • Hotkey_Itens
  72. #==============================================================================
  73. class Rpg::Hotkey_Itens_Event
  74. #----------------------------------------------------------------------------
  75. # • Inicialização dos objetos.
  76. #----------------------------------------------------------------------------
  77. def initialize
  78. @blocks = []
  79. @text = []
  80. Rpg::Hud.his[:itens].each_with_index { |value, index|
  81. if Rpg::Hud.his[:picture] == ""
  82. if Rpg::Hud.his[:mode]
  83. @blocks[index] = Sprite.new([Rpg::Hud.his[:width], Rpg::Hud.his[:height]])
  84. @blocks[index].bitmap.fill_rect(@blocks[index].rect, Rpg::Hud.his[:color_1])
  85. @blocks[index].bitmap.fill_rect(1, 1,
  86. @blocks[index].width-2, @blocks[index].height-2, Rpg::Hud.his[:color_2])
  87. @blocks[index].bitmap.draw_icon($data_items[value].nil? ? 0 : $data_items[value].icon_index,
  88. (@blocks[index].width - 24) / 2, (@blocks[index].height - 24) / 2 )
  89. else
  90. @blocks[index] = Window_Base.new(0, 0, 48, 48)
  91. @blocks[index].draw_icon($data_items[value].nil? ? 0 : $data_items[value].icon_index,
  92. 0, 0)
  93. end
  94. else
  95. @blocks[index] = Sprite.new("S: #{Rpg::Hud.his[:picture]}")
  96. @blocks[index].bitmap.draw_icon($data_items[value].nil? ? 0 : $data_items[value].icon_index,
  97. (@blocks[index].width - 24) / 2, (@blocks[index].height - 24) / 2 )
  98. end
  99. @blocks[index].x, @blocks[index].y, @blocks[index].z = *Rpg::Hud.his[:position]
  100. if Rpg::Hud.his[:draw]
  101. @blocks[index].x += ((@blocks[index].width + Rpg::Hud.his[:space]) * index)
  102. else
  103. @blocks[index].y += ((@blocks[index].height + Rpg::Hud.his[:space]) * index)
  104. end
  105. @blocks[index].opacity = Rpg::Hud.his[:opacity]
  106. @text[index] = Sprite_Text.new(@blocks[index].x + 7, @blocks[index].y + Rpg::Hud.his[:size] + 5,
  107. @blocks[index].width, Rpg::Hud.his[:size] + 2, "", 1)
  108. @text[index].z = @blocks[index].z + 1
  109. }
  110. end
  111. #----------------------------------------------------------------------------
  112. # • Renovação dos objetos.
  113. #----------------------------------------------------------------------------
  114. def dispose
  115. @blocks.each(&:dispose)
  116. @text.each(&:dispose)
  117. end
  118. #--------------------------------------------------------------------------
  119. # • Aquisição do usuário do ítem
  120. #--------------------------------------------------------------------------
  121. def user
  122. $game_party.movable_members.max_by {|member| member.pha }
  123. end
  124. #----------------------------------------------------------------------------
  125. # • Atualização dos objetos.
  126. #----------------------------------------------------------------------------
  127. def update
  128. @text.each(&:update)
  129. @text.each_with_index { |text, index|
  130. ["name", "size", "bold", "italic", "shadow", "outline", "color", "out_color"].each { |v|
  131. eval("text.bitmap.font.#{v} = Rpg::Hud.his[:#{v}]")
  132. }
  133. text.bitmap.draw_text_rect(sprintf(Rpg::Hud.his[:text],Rpg::Hud.his[:keys][index]), 1)}
  134. end
  135. end
  136. #==============================================================================
  137. # • Desenhar no mapa.
  138. #==============================================================================
  139. class Scene_Map < Scene_Base
  140. #----------------------------------------------------------------------------
  141. # • Lista de alias.
  142. #----------------------------------------------------------------------------
  143. alias :draw_hotkey_item_main :main
  144. alias :draw_hotkey_item_update :update
  145. #----------------------------------------------------------------------------
  146. # • Processo principal.
  147. #----------------------------------------------------------------------------
  148. def main
  149. @hotkey_item = Rpg::Hotkey_Itens_Event.new
  150. draw_hotkey_item_main
  151. @hotkey_item.dispose
  152. end
  153. #----------------------------------------------------------------------------
  154. # • Atualizaçaõ do processo.
  155. #----------------------------------------------------------------------------
  156. def update
  157. draw_hotkey_item_update
  158. @hotkey_item.update
  159. end
  160. end
Advertisement
Add Comment
Please, Sign In to add comment