PortalPortal  InícioInício  FAQFAQ  BuscarBuscar  Registrar-seRegistrar-se  Conectar-se  

Compartilhe|

Mostrar Item igual ao jogo Zelda

Ver o tópico anterior Ver o tópico seguinte Ir em baixo
AutorMensagem
zecomeia
avatar
RPG Maker
RPG Maker

Masculino Postagens : 51
Data de inscrição : 20/08/2009


Ver perfil do usuário http://colmeia-do-ze.blogspot.com/
MensagemAssunto: Mostrar Item igual ao jogo Zelda Dom Ago 23, 2009 1:46 pm

Mostrar Item Zelda
por zecomeia


Introdução

Mostra 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 Shot




Como Usar

  1. Coloque o script acima de main
  2. Veja no script como configurar e configure
  3. Faça o charset do personagem ganhando item(siga o exemplo da demo) e nomeio conforme configurado ao colocar na pasta de charsets.
  4. Coloque o arquivo de audio a ser tocado ao pegar o item, na pasta SE e nomeio como configurado no script
  5. 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

Demo

Em 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



scripts RGSS, Resources, Tutorials and Translations by zecomeia is licensed under a
Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.
Permissions beyond the scope of this license may be available at Santuário RPG Maker


Última edição por zecomeia em Sex Nov 20, 2009 6:24 pm, editado 1 vez(es)
Voltar ao Topo Ir em baixo
Douglanilo
avatar
Mestre
Mestre

Masculino Postagens : 959
Data de inscrição : 02/04/2009


Ver perfil do usuário http://www.twevergrand.com
MensagemAssunto: 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)

_________________________________________
Voltar ao Topo Ir em baixo
zecomeia
avatar
RPG Maker
RPG Maker

Masculino Postagens : 51
Data de inscrição : 20/08/2009


Ver perfil do usuário http://colmeia-do-ze.blogspot.com/
MensagemAssunto: Re: Mostrar Item igual ao jogo Zelda Seg Ago 24, 2009 8:18 pm

Opa, valeu doug, pode deixar que ainda vou trazer mais ^^
Voltar ao Topo Ir em baixo
Conteúdo patrocinado




MensagemAssunto: Re: Mostrar Item igual ao jogo Zelda

Voltar ao Topo Ir em baixo

Mostrar Item igual ao jogo Zelda

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
The World of EverGrand :: Programação em Linguagens :: Ruby Game Scripting System :: Scripts :: RPG Maker XP-