View difference between Paste ID: GydjH2Xn and ardcvPB7
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-
Dax.remove(:Scene_Menu)
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
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)
180+
Object.send(:remove_const, :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