Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 AMSI (Akime MP3 System Ivy) em 12/8/2012, 02:42

FrozenGraveyard

avatar
Membro Honorário I
Membro Honorário I
AGRADECIMENTOS INICIAIS

IVY NAMISE
Uma excelente scripter que me ajudou com os códigos

AKIMENERUS

Criador do Script


ATOA

Scripter de alto nivel que configurou varios upgrades.



INTRODUÇÃO


Esse é um script que permite ao jogador escutar qualquer musica enquanto anda no mapa.Nesse script não é necessário digitar o nome e formato de uma musica no painel para que ela seja reconhecida pelo sistema e a opção de reprodução dela apareça na janela de opções.

Essa é a versão Ivy do Script, exclusiva para a Engine RPG Maker VX.O nome veio a cabeça pois a imagem padrão desse script lembra muito uma amiga membro minha do Santuario RPG Maker.

CARACTERISTICAS


    Não existe limite máximo de musicas nesse script.Desde que elas estejam na pasta MP3 do seu projeto, que deve ser localizada aonde fica tambem o game.ini

    Aconselho a não colocar feito um trambolho uma pasta cavalo de musicas.Sabe-se que 10 musicas já pesam mais ou menos 25 mb em seu projeto.

    A pasta MP3 é independente da pasta Audio do seu projeto.Isso significa que mesmo o projeto estando encriptado, o script funcionará corretamente desde que seja seguido exatamente o que foi dito acima.




SCREENSHOTS





[Você precisa estar registrado e conectado para ver esta imagem.]

SCRIPT PRINCIPAL

Para evitar problemas de imcompatibilidade com qualquer outro tipo
de menu.Eu não criei qualquer configuração para criar uma opção própria no main menu.
.


Código:
#==================================================================
# AKIME MP3 SYSTEM - IVY
#
#==================================================================
#
# Objetivo:
#
# Esse script simula um MP3 no menu, sem a necessidade de informar
# o nome do formato e musicas que irão ser tocadas.Além do mais
# as musicas podem ser acrescentadas na pasta MP3 do seu projeto
# mesmo a demo estando encriptada.
#
# Notas do autor:
#
# Essa é a versão "IVY" do Script.Exclusiva para RPG Maker VX.O nome
# me veio a cabeça pois a imagem padrão dessa demo me lembra muito
# quem me ajudou com o script
#
# AGRADECIMENTOS:
#
# Akimenerus
# Criador do script
#
# Ivy Namise
# Me ajudou em peso com o script
#
# Atoa
# Ajuda com códigos e UPDATES no script
#
#====================================================================
# Instruções
#
#
# 1)Coloque todas as suas musicas numa pasta chamada MP3 no seu projeto,
# junto da onde se localiza o game.ini
#
# 2)As musicas só podem estar em formato MP3, qualquer outro formato de
# audio não será reconhecido pelo player.
#
# 3)Tenha uma imagem na pasta pictures com o nome de "Person".
#-------------------------------------------------------------------
#
#
#===================================================================

class Game_Temp
  attr_accessor :music_player 
 
  alias mp3_player_initialize initialize
  def initialize
    mp3_player_initialize
    @music_player = '------------'
  end
 
end


class Scene_MP3
 

  def main
    #==================================================================
    # JANELA DE MUSICAS
    #==================================================================
    @list = []
    @list_names = []
    for ext in ['.mp3','.mid','.ogg','.wav','.wma','.MID']
      @list << Dir.glob('MP3/*' + ext)
      @list_names << Dir.glob('MP3/*' + ext).to_s.split("MP3/").to_s.split(ext)
    end
    @list.flatten!
    @list_names.flatten!
    @command_window = Window_Command.new(270, @list_names << "Parar")
    @command_window.index = 0
    @command_window.opacity = 350
    @command_window.x = 0
    @command_window.y = 65
    @command_window.width = 270
    @command_window.height = 285
    #======================================================================
    # IMAGEM
    #======================================================================
    @background = Sprite.new
    @background.bitmap = Cache.picture("Person")
    @background.x = 130
    @background.y = 0
    @background.z = 50
    #======================================================================
    # Janela
    #======================================================================
    @info_window = Info_Window.new
    @logo = Window_Base.new(0,0,545,64)
    @logo.contents = Bitmap.new(380, 32)
    @logo.contents.font.color = Color.new(255, 180, 255, 255)
    if @list.size > 0
      @logo.contents.draw_text(140, 0, 450, 32, "Akime MP3 System Ivy")
    else
      @logo.contents.draw_text(140, 0, 450, 32, "Sem musicas no diretório")
    end
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @command_window.dispose
    @background.dispose
    @logo.dispose
    @info_window.dispose
  end
 
  def update
    @command_window.update
    @background.update
    update_command
  end
 
  def update_command
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Menu.new
    end
    if Input.trigger?(Input::C)
      Sound.play_decision
      if @command_window.index == @list.size
        RPG::BGM.stop
        $game_temp.music_player = 'Nada em reprodução'
        @info_window.refresh
      else
        Audio.bgm_play(@list[@command_window.index])
        $game_temp.music_player = @list_names[@command_window.index]
        @info_window.refresh
      end
    end
  end
