Sistema de Seleção de Personagem

    jiraya
    jiraya
    Administrador
    Administrador

    Mensagens : 1299
    Credibilidade : 54

    Sistema de Seleção de Personagem Empty Sistema de Seleção de Personagem

    Mensagem por jiraya em Seg Set 20, 2010 11:33 pm

    Por: gustavex_gugu
    Introdução:
    Este script permite que você selecione o seu personagem principal, podendo ver como ele é (o char do personagem), saber a classe e os parâmetros necessários de cada herói, antes de começar uma história no seu game.
    Como Usar:
    Para instalar este script, basta colocá-lo acima do Main do seu projeto. Pórém para usá-lo siga as instruções abaixo:
    1 - Crie um NPC no mapa inicial. Dê a ele uma fala qualquer (Ex.: "Olá, escolha um personagem" ou algo parecido).
    2 - Depois, chame este script: $scene = Selecao.new
    3 - Após isso, ligue um switch (qualquer um) e abra uma nova página no mesmo evento, com a condição de que o switch que você ligou esteja ligado.
    Pronto! Depois disso você já pode testá-lo!
    OBS.: No Grupo Inicial do seu jogo, devem ter pelo menos quatro personagens, caso contrário pode ser que o sistema não funcione muito bem.
    Mais uma coisa, os quatro personagens que poderão ser selecionados pelo jogador, devem ser os quatro primeiros do seu banco de dados (ou seja, devem ser os personagens de ID 1, 2, 3 e 4).
    Para configurar os nomes a serem selecionados: Linha 70

    Script:
    Código:
    #==================================================================
    # $$$$$$$$$$$$$$ Sistema de Seleção de Personagem $$$$$$$$$$$$$$$$$
    #
    # Bem, este script permite que você possa selecionar o personagem
    # Inicial do seu game, de um modo diferente do normal. Antes, eu
    # Colocava um evento de escolhas com o nome dos personagens e
    # Escolhia um deles parainiciar o meu game. Porém, eu fiz este
    # Para que o jogador tenha uma visão de como é o personagem antes
    # Dele escolher com qual iniciar. O jogador poderá ver a classe,
    # Os parâmetros de jogo de cada herói e a figura do char de cada
    # Herói.
    #
    # Para instalar este script, basta colocá-lo acima do Main do seu
    # Projeto. Pórém para usá-lo siga as instruções abaixo:
    #
    # 1 - Crie um NPC no mapa inicial. Dê a ele uma fala qualquer (Ex.:
    #    "Olá, escolha um personagem" ou algo parecido).
    #
    # 2 - Depois, chame este script: $scene = Selecao.new
    #
    # 3 - Após isso, ligue um switch (qualquer um) e abra uma nova
    #    página no mesmo evento, com a condição de que o switch que
    #    você ligou esteja ligado.
    #
    # Pronto! Depois disso você já pode testá-lo!
    # OBS.: No Grupo Inicial do seu jogo, devem ter pelo menos quatro
    #      Personagens, caso contrário pode ser que o sistema não
    #      funcione muito bem.
    #      Mais uma coisa, os quatro personagens que poderão ser
    #      Selecionados pelo jogador, devem ser os quatro primeiros
    #      Do seu banco de dados (ou seja, devem ser os personagens
    #      de ID 1, 2, 3 e 4).
    #
    # Para configurar os nomes a serem selecionados: Linha 70
    #
    # Script criado por Guh_Gustavex
    #==================================================================
    class Window_Base
      def draw_actor_parameter(actor, x, y, type)
        case type
        when 0
          parameter_name = $data_system.words.atk
          parameter_value = actor.atk
        when 1
          parameter_name = $data_system.words.pdef
          parameter_value = actor.pdef
        when 2
          parameter_name = $data_system.words.mdef
          parameter_value = actor.mdef
        when 3
          parameter_name = $data_system.words.str
          parameter_value = actor.str
        when 4
          parameter_name = $data_system.words.dex
          parameter_value = actor.dex
        when 5
          parameter_name = $data_system.words.agi
          parameter_value = actor.agi
        when 6
          parameter_name = $data_system.words.int
          parameter_value = actor.int
        end
        self.contents.font.color = system_color
        self.contents.draw_text(x, y, 80, 32, parameter_name)
        self.contents.font.color = normal_color
        self.contents.draw_text(x + 80, y, 36, 32, parameter_value.to_s, 2)
      end
    end
    #=================================================================
    class Selecao < Window_Selectable
      def initialize
        super(0,0,640,300)
        # Na linha @commands, você determina os nomes que irão
        # Ser selecionados pelo jogador. OBS.: Devem ser 4 nomes.
        @commands = ["  Ash", "Trevor", " Baker", "    Lucy"]
        @item_max = 4
        @column_max = 4
        @index = 1
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = $fontface
        self.contents.font.size = 20
        self.index = 0
        refresh
      end
      #===========================================================#
      # Carregando as imagens a serem selecionadas                #
      #===========================================================#
      def refresh
        self.contents.clear
        hero1 = $game_party.actors[0]
        hero2 = $game_party.actors[1]
        hero3 = $game_party.actors[2]
        hero4 = $game_party.actors[3]
        #==============================================================#
        # Carregando os gráficos dos personagens                      #
        #==============================================================#
        draw_actor_graphic(hero1, 50, 96)
        draw_actor_graphic(hero2, 210, 96)
        draw_actor_graphic(hero3, 370, 96)
        draw_actor_graphic(hero4, 540, 96)
        #==============================================================#
        # Carregando as classes dos personagens                        #
        #==============================================================#
        draw_actor_class(hero1, 0, 100)
        draw_actor_class(hero2, 183, 100)
        draw_actor_class(hero3, 340, 100)
        draw_actor_class(hero4, 520, 100)
        #==============================================================#
        # Carregando os parâmetros do 1° personagem                    #
        #==============================================================#
        draw_actor_parameter(hero1, 0, 140, 0)
        draw_actor_parameter(hero1, 0, 160, 1)
        draw_actor_parameter(hero1, 0, 180, 2)
        draw_actor_parameter(hero1, 0, 200, 3)
        draw_actor_parameter(hero1, 0, 220, 4)
        draw_actor_parameter(hero1, 0, 240, 5)
        draw_actor_parameter(hero1, 0, 260, 6)
        #==============================================================#
        # Carregando os parâmetros do 2° personagem                    #
        #==============================================================#
        draw_actor_parameter(hero2, 160, 140, 0)
        draw_actor_parameter(hero2, 160, 160, 1)
        draw_actor_parameter(hero2, 160, 180, 2)
        draw_actor_parameter(hero2, 160, 200, 3)
        draw_actor_parameter(hero2, 160, 220, 4)
        draw_actor_parameter(hero2, 160, 240, 5)
        draw_actor_parameter(hero2, 160, 260, 6)
        #==============================================================#
        # Carregando os parâmetros do 3° personagem                    #
        #==============================================================#
        draw_actor_parameter(hero3, 320, 140, 0)
        draw_actor_parameter(hero3, 320, 160, 1)
        draw_actor_parameter(hero3, 320, 180, 2)
        draw_actor_parameter(hero3, 320, 200, 3)
        draw_actor_parameter(hero3, 320, 220, 4)
        draw_actor_parameter(hero3, 320, 240, 5)
        draw_actor_parameter(hero3, 320, 260, 6)
        #==============================================================#
        # Carregando os parâmetros do 4° personagem                    #
        #==============================================================#
        draw_actor_parameter(hero4, 480, 140, 0)
        draw_actor_parameter(hero4, 480, 160, 1)
        draw_actor_parameter(hero4, 480, 180, 2)
        draw_actor_parameter(hero4, 480, 200, 3)
        draw_actor_parameter(hero4, 480, 220, 4)
        draw_actor_parameter(hero4, 480, 240, 5)
        draw_actor_parameter(hero4, 480, 260, 6)
        for i in [url=http://battlemaker.forumeiros.com/mailto:0...@item_max]0...@item_max[/url]
          draw_item(i)
        end
      end
      def draw_item(index)
        x = 4 + index * 160
        self.contents.draw_text(x + 15, 7, 128, 32, @commands[index])
      end
    end
    #=================================================================
    # Fim da Classe Seleção
    #=================================================================
    #=================================================================
    # Início da Scene_Seleção
    #=================================================================
    class Scene_Selecao
      def main
        @command_window = Selecao.new
        Graphics.transition
        # Loop principal
        loop do
          # Atualizar tela de jogo
          Graphics.update
          # Atualizar entrada de informações
          Input.update
          # Atualização do frame
          update
          # Abortar loop se a tela se alterou
          if $scene != self
            break
          end
        end
        # Preparar para transição
        Graphics.freeze
        # Exibição das janela
        @command_window.dispose
      end
      def update
        @command_window.update
        if @command_window.active
          update_command
          return
        end
      end
      def update_command
        if Input.trigger?(Input::B) # Se tecla B for pressionada
          $game_system.se_play($data_system.cancel_se)
          $scene = Scene_Map.new
          return
        end
        if Input.trigger?(Input::C) # Se tecla C for pressionada
          case @command_window.index
          # Nas linhas $game_party.actors.delete($game_actors[x])
          # Você configura as IDs de quais personagens serão deletados
          # Troque o [x] pela id do herói.
          #
          #
          when 0  # Herói 1
            $game_system.se_play($data_system.decision_se)
            $game_party.actors.delete($game_actors[2])
            $game_party.actors.delete($game_actors[3])
            $game_party.actors.delete($game_actors[4])
            $scene = Scene_Map.new
            leader_read
          when 1  # Herói 2
            $game_system.se_play($data_system.decision_se)
            $game_party.actors.delete($game_actors[1])
            $game_party.actors.delete($game_actors[3])
            $game_party.actors.delete($game_actors[4])
            $scene = Scene_Map.new
            leader_read
          when 2  # Herói 3
            $game_system.se_play($data_system.decision_se)
            $game_party.actors.delete($game_actors[1])
            $game_party.actors.delete($game_actors[2])
            $game_party.actors.delete($game_actors[4])
            $scene = Scene_Map.new
            leader_read
          when 3  # Herói 4
            $game_system.se_play($data_system.decision_se)
            $game_party.actors.delete($game_actors[1])
            $game_party.actors.delete($game_actors[2])
            $game_party.actors.delete($game_actors[3])
            $scene = Scene_Map.new
            leader_read
          end
        return
        end
      end
      def leader_read
        @actors = []
        for i in 0...$game_party.actors.size
          @actors[i] = $game_party.actors[i]
        end
        for i in [url=http://battlemaker.forumeiros.com/mailto:1...@actors.size]1...@actors.size[/url]
          $game_party.actors[i - 1] = @actors[i]
        end
        $game_party.actors[@actors.size - 1] = @actors[0]
        $game_player.refresh
      end
    end
    #=========================================================================
    # Fim do Script
    #=========================================================================
    Demo:
    Não necessita.

      Data/hora atual: Dom Ago 18, 2019 8:20 am