Life Rpg Maker
Registre-se em nossa comunidade e saiba Mais do mundo maker(:



 
InícioInício  chat  PortalPortal  CalendárioCalendário  FAQFAQ  BuscarBuscar  MembrosMembros  GruposGrupos  Registrar-seRegistrar-se  Conectar-seConectar-se  

Compartilhe
 

 Ring menu ace

Ir em baixo 
AutorMensagem
Samuka_Adm
Admin
Admin
Samuka_Adm

Medalhas :
Mensagens : 150
Pontos : 319
Reputação : 44
Data de inscrição : 15/06/2012

Ring menu ace Empty
MensagemAssunto: Ring menu ace   Ring menu ace Icon_minitimeSeg Set 24, 2012 1:16 am

Ei galera, tudo Ok? Trago aquipra vocês um script bem interessante para o VXAce que faz seu menu ficar em forma de círculo
Aproveitem ^^

Como Usar?

Cole o script acima do script Main.
Demais instruções no Cabeçalho do Script.


ScreenShot:
Ring menu ace Imagem2

Script:
Código:
#====================================================================
#Script: Ring Menu [ACE]
#By: Victor Gomez
#====================================================================

module Configuration
        #itens name, ["items","sair","equip" etc...]

        Item_name = [
        "Itens",
        "Habilidades",
        "Equipamento",
        "Status",
        "Salvar",
        "Sair"
        ]

        #number max of options
        Item_max = 6
        #icons of options ["item","skill"...]
        Item_icon = [1,2,3,4,5,6]
        #activate ? ["item","skill"...]
        Item_hab = [true,true,true,true,true,true]
  end


#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  Esta classe executa o processamento da tela de menu.
#==============================================================================

class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
        super
        @win_local = Window_Local.new(0,0)
        px = $game_player.screen_x - 16
        py = $game_player.screen_y - 28
        @ring_menu = Window_RingMenu_Comando.new(px,py)
        create_status_window
        @status_window.visible = false
        create_gold_window
  end

  def update
        super
        @ring_menu.update
        @win_local.update
        if Input.trigger?(Input::C)
        case @ring_menu.indice
          when 0
                command_item
          when 1,2,3
                command_personal
          when 4
                command_save
          when 5
          command_game_end
         
          end
        end
        if Input.trigger?(:B)
          return_scene
        end

        if Input.trigger?(Input::UP) or  Input.trigger?(Input::LEFT) and @ring_menu.lol != false
          Sound.play_cursor
          @ring_menu.girar(3)
          return
        end
        if Input.trigger?(Input::DOWN) or  Input.trigger?(Input::RIGHT) and @ring_menu.lol != false
          Sound.play_cursor
          @ring_menu.girar(4)
          return
        end
  end

  def terminate
        super
        @ring_menu.dispose
        @win_local.dispose
  end

  #--------------------------------------------------------------------------
  # * Criação da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
        @command_window = Window_MenuCommand.new
        @command_window.set_handler(:item,        method(:command_item))
        @command_window.set_handler(:skill,      method(:command_personal))
        @command_window.set_handler(:equip,      method(:command_personal))
        @command_window.set_handler(:status,    method(:command_personal))
        @command_window.set_handler(:save,        method(:command_save))
        @command_window.set_handler(:game_end,  method(:command_game_end))
        @command_window.set_handler(:cancel,    method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de dinheiro
  #--------------------------------------------------------------------------
  def create_gold_window
        @gold_window = Window_Gold.new
        @gold_window.x = -20
        @gold_window.y = Graphics.height - @gold_window.height
        @gold_window.opacity = 0
  end
  #--------------------------------------------------------------------------
  # * Criação da janela de atributos
  #--------------------------------------------------------------------------
  def create_status_window
        @status_window = Window_MenuStatus.new(160, 0)
  end
  #--------------------------------------------------------------------------
  # * Comando [Item]
  #--------------------------------------------------------------------------
  def command_item
        SceneManager.call(Scene_Item)
  end
  #--------------------------------------------------------------------------
  # * Comando [Habilidade] [Equipamentos] [Atributos]
  #--------------------------------------------------------------------------
  def command_personal
        @status_window.select_last
        @status_window.visible = true
        @ring_menu.lol = false
        @status_window.activate
        @status_window.set_handler(:ok,  method(:on_personal_ok))
        @status_window.set_handler(:cancel, method(:on_personal_cancel))
  end
  #--------------------------------------------------------------------------
  # * Comando [Formação]
  #--------------------------------------------------------------------------
  def command_formation
        @status_window.select_last
        @status_window.activate
        @status_window.set_handler(:ok,  method(:on_formation_ok))
        @status_window.set_handler(:cancel, method(:on_formation_cancel))
  end
  #--------------------------------------------------------------------------
  # * Comando [Salvar]
  #--------------------------------------------------------------------------
  def command_save
        SceneManager.call(Scene_Save)
  end
  #--------------------------------------------------------------------------
  # * Comando [Fim do Jogo]
  #--------------------------------------------------------------------------
  def command_game_end
        SceneManager.call(Scene_End)
  end
  #--------------------------------------------------------------------------
  # * Comandos individuais [Confirmação]
  #--------------------------------------------------------------------------
  def on_personal_ok
        case @ring_menu.indice
        when 1
          @status_window.visible = false
          SceneManager.call(Scene_Skill)
        when 2
          @status_window.visible = false
          SceneManager.call(Scene_Equip)
        when 3
          @status_window.visible = false
          SceneManager.call(Scene_Status)
        end
  end
  #--------------------------------------------------------------------------
  # * Comandos individuais [Cancelamento]
  #--------------------------------------------------------------------------
  def on_personal_cancel
        @status_window.visible = false
        @ring_menu.lol = true
        @status_window.unselect
  end
  #--------------------------------------------------------------------------
  # * Mudança de Ordem [Confirmação]
  #--------------------------------------------------------------------------
  def on_formation_ok
        @status_window.visible = true
        if @status_window.pending_index >= 0
          $game_party.swap_order(@status_window.index,
                                                        @status_window.pending_index)
          @status_window.pending_index = -1
          @status_window.redraw_item(@status_window.index)
        else
          @status_window.pending_index = @status_window.index
        end
        @status_window.activate
  end
  #--------------------------------------------------------------------------
  # * Mudança de Ordem [Cancelamento]
  #--------------------------------------------------------------------------
  def on_formation_cancel
        if @status_window.pending_index >= 0
          @status_window.pending_index = -1
          @status_window.activate
        else
          @status_window.unselect
          @status_window.visible = false
        end
  end
end

class Window_RingMenu_Comando < Window_Base

  DurIni = 30
  DurMov = 15
  RaioAnel = 64
  ModoIni = 1
  ModoEsp = 2
  ModoMD = 3
  ModoME = 4
  SE_Inicio = ""

  attr_accessor :lol
  attr_accessor :indice
  #--------------------------------------------------------------------------
  # Inicia o objeto
  #--------------------------------------------------------------------------
  def initialize(centro_x,centro_y)
        super(0, 0, 544, 416)
        self.opacity = 0
        self.contents.font.size = 16
        @item_name = Configuration::Item_name
        @item_max = Configuration::Item_max
        @item_icon = Configuration::Item_icon
        @item_hab = Configuration::Item_hab
        @indice = 0
        @cx = centro_x - 12
        @cy = centro_y - 12
        inicia_menu
        refresh
        @lol = true
  end
  #--------------------------------------------------------------------------
  # Atualiza o objeto
  #-------------------------------------------------------------------------- 
  def update
        super
        refresh
  end
  #--------------------------------------------------------------------------
  # Atualiza o objeto
  #--------------------------------------------------------------------------
  def refresh
        self.contents.clear
        case @modo
        when ModoIni
          refresh_inicio
        when ModoEsp
          refresh_espera
        when ModoMD
          refresh_mover(1)
        when ModoME
          refresh_mover(0)
        end
        sw = self.contents.width
        rect = Rect.new((@cx - ((sw-32)/2))+12, @cy - 40, sw-32, 32)
        self.contents.draw_text(rect, @item_name[@indice],1)
  end
  #--------------------------------------------------------------------------
  # Abre o menu
  #--------------------------------------------------------------------------
  def refresh_inicio
        d1 = 2.0 * Math::PI / @item_max
        d2 = 1.0 * Math::PI / DurIni
        r = RaioAnel - 1.0 * RaioAnel * @passos / DurIni
        for i in 0...@item_max
          j = i - @indice
          d = d1 * j + d2 * @passos
          x = @cx + ( r * Math.sin( d ) ).to_i
          y = @cy - ( r * Math.cos( d ) ).to_i
          desenha_item(x, y, i)
        end
        @passos -= 1
        if @passos < 1
          @modo = ModoEsp
        end
  end
  #--------------------------------------------------------------------------
  # Atualiza o menu
  #--------------------------------------------------------------------------
  def refresh_espera
        d = 2.0 * Math::PI / @item_max
        for i in 0...@item_max
          j = i - @indice
          x = @cx + ( RaioAnel * Math.sin( d * j ) ).to_i
          y = @cy - ( RaioAnel * Math.cos( d * j ) ).to_i
          desenha_item(x, y, i)
        end
  end
  #--------------------------------------------------------------------------
  # Movimenta o menu
  #--------------------------------------------------------------------------
  def refresh_mover(modo)
        d1 = 2.0 * Math::PI / @item_max
        d2 = d1 / DurMov
        d2 *= -1 if modo != 0
        for i in 0...@item_max
          j = i - @indice
          d = d1 * j + d2 * @passos
          x = @cx + ( RaioAnel * Math.sin( d ) ).to_i
          y = @cy - ( RaioAnel * Math.cos( d ) ).to_i
          desenha_item(x, y, i)
        end
        @passos -= 1
        if @passos < 1
          @modo = ModoEsp
        end
  end
  #--------------------------------------------------------------------------
  # Desenha o icone
  #--------------------------------------------------------------------------
  def desenha_item(x, y, i)
        if @indice == i
          self.cursor_rect.set(x-4, y-4, 32, 32)
          draw_icon(@item_icon[i], x, y, @item_hab[i])
        else
          draw_icon(@item_icon[i], x, y, @item_hab[i])
        end
  end
  #--------------------------------------------------------------------------
  # Inicia o menu
  #--------------------------------------------------------------------------
  def inicia_menu
        @modo = ModoIni
        @passos = DurIni
        if  SE_Inicio != nil and SE_Inicio != "" and @activate
          Audio.se_play("Audio/SE/" + SE_Inicio, 80, 100)
        end
  end
  #--------------------------------------------------------------------------
  # Gira o menu
  #--------------------------------------------------------------------------
  def girar(modo)
        if modo == ModoMD
          @indice -= 1
          @indice = @item_hab.size - 1 if @indice < 0
        elsif modo == ModoME
          @indice += 1 and @activate
          @indice = 0 if @indice >= @item_hab.size
        else
          return
        end
        @modo = modo
        @passos = DurMov
  end

end

#==============================================================================
# Scene_Title
#------------------------------------------------------------------------------
# Faz modificações nescessarias para a exibição do nome do mapa
#==============================================================================

module DataManager
        def self.load_normal_database
        $data_actors            = load_data("Data/Actors.rvdata2")
        $data_classes      = load_data("Data/Classes.rvdata2")
        $data_skills            = load_data("Data/Skills.rvdata2")
        $data_items              = load_data("Data/Items.rvdata2")
        $data_weapons      = load_data("Data/Weapons.rvdata2")
        $data_armors            = load_data("Data/Armors.rvdata2")
        $data_enemies      = load_data("Data/Enemies.rvdata2")
        $data_troops            = load_data("Data/Troops.rvdata2")
        $data_states            = load_data("Data/States.rvdata2")
        $data_animations        = load_data("Data/Animations.rvdata2")
        $data_tilesets    = load_data("Data/Tilesets.rvdata2")
        $data_common_events = load_data("Data/CommonEvents.rvdata2")
        $data_system            = load_data("Data/System.rvdata2")
        $data_mapinfos    = load_data("Data/MapInfos.rvdata2")
        $data_mapinfo = load_data("Data/MapInfos.rvdata2")
  end
end

#==============================================================================
# Window_Local
#------------------------------------------------------------------------------
# Cria a janela responsavel pela exibição do nome do mapa
#==============================================================================

class Window_Local < Window_Base
  #--------------------------------------------------------------------------
  # Inicia o objeto
  #--------------------------------------------------------------------------
  def initialize(x, y)
        super(x, y, 160, 96)
        self.opacity = 0
        refresh
  end
  #--------------------------------------------------------------------------
  # Atualiza o objeto
  #--------------------------------------------------------------------------
  def refresh
        self.contents.clear
        self.contents.font.color = normal_color
        self.contents.draw_text(4, 0, 120, 32, "Local:")
        self.contents.font.color = system_color
        self.contents.draw_text(4, 32, 120, 32, $data_mapinfo[$game_map.map_id].name, 2)
  end
end

_________________
Do quê adianta baixar um sistema e só copiar tudo? estão faltando makers no mundo intão porquê você não aprende ruby para fazer seus proprios scripts?
Ring menu ace Tek4fecaa94066320959172
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://liferpgmaker.forumeiros.com
 
Ring menu ace
Voltar ao Topo 
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Life Rpg Maker :: RPG MAKER VX ACE :: Scripts RGSS3-
Ir para: