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 |