View difference between Paste ID: DFDZGudn and GydjH2Xn
SHOW: | | - or go back to the newest paste.
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.default
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-
    Background.default_dispose
125+
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