Suporte no desenvolvimento de jogos


    Nome do evento nas mensagens

    Valentine
    Valentine
    Administrador
    Administrador

    Medalhas : Nome do evento nas mensagens 94JxvNome do evento nas mensagens ZgLkiRU
    Mensagens : 5021
    Créditos : 1114
    Cash : 0

    Nome do evento nas mensagens Empty Nome do evento nas mensagens

    Mensagem por Valentine em Dom Mar 08, 2015 7:17 pm

    Nome do evento nas mensagens
    Autor: Valentine

    Introdução:
    Cria uma janela em cima da mensagem do evento, contendo o nome dele.
    Para que tal janela não apareça, basta deixar o campo do nome do evento em branco.

    Script:
    Código:
    #==============================================================================
    # ** Nome do evento nas mensagens
    #------------------------------------------------------------------------------
    # Autor: Valentine
    #==============================================================================

    class Game_Event < Game_Character
      #--------------------------------------------------------------------------
      # * Variável pública
      #--------------------------------------------------------------------------
      attr_reader :event                      # evento
    end

    #==============================================================================
    # ** Game_Temp
    #==============================================================================
    class Game_Temp
      #--------------------------------------------------------------------------
      # * Variável pública
      #--------------------------------------------------------------------------
      attr_accessor :event_name               # nome do evento
    end

    #==============================================================================
    # ** Interpreter (Parte 3)
    #==============================================================================
    class Interpreter
      #--------------------------------------------------------------------------
      # * Mostrar mensagem
      #--------------------------------------------------------------------------
      def command_101
        # Se outro texto for configurado para message_text
        return false if $game_temp.message_text != nil
        # Uma flag e uma chamada são configuradas durante o término da mensagem
        @message_waiting = true
        $game_temp.message_proc = Proc.new { @message_waiting = false }
        # Definir a mensagem de texto na primeira linha
        $game_temp.message_text = @list[@index].parameters[0] + "\n"
        line_count = 1
        # Definir nome do evento
        $game_temp.event_name = $game_map.events[@event_id].event.name
        # Loop
        loop do
          # Se o próximo comando de evento for na segunda linha ou depois
          if @list[@index+1].code == 401
            # Adicionar segunda linha ou que tiver depois para message_text
            $game_temp.message_text += @list[@index+1].parameters[0] + "\n"
            line_count += 1
          # Se o comando de evento não estiver na segunda linha ou depois
          else
            # Se o próximo comando de evento são escolhas
            if @list[@index+1].code == 102
              # Quando uma escolha é estável na tela
              if @list[@index+1].parameters[0].size <= 4 - line_count
                # Avançar índice
                @index += 1
                # Configuração das escolhas
                $game_temp.choice_start = line_count
                setup_choices(@list[@index].parameters)
              end
            # Se o próximo evento de comando for uma entrada numérica
            elsif @list[@index+1].code == 103
              # Quando uma entrada numérica é estável na tela
              if line_count < 4
                # Avançar índice
                @index += 1
                # Configuração da entrada numérica
                $game_temp.num_input_start = line_count
                $game_temp.num_input_variable_id = @list[@index].parameters[0]
                $game_temp.num_input_digits_max = @list[@index].parameters[1]
              end
            end
            # Continuar
            return true
          end
          # Avançar índice
          @index += 1
        end
      end
    end

    #==============================================================================
    # ** Window_Message
    #==============================================================================
    class Window_Message < Window_Selectable
      #--------------------------------------------------------------------------
      alias message_refresh refresh
      #--------------------------------------------------------------------------
      # * Atualizar
      #--------------------------------------------------------------------------
      def refresh
        message_refresh
        if @name_window == nil and $game_temp.event_name != nil and $game_temp.event_name.strip != ""
          @name_window = Window_Name.new
          @name_window.x = self.x
          @name_window.y = self.y - @name_window.height
          @name_window.visible = true
        end
      end
      #--------------------------------------------------------------------------
      # * Atualização do frame
      #--------------------------------------------------------------------------
      def update
        super
        # Se Fade_in
        if @fade_in
          self.contents_opacity += 24
          if @input_number_window != nil
            @input_number_window.contents_opacity += 24
          end
          if self.contents_opacity == 255
            @fade_in = false
          end
          return
        end
        # Se for entrada numérica
        if @input_number_window != nil
          @input_number_window.update
          # Confirmar
          if Input.trigger?(Input::C)
            $game_system.se_play($data_system.decision_se)
            $game_variables[$game_temp.num_input_variable_id] =
              @input_number_window.number
            $game_map.need_refresh = true
            # Exibir a janela de entrada numérica
            @input_number_window.dispose
            @input_number_window = nil
            terminate_message
          end
          return
        end
        # Se a mensagem estiver sendo exibida
        if @contents_showing
          # Se a escolha não estiver sendo exibida pausar
          self.pause = true if $game_temp.choice_max == 0
          # Cancelar
          if Input.trigger?(Input::B)
            if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
              $game_system.se_play($data_system.cancel_se)
              $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
              terminate_message
            end
          end
          # Confirmar
          if Input.trigger?(Input::C)
            if $game_temp.choice_max > 0
              $game_system.se_play($data_system.decision_se)
              $game_temp.choice_proc.call(self.index)
            end
            terminate_message
          end
          return
        end
        # Se houver mensagem em espera ou estiver em escolha
        if @fade_out == false and $game_temp.message_text != nil
          @contents_showing = true
          $game_temp.message_window_showing = true
          reset_window
          refresh
          Graphics.frame_reset
          self.visible = true
          self.contents_opacity = 0
          if @input_number_window != nil
            @input_number_window.contents_opacity = 0
          end
          @fade_in = true
          return
        end
        # Se a mensagem não estiver sendo exibida
        if self.visible
          @fade_out = true
          self.opacity -= 48
          @name_window.opacity -= 48 if @name_window != nil
          if self.opacity == 0
            self.visible = false
            if @name_window != nil
              $game_temp.event_name = nil
              @name_window.dispose
              @name_window = nil
            end
            @fade_out = false
            $game_temp.message_window_showing = false
          end
          return
        end
      end
    end

    #==============================================================================
    # ** Window_Name
    #==============================================================================
    class Window_Name < Window_Base
      #--------------------------------------------------------------------------
      # * Inicialização dos objetos
      #--------------------------------------------------------------------------
      def initialize
        super(0, 0, 64, 48)
        self.contents = Bitmap.new(width - 32, height - 32)
        self.back_opacity = 160
        self.visible = true
        self.z = 9999
        refresh
      end
      #--------------------------------------------------------------------------
      # * Atualização
      #--------------------------------------------------------------------------
      def refresh
        self.contents.clear
        cx = contents.text_size($game_temp.event_name).width
        self.width = cx + 32
        self.contents = Bitmap.new(cx, height - 32)
        self.contents.draw_text(0, -8, cx, 32, $game_temp.event_name.to_s, 1)
      end
    end

    Créditos:
    Valentine


    Última edição por Valentine em Sab Jul 16, 2016 11:09 am, editado 2 vez(es)


    _________________
    Nome do evento nas mensagens AIymW
    Valentine
    Valentine
    Administrador
    Administrador

    Medalhas : Nome do evento nas mensagens 94JxvNome do evento nas mensagens ZgLkiRU
    Mensagens : 5021
    Créditos : 1114
    Cash : 0

    Nome do evento nas mensagens Empty Re: Nome do evento nas mensagens

    Mensagem por Valentine em Qui Jul 14, 2016 8:00 pm

    Tópico atualizado.


    _________________
    Nome do evento nas mensagens AIymW

      Data/hora atual: Qui Dez 05, 2019 12:58 pm