Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


3 participantes

    [EVO] Menu

    Hatsuki Morturo
    Hatsuki Morturo
    Experiente
    Experiente


    Mensagens : 401
    Créditos : 50

    [EVO] Menu Empty [EVO] Menu

    Mensagem por Hatsuki Morturo Qua Jun 15, 2011 1:27 pm

    Bom, esse é um novo menu que acabei de fazer, ele contém 2 scripts, sendo que um deles é uma edit do Window_MenuStatus (não sou muito bom em rgss).

    Imagem:

    Script 1:
    Código:
    #----------------------------------------------------#
    # EVO Menu                |-------------------------#
    #----------------------------------------------------#
    # Autor  Hatsuki Morturo  |-------------------------#
    # Versão  1.0              |-------------------------#
    # Data    14.16.2011      |-------------------------#
    #----------------------------------------------------#
     
    class Scene_Menu

    #----------------------------------------------------#
    # Evolution Menu          |-------------------------#
    #----------------------------------------------------#
     
      def initialize(menu_index = 0)
        @menu_index = menu_index
      end
       
      def main
        # Criar janela de comando
        s1 = $data_system.words.item
        s2 = $data_system.words.skill
        s3 = $data_system.words.equip
        s4 = "Status"
        s5 = "Salvar"
        s6 = "Fim de Jogo"
        @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
        @command_window.index = @menu_index

        if $game_party.actors.size == 0

          @command_window.disable_item(0)
          @command_window.disable_item(1)
          @command_window.disable_item(2)
          @command_window.disable_item(3)
        end

        if $game_system.save_disabled
       
          @command_window.disable_item(4)
        end
     
        @playtime_window = Window_PlayTime.new
        @playtime_window.x = 160
        @playtime_window.y = 0
        @steps_window = Window_Steps.new
        @steps_window.x = 320
        @steps_window.y = 0
        @gold_window = Window_Gold.new
        @gold_window.x = 480
        @gold_window.y = 0
        @status_window = Window_MenuStatus.new
        @status_window.x = 160
        @status_window.y = 95
        Graphics.transition
        loop do
          Graphics.update
          Input.update
          update
          if $scene != self
            break
          end
        end
        Graphics.freeze
        @command_window.dispose
        @playtime_window.dispose
        @steps_window.dispose
        @gold_window.dispose
        @status_window.dispose
      end
       
      def update
        @command_window.update
        @playtime_window.update
        @steps_window.update
        @gold_window.update
        @status_window.update
        if @command_window.active
          update_command
          return
        end
        if @status_window.active
          update_status
          return
        end
      end
       
      def update_command
        if Input.trigger?(Input::B)
          $game_system.se_play($data_system.cancel_se)
          $scene = Scene_Map.new
          return
        end
        if Input.trigger?(Input::C)
          if $game_party.actors.size == 0 and @command_window.index < 4
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          case @command_window.index
          when 0  # Itens
            $game_system.se_play($data_system.decision_se)
            $scene = Scene_Item.new
          when 1  # Habilidades
            $game_system.se_play($data_system.decision_se)
            # Ativar o status da janela
            @command_window.active = false
            @status_window.active = true
            @status_window.index = 0
          when 2  # Equipamentos
            # Reproduzir SE de OK
            $game_system.se_play($data_system.decision_se)
            # Ativar o status da janela
            @command_window.active = false
            @status_window.active = true
            @status_window.index = 0
          when 3  # Status
            # Reproduzir SE de OK
            $game_system.se_play($data_system.decision_se)
            # Ativar o status da janela
            @command_window.active = false
            @status_window.active = true
            @status_window.index = 0
          when 4  # Salvar
            # Se Salvar for proibido
            if $game_system.save_disabled
              # Reproduzir SE de erro
              $game_system.se_play($data_system.buzzer_se)
              return
            end
            # Reproduzir SE de OK
            $game_system.se_play($data_system.decision_se)
            # Alternar para a tela de save
            $scene = Scene_Save.new
          when 5  # Fim de Jogo
            # Reproduzir SE de OK
            $game_system.se_play($data_system.decision_se)
            # Alternar para a tela de Fim de Jogo
            $scene = Scene_End.new
          end
          return
        end
      end
     
      #--------------------------------------------------------------------------
      # Atualização do Frame (Quando o status da Janela estiver Ativo)
      #--------------------------------------------------------------------------
     
      def update_status
        # Se o botão B for pressionado
        if Input.trigger?(Input::B)
          # Reproduzir SE de cancelamento
          $game_system.se_play($data_system.cancel_se)
          # Torna a janela de comandos ativa
          @command_window.active = true
          @status_window.active = false
          @status_window.index = -1
          return
        end
        # Se o botão C for pressionado
        if Input.trigger?(Input::C)
          # Ramificação por posição do cursor na janela de comandos
          case @command_window.index
          when 1  # Habilidades
            # Se o limite de ação deste Herói for de 2 ou mais
            if $game_party.actors[@status_window.index].restriction >= 2
              # Reproduzir SE de erro
              $game_system.se_play($data_system.buzzer_se)
              return
            end
            # Reproduzir SE de OK
            $game_system.se_play($data_system.decision_se)
            # Alternar para a tela de Habilidades
            $scene = Scene_Skill.new(@status_window.index)
          when 2  # Equipamento
            # Reproduzir SE de OK
            $game_system.se_play($data_system.decision_se)
            # Alternar para a tela de Equipamento
            $scene = Scene_Equip.new(@status_window.index)
          when 3  # Status
            # Reproduzir SE de OK
            $game_system.se_play($data_system.decision_se)
            # Alternar para a tela de Status
            $scene = Scene_Status.new(@status_window.index)
          end
          return
        end
      end
    end

    Script 2:
    Código:
    #----------------------------------------------------#
    # EVO Menu_2              |-------------------------#
    #----------------------------------------------------#
    # Autor  Hatsuki Morturo  |-------------------------#
    # Versão  1.0              |-------------------------#
    # Data    14.16.2011      |-------------------------#
    #----------------------------------------------------#

    class Window_MenuStatus < Window_Selectable
     
      #--------------------------------------------------------------------------
      # Inicialização dos Objetos
      #--------------------------------------------------------------------------
     
      def initialize
        super(0, 0, 480, 129)
        self.contents = Bitmap.new(width - 32, height - 32)
          self.contents.font.name = $fontface
        self.contents.font.size = $fontsize
        refresh
        self.active = false
        self.index = -1
      end
     
      #--------------------------------------------------------------------------
      # Atualização
      #--------------------------------------------------------------------------
     
      def refresh
        self.contents.clear
        @item_max = $game_party.actors.size
        for i in 0...$game_party.actors.size
          x = 64
          y = i * 116
          actor = $game_party.actors[0]
          draw_actor_graphic(actor, x - 40, y + 80)
          draw_actor_name(actor, x, y)
          draw_actor_class(actor, x + 144, y)
          draw_actor_level(actor, x, y + 32)
          draw_actor_state(actor, x + 90, y + 32)
          draw_actor_exp(actor, x, y + 64)
          draw_actor_hp(actor, x + 236, y + 32)
          draw_actor_sp(actor, x + 236, y + 64)
        end
      end
     
      #--------------------------------------------------------------------------
      # Renovação do Retângulo de Seleção
      #--------------------------------------------------------------------------
     
      def update_cursor_rect
        if @index < 0
          self.cursor_rect.empty
        else
          self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
        end
      end
    end


    _________________
    [EVO] Menu Asd10

    [EVO] Menu Fabar10
    lordmeninoS
    lordmeninoS
    Ocasional
    Ocasional


    Mensagens : 226
    Créditos : 17

    [EVO] Menu Empty Re: [EVO] Menu

    Mensagem por lordmeninoS Qua Jun 15, 2011 6:29 pm

    Bem bonito Successful
    qual Windows Skin usou?


    _________________
    Posts:
    -TUDO Pokemon:
    http://www.aldeiarpgbr.com/t1258-quer-criar-um-jogo-pokemon-agente-facilita-e-claro-atualizado-agora-com-battlers-icones-sons-e-ainda-animacoes
    DarkRoot
    DarkRoot
    Membro Ativo
    Membro Ativo


    Mensagens : 353
    Créditos : 31

    [EVO] Menu Empty Re: [EVO] Menu

    Mensagem por DarkRoot Qua Jun 15, 2011 6:53 pm

    Você poderia ter simplificado o sistema em apenas um script. E me dei a liberdade de inserir uma linha em seu script. Substitua o primeiro por este e veja a diferença:

    Código:
    #----------------------------------------------------#
    # EVO Menu |-------------------------#
    #----------------------------------------------------#
    # Autor Hatsuki Morturo |-------------------------#
    # Versão 1.0 |-------------------------#
    # Data 14.16.2011 |-------------------------#
    #----------------------------------------------------#

    class Scene_Menu
    #----------------------------------------------------#
    # Evolution Menu |-------------------------#
    #----------------------------------------------------#

    def initialize(menu_index = 0)
    @menu_index = menu_index
    end

    def main
    background = Spriteset_Map.new
    # Criar janela de comando
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Salvar"
    s6 = "Fim de Jogo"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index

    if $game_party.actors.size == 0
    @command_window.disable_item(0)
    @command_window.disable_item(1)
    @command_window.disable_item(2)
    @command_window.disable_item(3)
    end
    if $game_system.save_disabled

    @command_window.disable_item(4)
    end

    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 160
    @playtime_window.y = 0
    @steps_window = Window_Steps.new
    @steps_window.x = 320
    @steps_window.y = 0
    @gold_window = Window_Gold.new
    @gold_window.x = 480
    @gold_window.y = 0
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 95
    Graphics.transition
    loop do
    Graphics.update
    Input.update
    update
    if $scene != self
    break
    end
    end
    Graphics.freeze
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
    end

    def update
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
    update_command
    return
    end
    if @status_window.active
    update_status
    return
    end
    end

    def update_command
    if Input.trigger?(Input::B)
    $game_system.se_play($data_system.cancel_se)
    $scene = Scene_Map.new
    return
    end
    if Input.trigger?(Input::C)
    if $game_party.actors.size == 0 and @command_window.index < 4
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    case @command_window.index
    when 0 # Itens
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Item.new
    when 1 # Habilidades
    $game_system.se_play($data_system.decision_se)
    # Ativar o status da janela
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 2 # Equipamentos
    # Reproduzir SE de OK
    $game_system.se_play($data_system.decision_se)
    # Ativar o status da janela
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 3 # Status
    # Reproduzir SE de OK
    $game_system.se_play($data_system.decision_se)
    # Ativar o status da janela
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
    when 4 # Salvar
    # Se Salvar for proibido
    if $game_system.save_disabled
    # Reproduzir SE de erro
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # Reproduzir SE de OK
    $game_system.se_play($data_system.decision_se)
    # Alternar para a tela de save
    $scene = Scene_Save.new
    when 5 # Fim de Jogo
    # Reproduzir SE de OK
    $game_system.se_play($data_system.decision_se)
    # Alternar para a tela de Fim de Jogo
    $scene = Scene_End.new
    end
    return
    end
    end

    #--------------------------------------------------------------------------
    # Atualização do Frame (Quando o status da Janela estiver Ativo)
    #--------------------------------------------------------------------------

    def update_status
    # Se o botão B for pressionado
    if Input.trigger?(Input::B)
    # Reproduzir SE de cancelamento
    $game_system.se_play($data_system.cancel_se)
    # Torna a janela de comandos ativa
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
    return
    end
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
    # Ramificação por posição do cursor na janela de comandos
    case @command_window.index
    when 1 # Habilidades
    # Se o limite de ação deste Herói for de 2 ou mais
    if $game_party.actors[@status_window.index].restriction >= 2
    # Reproduzir SE de erro
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # Reproduzir SE de OK
    $game_system.se_play($data_system.decision_se)
    # Alternar para a tela de Habilidades
    $scene = Scene_Skill.new(@status_window.index)
    when 2 # Equipamento
    # Reproduzir SE de OK
    $game_system.se_play($data_system.decision_se)
    # Alternar para a tela de Equipamento
    $scene = Scene_Equip.new(@status_window.index)
    when 3 # Status
    # Reproduzir SE de OK
    $game_system.se_play($data_system.decision_se)
    # Alternar para a tela de Status
    $scene = Scene_Status.new(@status_window.index)
    end
    return
    end
    end
    end

    A Scene_Status ta meio estranha pois ela so é boa para um unico personagem. Os outros nao ficam selecionaveis.


    _________________
    [EVO] Menu Bar-1
    Hatsuki Morturo
    Hatsuki Morturo
    Experiente
    Experiente


    Mensagens : 401
    Créditos : 50

    [EVO] Menu Empty Re: [EVO] Menu

    Mensagem por Hatsuki Morturo Qua Jun 15, 2011 8:15 pm

    @LordmeninoS - A window skin que usei foi a do NP X-NP, ta no spoiler.
    Spoiler:
    @DarkRoot - Você criou as variáveis da satus certo?
    É que como falei, eu fiz um curso (rgss) a cerca de 3 anos, e desde quando terminei não pratiquei, to voltando agora.
    E a Scene_Status foi feita somente para um único personagem, porisso recomendo que na data base do jogo, deichem só um pesonagem.


    _________________
    [EVO] Menu Asd10

    [EVO] Menu Fabar10
    DarkRoot
    DarkRoot
    Membro Ativo
    Membro Ativo


    Mensagens : 353
    Créditos : 31

    [EVO] Menu Empty Re: [EVO] Menu

    Mensagem por DarkRoot Qui Jun 16, 2011 10:36 am

    somente adicionei uma linha ao script para o fundo ser o mapa e nao aquele preto...E dá para simplificar o script mas tou com preguiça de faze-lo agora >_< De qualquer modo bom trabalho =D


    _________________
    [EVO] Menu Bar-1
    Hatsuki Morturo
    Hatsuki Morturo
    Experiente
    Experiente


    Mensagens : 401
    Créditos : 50

    [EVO] Menu Empty Re: [EVO] Menu

    Mensagem por Hatsuki Morturo Qui Jun 16, 2011 6:02 pm

    @DarkRoot o script que você postou está com algum erro, vou ver se consigo localiza-lo e retira-lo.


    _________________
    [EVO] Menu Asd10

    [EVO] Menu Fabar10

    Conteúdo patrocinado


    [EVO] Menu Empty Re: [EVO] Menu

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui Nov 21, 2024 9:57 pm