DaxSoft

Window Menu Horror Sample 1.0

Mar 12th, 2014
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.65 KB | None | 0 0
  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. Dax.remove(: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.default
  108. @windowItemDraw = Window_Base.new(0, 72, 160, 96)
  109. @windowItemCategory = Window_ItemCategory.new
  110. @windowItemCategory.help_window = @help_window
  111. @windowItemCategory.viewport = @viewport
  112. @windowItemCategory.set_handler(:ok, method(:on_category_ok))
  113. @windowItemList = Window_ItemList.new(160, 72, Graphics.width-160, 96)
  114. @windowItemList.viewport = @viewport
  115. @windowItemList.help_window = @help_window
  116. @windowItemList.set_handler(:ok, method(:on_item_ok))
  117. @windowItemList.set_handler(:cancel, method(:on_item_cancel))
  118. @windowItemCategory.item_window = @windowItemList
  119. end
  120. #----------------------------------------------------------------------------
  121. # • Renovação dos objetos.
  122. #----------------------------------------------------------------------------
  123. def terminate
  124. super
  125. Background.default_dispose
  126. end
  127. #----------------------------------------------------------------------------
  128. # • Atualização dos objetos.
  129. #----------------------------------------------------------------------------
  130. def update
  131. super
  132. return_scene if Input.trigger?(:B)
  133. @windowItemDraw.contents.clear
  134. if @windowItemList.active and @windowItemList.data.size > 0
  135. if @windowItemList.data[@windowItemList.index].note.match(/picture: ([^>]*)/m)
  136. @windowItemDraw.drawItemPicture($1.to_s)
  137. @windowItemDraw.draw_text(-12, 16, @windowItemDraw.width, @windowItemDraw.height,
  138. @windowItemList.data[@windowItemList.index].name.to_s, 1)
  139. end
  140. end
  141. end
  142. #--------------------------------------------------------------------------
  143. # * Categoria [Confirmação]
  144. #--------------------------------------------------------------------------
  145. def on_category_ok
  146. @windowItemList.activate
  147. @windowItemList.select_last
  148. end
  149. #--------------------------------------------------------------------------
  150. # * Item [Confirmação]
  151. #--------------------------------------------------------------------------
  152. def on_item_ok
  153. $game_party.last_item.object = item
  154. determine_item
  155. end
  156. #--------------------------------------------------------------------------
  157. # * Item [Cancelamento]
  158. #--------------------------------------------------------------------------
  159. def on_item_cancel
  160. @windowItemList.unselect
  161. @windowItemCategory.activate
  162. end
  163. #--------------------------------------------------------------------------
  164. # * Execução de SE para o item
  165. #--------------------------------------------------------------------------
  166. def play_se_for_item
  167. Sound.play_use_item
  168. end
  169. #--------------------------------------------------------------------------
  170. # * Usando um item
  171. #--------------------------------------------------------------------------
  172. def use_item
  173. super
  174. @windowItemList.redraw_current_item
  175. end
  176. end
  177. #==============================================================================
  178. # • Window_ItemCategory
  179. #==============================================================================
  180. Dax.remove(:Window_ItemCategory)
  181. class Window_ItemCategory < Window_Command
  182. #--------------------------------------------------------------------------
  183. # * Variáveis públicas
  184. #--------------------------------------------------------------------------
  185. attr_reader :item_window
  186. #--------------------------------------------------------------------------
  187. # * Inicialização do objeto
  188. #--------------------------------------------------------------------------
  189. def initialize
  190. super(0, 0)
  191. end
  192. #--------------------------------------------------------------------------
  193. # * Aquisição da largura da janela
  194. #--------------------------------------------------------------------------
  195. def window_width
  196. 160
  197. end
  198. #--------------------------------------------------------------------------
  199. # * Aquisição do número de colunas
  200. #--------------------------------------------------------------------------
  201. def col_max
  202. return 1
  203. end
  204. #--------------------------------------------------------------------------
  205. # * Atualização da tela
  206. #--------------------------------------------------------------------------
  207. def update
  208. super
  209. @item_window.category = current_symbol if @item_window
  210. end
  211. #--------------------------------------------------------------------------
  212. # * Criação da lista de comandos
  213. #--------------------------------------------------------------------------
  214. def make_command_list
  215. add_command(Vocab::item, :item)
  216. add_command(Vocab::key_item, :key_item)
  217. end
  218. #--------------------------------------------------------------------------
  219. # * Definição da janela de itens
  220. # item_window : janela de itens
  221. #--------------------------------------------------------------------------
  222. def item_window=(item_window)
  223. @item_window = item_window
  224. update
  225. end
  226. end
  227. #==============================================================================
  228. # ** Window_ItemList
  229. #------------------------------------------------------------------------------
  230. # Esta janela exibe a lista de itens possuidos na tela de itens.
  231. #==============================================================================
  232. class Window_ItemList < Window_Selectable
  233. attr_reader :data
  234. #--------------------------------------------------------------------------
  235. # * Aquisição do número de colunas
  236. #--------------------------------------------------------------------------
  237. def col_max
  238. return 2
  239. end
  240. end
Advertisement
Add Comment
Please, Sign In to add comment