DaxSoft

Menu Horror Sample Corrigido 2

Mar 14th, 2014
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #==============================================================================
  2. # • Menu Horror System
  3. #==============================================================================
  4. # Autor: Dax
  5. # Versão: 1.0
  6. # Site: www.dax-soft.weebly.com
  7. # Requerimento: N/A
  8. #==============================================================================
  9. # • Descrição:
  10. #------------------------------------------------------------------------------
  11. # Um menu bem simples onde somente aparece duas opções, uma para mostrar
  12. # os itens em geral é a outra para mostrar os itens chaves. Ele também mostra
  13. # uma imagem num item espécifico.
  14. # ** Configurando a imagem para mostrar **
  15. # Para isso, basta você ir no campo de notas do Item(Note). E lá, digitar
  16. # picture: Nome da Imagem
  17. # A imagem deve estar na pasta System. Importante saber que ela será redimensi_
  18. # onada para 48x48
  19. #==============================================================================
  20. #==============================================================================
  21. # • Reconfiguração da Fonte do jogo.
  22. #==============================================================================
  23. Font.default_name = "Trebuchet MS" # Nome padrão da fonte do jogo.
  24. Font.default_size = 20 # Tamanho padrão da fonte do jogo.
  25. Font.default_bold = false # true - Para usar negrito | false - para não usar.
  26. Font.default_italic = false # true - Para usar italico | false - para não usar.
  27. Font.default_shadow = true # true - Para usar sombra na fonte | false - para não usar.
  28. Font.default_outline = true # true - Para usar borda da fonte | false - para não usar.
  29. Font.default_out_color = Color.new(0, 0, 0, 200) # Cor da fonte padrão da borda da fonte.
  30. Font.default_color = Color.new(255, 255, 255) # Cor da fonte padrão.
  31. #==============================================================================
  32. # • Window_Base
  33. #==============================================================================
  34. class Window_Base < Window
  35. #--------------------------------------------------------------------------
  36. # * Desenho de ícones
  37. # icon_index : índice do ícone
  38. # x : coordenada X
  39. # y : coordenada Y
  40. # enabled : habilitar flag, translucido quando false
  41. #--------------------------------------------------------------------------
  42. def drawItemPicture(filename, x=nil, y=nil)
  43. bitmap = Cache.system(filename || "")
  44. rect = Rect.new(x||40, y||0, 48, 48)
  45. contents.stretch_blt(rect, bitmap, bitmap.rect)
  46. end
  47. end
  48. #==============================================================================
  49. # • Window_Help
  50. #==============================================================================
  51. class Window_Help < Window_Base
  52. #--------------------------------------------------------------------------
  53. #. * Inicialização do objeto
  54. # line_number : número de linhas
  55. #--------------------------------------------------------------------------
  56. def initialize(x, y, w, line_number = 2)
  57. super(x, y, w, fitting_height(line_number))
  58. end
  59. end
  60. #==============================================================================
  61. # • Scene_MenuBase
  62. #==============================================================================
  63. class Scene_MenuBase < Scene_Base
  64. #--------------------------------------------------------------------------
  65. # * Criação da janela de ajuda.
  66. #--------------------------------------------------------------------------
  67. def create_help_window
  68. @help_window = Window_Help.new(160, 0, Graphics.width-160)
  69. @help_window.viewport = @viewport
  70. end
  71. end
  72. #==============================================================================
  73. # • Scene_ItemBase
  74. #==============================================================================
  75. class Scene_ItemBase < Scene_MenuBase
  76. #--------------------------------------------------------------------------
  77. # * Aquisição das informações do item selecionado
  78. #--------------------------------------------------------------------------
  79. def item
  80. @windowItemList.item
  81. end
  82. #--------------------------------------------------------------------------
  83. # * Definição de cursor na coluna da esquerda
  84. #--------------------------------------------------------------------------
  85. def cursor_left?
  86. @windowItemList.index % 2 == 0
  87. end
  88. #--------------------------------------------------------------------------
  89. # * Ativação da janela do item
  90. #--------------------------------------------------------------------------
  91. def activate_item_window
  92. @windowItemList.refresh
  93. @windowItemList.activate
  94. end
  95. end
  96. #==============================================================================
  97. # • Scene_Menu
  98. #==============================================================================
  99. Object.send(:remove_const, :Scene_Menu)
  100. class Scene_Menu < Scene_ItemBase
  101. #----------------------------------------------------------------------------
  102. # • Inicialização dos objetos.
  103. #----------------------------------------------------------------------------
  104. def start
  105. super
  106. create_help_window
  107. @background_sprite = Sprite.new
  108. @background_sprite.bitmap = SceneManager.background_bitmap
  109. @background_sprite.color.set(16, 16, 16, 128)
  110. @windowItemDraw = Window_Base.new(0, 72, 160, 96)
  111. @windowItemCategory = Window_ItemCategory.new
  112. @windowItemCategory.help_window = @help_window
  113. @windowItemCategory.viewport = @viewport
  114. @windowItemCategory.set_handler(:ok, method(:on_category_ok))
  115. @windowItemList = Window_ItemList.new(160, 72, Graphics.width-160, 96)
  116. @windowItemList.viewport = @viewport
  117. @windowItemList.help_window = @help_window
  118. @windowItemList.set_handler(:ok, method(:on_item_ok))
  119. @windowItemList.set_handler(:cancel, method(:on_item_cancel))
  120. @windowItemCategory.item_window = @windowItemList
  121. end
  122. #----------------------------------------------------------------------------
  123. # • Renovação dos objetos.
  124. #----------------------------------------------------------------------------
  125. def terminate
  126. super
  127. @background_sprite.dispose
  128. end
  129. #----------------------------------------------------------------------------
  130. # • Atualização dos objetos.
  131. #----------------------------------------------------------------------------
  132. def update
  133. super
  134. return_scene if Input.trigger?(:B)
  135. @windowItemDraw.contents.clear
  136. if @windowItemList.active and @windowItemList.data.size > 0
  137. if @windowItemList.data[@windowItemList.index].note.match(/picture: ([^>]*)/m)
  138. @windowItemDraw.drawItemPicture($1.to_s)
  139. @windowItemDraw.draw_text(-12, 16, @windowItemDraw.width, @windowItemDraw.height,
  140. @windowItemList.data[@windowItemList.index].name.to_s, 1)
  141. end
  142. end
  143. end
  144. #--------------------------------------------------------------------------
  145. # * Categoria [Confirmação]
  146. #--------------------------------------------------------------------------
  147. def on_category_ok
  148. @windowItemList.activate
  149. @windowItemList.select_last
  150. end
  151. #--------------------------------------------------------------------------
  152. # * Item [Confirmação]
  153. #--------------------------------------------------------------------------
  154. def on_item_ok
  155. $game_party.last_item.object = item
  156. determine_item
  157. end
  158. #--------------------------------------------------------------------------
  159. # * Item [Cancelamento]
  160. #--------------------------------------------------------------------------
  161. def on_item_cancel
  162. @windowItemList.unselect
  163. @windowItemCategory.activate
  164. end
  165. #--------------------------------------------------------------------------
  166. # * Execução de SE para o item
  167. #--------------------------------------------------------------------------
  168. def play_se_for_item
  169. Sound.play_use_item
  170. end
  171. #--------------------------------------------------------------------------
  172. # * Usando um item
  173. #--------------------------------------------------------------------------
  174. def use_item
  175. super
  176. @windowItemList.redraw_current_item
  177. end
  178. end
  179. #==============================================================================
  180. # • Window_ItemCategory
  181. #==============================================================================
  182. Object.send(:remove_const, :Window_ItemCategory)
  183. class Window_ItemCategory < Window_Command
  184. #--------------------------------------------------------------------------
  185. # * Variáveis públicas
  186. #--------------------------------------------------------------------------
  187. attr_reader :item_window
  188. #--------------------------------------------------------------------------
  189. # * Inicialização do objeto
  190. #--------------------------------------------------------------------------
  191. def initialize
  192. super(0, 0)
  193. end
  194. #--------------------------------------------------------------------------
  195. # * Aquisição da largura da janela
  196. #--------------------------------------------------------------------------
  197. def window_width
  198. 160
  199. end
  200. #--------------------------------------------------------------------------
  201. # * Aquisição do número de colunas
  202. #--------------------------------------------------------------------------
  203. def col_max
  204. return 1
  205. end
  206. #--------------------------------------------------------------------------
  207. # * Atualização da tela
  208. #--------------------------------------------------------------------------
  209. def update
  210. super
  211. @item_window.category = current_symbol if @item_window
  212. end
  213. #--------------------------------------------------------------------------
  214. # * Criação da lista de comandos
  215. #--------------------------------------------------------------------------
  216. def make_command_list
  217. add_command(Vocab::item, :item)
  218. add_command(Vocab::key_item, :key_item)
  219. end
  220. #--------------------------------------------------------------------------
  221. # * Definição da janela de itens
  222. # item_window : janela de itens
  223. #--------------------------------------------------------------------------
  224. def item_window=(item_window)
  225. @item_window = item_window
  226. update
  227. end
  228. end
  229. #==============================================================================
  230. # ** Window_ItemList
  231. #------------------------------------------------------------------------------
  232. # Esta janela exibe a lista de itens possuidos na tela de itens.
  233. #==============================================================================
  234. class Window_ItemList < Window_Selectable
  235. attr_reader :data
  236. #--------------------------------------------------------------------------
  237. # * Aquisição do número de colunas
  238. #--------------------------------------------------------------------------
  239. def col_max
  240. return 2
  241. end
  242. end
Advertisement
Add Comment
Please, Sign In to add comment