end

#======================================================================
# TEXTO
#=====================================================================

class Info_Window < Window_Base
 
  def initialize
    super(0,350,270,69)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end   
 
  def refresh
    self.contents.clear
    self.contents.draw_text(4, 0, self.width - 40, 32, 'Ouvindo >>> ' + $game_temp.music_player, 0)
  end
end
 

SCENE_MENU


Na pressa eu acabei esquecendo de colocar o script do Scene_Menu, troque o conteudo do Scene_Menu no painel de RGSS2 por esse aqui

Código:
#==============================================================================
# Scene_Menu
#------------------------------------------------------------------------------
# Classe de operações na tela do menu.
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #    menu_index : posição inicial do cursor
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
  end
  #--------------------------------------------------------------------------
  # Fim do processo
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # Criação da janela de comandos
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    s7 = "MP3"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6,s7])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # Se não houver membros na equipe
      @command_window.draw_item(0, false)    # Desabilita "Items"
      @command_window.draw_item(1, false)    # Desabilita "Habilidades"
      @command_window.draw_item(2, false)    # Desabilita "Equipamentos"
      @command_window.draw_item(3, false)    # Desabilita "Status"
    end
    if $game_system.save_disabled            # Se salvar for proibido
      @command_window.draw_item(4, false)    # Desabilita "Salvar"
    end
  end
  #--------------------------------------------------------------------------
  # Atualização da escolha de comando
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Habilidades, equipamento, status
        start_actor_selection
      when 4      # Salvar
        $scene = Scene_File.new(true, false, false)
      when 5      # Fim de jogo
        $scene = Scene_End.new
        when 6
          $scene = Scene_MP3.new
      end
    end
  end
  #--------------------------------------------------------------------------
  # Início da seleção de herói
  #--------------------------------------------------------------------------
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # Fim da seleção de herói
  #--------------------------------------------------------------------------
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  #--------------------------------------------------------------------------
  # Atualização da seleção de herói
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1  # Habilidades
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # Equipamento
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # Status
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end

INSTRUÇÕES

A Demo deve conter:


Uma pasta MP3 com as musicas:


BlueBird.MP3 -
Gate lab Stage.mp3
charge.mid



Uma imagem: Person.JPEG





Substitua o Scene_Menu acima pelo Scene_Menu do painel de RGSS2

Cole o Script Principal Acima do Main

Direcione a pasta MP3 ou crie uma aonde fica o Game.ini do seu projeto

Cole a imagem Person na pasta graphics do seu projeto.

[b]DEMO



[Você precisa estar registrado e conectado para ver este link.]

UPDATES




Versão 1.0

Não é necessário informar ao script nome e extensão da musica
As musicas podem ser acrescentadas mesmo estando encriptado o projeto
Reproduz todas as extensões suportadas pelo maker
Mostra a musica que está tocando no presente momento

FAQS


Perg:Coloquei musicas e não aparecereçam na lista de reprodução
Resp:O Script suporta apenas as extensões suportadas pelo maker.Não adianta colocar qualquer outro formato que ultrapasse as limitações de audio do RMVX[/quote]

Perg:Por que a demo está encriptada?
Resp:Para provar que realmente um projeto estando encriptado ou não, o script não buga o game tendo que a pasta MP3 deva estar no local certo.

Ver perfil do usuário

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

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum