zecomeia
RPG Maker
Postagens : 51 Data de inscrição : 20/08/2009
| Assunto: Mostrar Item igual ao jogo Zelda Dom Ago 23, 2009 1:46 pm | |
| Mostrar Item Zelda por zecomeia IntroduçãoMostra um item que foi pego igual/parecido ao jogo Zelda de SNES. Características
- Mostra a imagem do icone do item que foi pego
- Muda o gráfico do personagem ao pegar o item
- Toca uma SE ao pegar o item
- Pode ser ligado/desligado, até porque aparecer a animação ao pegar qualquer item pode ficar chato dependendo da jogabilidade do seu jogo.
Screen ShotComo Usar
- Coloque o script acima de main
- Veja no script como configurar e configure
- Faça o charset do personagem ganhando item(siga o exemplo da demo) e nomeio conforme configurado ao colocar na pasta de charsets.
- Coloque o arquivo de audio a ser tocado ao pegar o item, na pasta SE e nomeio como configurado no script
- Faça o teste e em caso de dúvida pergunte aqui ou contate sj-pereira@hotmail.com
Para ligar/desligar o efeito use "chamar script" em um evento e use os códigos abaixo: - Código:
-
# Para ligar: Config_ItemShowZelda_ZC::TURN_ON_OFF = true # Para desligar: Config_ItemShowZelda_ZC::TURN_ON_OFF = nil
DemoEm anexo. script - Código:
-
#============================================= # Mostrar Item Zelda #--------------------------------------------- # por zecomeia # 06/05/2009 #--------------------------------------------- #Descrição: Mostra o item que foi pego igual #ao jogo Zelda de SNES. #=============================================
#==================== # Configuração #====================
module Config_ItemShowZelda_ZC #Nome do arquivo do charset do personagem mostrando que ganhou o item. #O nome colocado abaixo tem que ser adicionado ao nome de arquivo #do charset original, e não substir sobre o original. #Ex: zelda.png -> zelda(show_item_zelda).png #OBS:Uma é p charset normal do personagem e a outra é o charset #mostrando que ganhou o item. GRAPHIC_ARQ_NAME = "(show_item_zelda)" #Nome do arquivo de SE que é tocado ao ganhar o item. SOUND_ARQ_NAME = "LTTP_ItemFanfare" #Ligar/Desligar(true/nil) o efeito de mostrar o item. TURN_ON_OFF = nil #true/nil #OBS:para liga/desligar a função durante o jogo faça um evento com: # Para ligar: #Config_ItemShowZelda_ZC::TURN_ON_OFF = true # Para desligar: #Config_ItemShowZelda_ZC::TURN_ON_OFF = nil end class Window_ItemShow < Window_Base #-------------------------------------------------------------------------- # Inicialização dos Objetos # # ator : Objeto #-------------------------------------------------------------------------- def initialize(x, y, item) super(x - 12, y - 56, 64, 72) self.contents = Bitmap.new(width - 36, height - 36) self.contents.font.name = $fontface self.contents.font.size = $fontsize @item = item refresh end #-------------------------------------------------------------------------- # Atualizar #-------------------------------------------------------------------------- def refresh self.contents.clear draw_item_name(@item, 0, 0) end
end
class Game_Player < Game_Character #--Inclusão das configurações-- include Config_ItemShowZelda_ZC #------------------------------ def refresh_gain_object_zelda # Se o número de membros no Grupo de Heróis for 0 if $game_party.actors.size == 0 # Limpar o nome do arquivo e a tonalidade do Herói @character_name = "" @character_hue = 0 # Fim do método return end # Selecionar o Herói líder actor = $game_party.actors[0] # Selecionar o nome do arquivo e a tonalidade do Herói @character_name = actor.character_name + GRAPHIC_ARQ_NAME @character_hue = actor.character_hue # Inicializar a opacidade e a sinteticidade @opacity = 255 @blend_type = 0 end #-------------------------------------------------------------------------- # Atualização do Frame #-------------------------------------------------------------------------- def update # Memorizar, se estiver movendo ou não, nas variáveis locais last_moving = moving? # Se estiver movendo, um evento ocorrendo, uma rota pré-determinada, ou # se estiver exibindo uma mensagem # Mostrar tudo como se não estivessem ocorrendo unless moving? or $game_system.map_interpreter.running? or @move_route_forcing or $game_temp.message_window_showing # Mover o Jogador na direção que o direcional for pressionado if $wait_itemshow_zelda == 0 case Input.dir4 when 2 move_down when 4 move_left when 6 move_right when 8 move_up end end end # Memorizar as coordenadas nas variáveis locais last_real_x = @real_x last_real_y = @real_y super # Se o Herói for movido para baixo e tenha ficado abaixo do centro da tela if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y # Rolar o mapa para baixo $game_map.scroll_down(@real_y - last_real_y) end # Se o Herói for movido para a esquerda e tenha ficado a esquerda do centro # da tela if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X # Rolar o mapa para a esquerda $game_map.scroll_left(last_real_x - @real_x) end # Se o Herói for movido para a direita e tenha ficado a direita do centro da # tela if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X # Rolar o mapa para a direita $game_map.scroll_right(@real_x - last_real_x) end # Se o Herói for movido para cima e tenha ficado acima do centro da tela if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y # rolar o mapa para cima $game_map.scroll_up(last_real_y - @real_y) end # Se não estiver movendo unless moving? # Se o jogador estava se movendo if last_moving # Se a determinante de incialização for por toque ou mesma posição result = check_event_trigger_here([1,2]) # Se o Evento que foi iniciado não existir if result == false # Desconsiderar se o Modo de Depuração estiver ON e a tecla Ctrl # pressionada unless $DEBUG and Input.press?(Input::CTRL) # Diminuir 1 do contador de encontros if @encounter_count > 0 @encounter_count -= 1 end end end end # Se o botão C for pressionado if Input.trigger?(Input::C) # Determinantes de mesma posição e na frente do Evento check_event_trigger_here([0]) check_event_trigger_there([0,1,2]) end end end end
class Game_Party
#--Inclusão das configurações-- include Config_ItemShowZelda_ZC #------------------------------
#-------------------------------------------------------------------------- # Ganhou ou Perder Itens # # item_id : iD do Item # n : quantidade #-------------------------------------------------------------------------- def gain_item(item_id, n) if TURN_ON_OFF == true $wait_itemshow_zelda = 80 $game_player.turn_down $game_player.refresh_gain_object_zelda Audio.se_play("Audio/SE/" + SOUND_ARQ_NAME, 100, 100) $window_itemshow_zelda = Window_ItemShow.new($game_player.x * 32, $game_player.y * 32, $data_items[item_id]) $window_itemshow_zelda.opacity = 0 end # Atualizar a quantidade nesta divisão if item_id > 0 @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min end end #-------------------------------------------------------------------------- # Ganhar ou Perder Armas # # weapon_id : ID da Arma # n : quantidade #-------------------------------------------------------------------------- def gain_weapon(weapon_id, n) if TURN_ON_OFF == true $wait_itemshow_zelda = 80 $game_player.turn_down $game_player.refresh_gain_object_zelda Audio.se_play("Audio/SE/" + SOUND_ARQ_NAME, 100, 100) $window_itemshow_zelda = Window_ItemShow.new($game_player.x * 32, $game_player.y * 32, $data_weapons[weapon_id]) $window_itemshow_zelda.opacity = 0 end # Atualizar a quantidade nesta divisão if weapon_id > 0 @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min end end #-------------------------------------------------------------------------- # Ganhar ou Perder Armaduras # # armor_id : ID da Armadura # n : quantidade #-------------------------------------------------------------------------- def gain_armor(armor_id, n) if TURN_ON_OFF == true $wait_itemshow_zelda = 80 $game_player.turn_down $game_player.refresh_gain_object_zelda Audio.se_play("Audio/SE/" + SOUND_ARQ_NAME, 100, 100) $window_itemshow_zelda = Window_ItemShow.new($game_player.x * 32, $game_player.y * 32, $data_armors[armor_id]) $window_itemshow_zelda.opacity = 0 end # Atualizar a quantidade nesta divisão if armor_id > 0 @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min end end end
class Scene_Map alias new_main main def main $wait_itemshow_zelda = 0 $window_itemshow_zelda = Window_ItemShow.new($game_player.x * 32, $game_player.y * 32, $data_items[0]) $window_itemshow_zelda.opacity = 0 new_main $window_itemshow_zelda.dispose end alias new_update update def update if $wait_itemshow_zelda > 0 $game_player.turn_down $game_player.refresh_gain_object_zelda $window_itemshow_zelda.visible = true $wait_itemshow_zelda -= 1 else $window_itemshow_zelda.visible = false $game_player.refresh $wait_itemshow_zelda = 0 end new_update end
end
Créditos e Agradecimentos zecomeia
Última edição por zecomeia em Sex Nov 20, 2009 6:24 pm, editado 1 vez(es) |
|
Douglanilo
Mestre
Postagens : 959 Data de inscrição : 02/04/2009
| Assunto: Re: Mostrar Item igual ao jogo Zelda Dom Ago 23, 2009 3:11 pm | |
| WOW, zecomeia
Está lotando o fórum com tutoriais e scripts, e eu fico feliz com isso, muito bem...
O script em si é bem interessante, já que vemos muita gente lá afora que queira fazer um jogo estilo Zelda. Vamos ver no que dá.
Até o/ (+ Honra) |
|
zecomeia
RPG Maker
Postagens : 51 Data de inscrição : 20/08/2009
| Assunto: Re: Mostrar Item igual ao jogo Zelda Seg Ago 24, 2009 8:18 pm | |
| Opa, valeu doug, pode deixar que ainda vou trazer mais ^^ |
|
Conteúdo patrocinado
| Assunto: Re: Mostrar Item igual ao jogo Zelda | |
| |
|