O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Faalco Name Input 1.0

Iniciado por Takkun, 13/01/2013 às 03:41

13/01/2013 às 03:41 Última edição: 20/01/2017 às 09:37 por King Gerar
Faalco Name Input 1.0
por Faalco

Introdução

Este é um Script para o RPG Maker VXAce, em que permite ao jogador, escolher um nome para o personagens, com mais opções, e com mais caratéres disponivéis.

Características


  • Este Script permite que você crie o nome para um personagem, com mais simbolos e opções.
Screenshots



Como usar

  • Abra o ''Editor de Scripts''.
  • Cole este Script abaixo de ''▼ Scripts Adicionais''

    Demo

    Não necessita.

    Script
    #==============================================================================
    # Faalco Name Input 1.0
    #------------------------------------------------------------------------------
    # Esse nome adicionar mais caractéres para colocar no nome do seu Herói.
    #==============================================================================
    # Criado por: Faalco © 2013
    #==============================================================================
    # ** Window_NameInput
    #------------------------------------------------------------------------------
    #  Esta janela é usada para seleção dos caracteres na tela de entrada de nome.
    #==============================================================================
    
    class Window_NameInput < Window_Selectable
      #--------------------------------------------------------------------------
      # * Tabela de caracteres (ocidental)
      #--------------------------------------------------------------------------
      LATIN1 = [ 'A','B','C','D','E',  'a','b','c','d','e',
                 'F','G','H','I','J',  'f','g','h','i','j',
                 'K','L','M','N','O',  'k','l','m','n','o',
                 'P','Q','R','S','T',  'p','q','r','s','t',
                 'U','V','W','X','Y',  'u','v','w','x','y',
                 'Z','[',']','^','_',  'z','{','}','|','~',
                 '0','1','2','3','4',  '!','#','$','%','&',
                 '5','6','7','8','9',  '(',')','*','+','-',
                 '/','=','@','<','>',  ':',';',' ','Page','OK']
      LATIN2 = [ 'Á','É','Í','Ó','Ú',  'á','é','í','ó','ú',
                 'À','È','Ì','Ò','Ù',  'à','è','ì','ò','ù',
                 'Â','Ê','Î','Ô','Û',  'â','ê','î','ô','û',
                 'Ä','Ë','Ï','Ö','Ü',  'ä','ë','ï','ö','ü',
                 'Ā','Ē','Ī','Ō','Ū',  'ā','ē','ī','ō','ū',
                 'Ã','Å','Æ','Ç','Ð',  'ã','å','æ','ç','ð',
                 'Ñ','Õ','Ø','Š','Ŵ',  'ñ','õ','ø','š','ŵ',
                 'Ý','Ŷ','Ÿ','Ž','Þ',  'ý','ÿ','ŷ','ž','þ',
                 'IJ','Œ','ij','œ','ß',  '«','»',' ','Page','OK']
     SIMBOLOS =[ '♠','♦','♥','♣','§',  'Þ','Ω','ψ','Δ','η',
                  '¶','•','¦','©','®',  '','ê','ë','ì','í',
                  '™','£','¢','€','¥',  'î','ï','ò','ó','ô',
                  '‰','∫','∑','∏','√',  'õ','ö','ù','ú','û',
                  '∞','∂','','','' ,    'ü','ñ',' ',' ',' ',
                  ' ',' ',' ',' ',' ',  ' ',' ',' ',' ',' ',
                  '!','@','#','$','%',  ' ',' ',' ',' ',' ',
                  '*','(',')','+','-',  ' ',' ',' ',' ',' ',
                  ' ',' ',' ',' ',' ',  ' ',' ',' ','A','OK']
      #--------------------------------------------------------------------------
      # * Tabela de caracteres (japonês)
      #--------------------------------------------------------------------------
      JAPAN1 = [ 'あ','い','う','え','お',  'が','ぎ','ぐ','げ','ご',
                 'か','き','く','け','こ',  'ざ','じ','ず','ぜ','ぞ',
                 'さ','し','す','せ','そ',  'だ','ぢ','づ','で','ど',
                 'た','ち','つ','て','と',  'ば','び','ぶ','べ','ぼ',
                 'な','に','ぬ','ね','の',  'ぱ','ぴ','ぷ','ぺ','ぽ',
                 'は','ひ','ふ','へ','ほ',  'ぁ','ぃ','ぅ','ぇ','ぉ',
                 'ま','み','む','め','も',  'っ','ゃ','ゅ','ょ','ゎ',
                 'や','ゆ','よ','わ','ん',  'ー','~','・','=','☆',
                 'ら','り','る','れ','ろ',  'ゔ','を',' ','カナ','決定']
      JAPAN2 = [ 'ア','イ','ウ','エ','オ',  'ガ','ギ','グ','ゲ','ゴ',
                 'カ','キ','ク','ケ','コ',  'ザ','ジ','ズ','ゼ','ゾ',
                 'サ','シ','ス','セ','ソ',  'ダ','ヂ','ヅ','デ','ド',
                 'タ','チ','ツ','テ','ト',  'バ','ビ','ブ','ベ','ボ',
                 'ナ','ニ','ヌ','ネ','ノ',  'パ','ピ','プ','ペ','ポ',
                 'ハ','ヒ','フ','ヘ','ホ',  'ァ','ィ','ゥ','ェ','ォ',
                 'マ','ミ','ム','メ','モ',  'ッ','ャ','ュ','ョ','ヮ',
                 'ヤ','ユ','ヨ','ワ','ン',  'ー','~','・','=','☆',
                 'ラ','リ','ル','レ','ロ',  'ヴ','ヲ',' ','英数','決定']
      JAPAN3 = [ 'A','B','C','D','E',  'a','b','c','d','e',
                 'F','G','H','I','J',  'f','g','h','i','j',
                 'K','L','M','N','O',  'k','l','m','n','o',
                 'P','Q','R','S','T',  'p','q','r','s','t',
                 'U','V','W','X','Y',  'u','v','w','x','y',
                 'Z','[',']','^','_',  'z','{','}','|','~',
                 '0','1','2','3','4',  '!','#','$','%','&',
                 '5','6','7','8','9',  '(',')','*','+','-',
                 '/','=','@','<','>',  ':',';',' ','かな','決定']
      #--------------------------------------------------------------------------
      # * Inicialização do objeto
      #     edit_window : janela de edição
      #--------------------------------------------------------------------------
      def initialize(edit_window)
        super(edit_window.x, edit_window.y + edit_window.height + 8,
              edit_window.width, fitting_height(9))
        @edit_window = edit_window
        @page = 0
        @index = 0
        refresh
        update_cursor
        activate
      end
      #--------------------------------------------------------------------------
      # * Aquisição da tabela de caracteres
      #--------------------------------------------------------------------------
      def table
        return [JAPAN1, JAPAN2, JAPAN3] if $game_system.japanese?
        return [LATIN1, LATIN2, SIMBOLOS]
      end
      #--------------------------------------------------------------------------
      # * Aquisição do caratere
      #--------------------------------------------------------------------------
      def character
        @index < 88 ? table[@page][@index] : ""
      end
      #--------------------------------------------------------------------------
      # * Definição de posição do cursor: mudança de página
      #--------------------------------------------------------------------------
      def is_page_change?
        @index == 88
      end
      #--------------------------------------------------------------------------
      # * Definição de posição do cursor: confirmação
      #--------------------------------------------------------------------------
      def is_ok?
        @index == 89
      end
      #--------------------------------------------------------------------------
      # * Aquisição do retangulo para desenhar o item
      #     index : índice do item
      #--------------------------------------------------------------------------
      def item_rect(index)
        rect = Rect.new
        rect.x = index % 10 * 32 + index % 10 / 5 * 16
        rect.y = index / 10 * line_height
        rect.width = 32
        rect.height = line_height
        rect
      end
      #--------------------------------------------------------------------------
      # * Renovação
      #--------------------------------------------------------------------------
      def refresh
        contents.clear
        change_color(normal_color)
        90.times {|i| draw_text(item_rect(i), table[@page][i], 1) }
      end
      #--------------------------------------------------------------------------
      # * Atualização do cursor
      #--------------------------------------------------------------------------
      def update_cursor
        cursor_rect.set(item_rect(@index))
      end
      #--------------------------------------------------------------------------
      # * Definição de movimento do cursor
      #--------------------------------------------------------------------------
      def cursor_movable?
        active
      end
      #--------------------------------------------------------------------------
      # * Movimento do cursor para baixo
      #     wrap : cursor retornar a primeira ou ultima posição
      #--------------------------------------------------------------------------
      def cursor_down(wrap)
        if @index < 80 or wrap
          @index = (index + 10) % 90
        end
      end
      #--------------------------------------------------------------------------
      # * Movimento do cursor para cima
      #     wrap : cursor retornar a primeira ou ultima posição
      #--------------------------------------------------------------------------
      def cursor_up(wrap)
        if @index >= 10 or wrap
          @index = (index + 80) % 90
        end
      end
      #--------------------------------------------------------------------------
      # * Movimento do cursor para direita
      #     wrap : cursor retornar a primeira ou ultima posição
      #--------------------------------------------------------------------------
      def cursor_right(wrap)
        if @index % 10 < 9
          @index += 1
        elsif wrap
          @index -= 9
        end
      end
      #--------------------------------------------------------------------------
      # * Movimento do cursor para esquerda
      #     wrap : cursor retornar a primeira ou ultima posição
      #--------------------------------------------------------------------------
      def cursor_left(wrap)
        if @index % 10 > 0
          @index -= 1
        elsif wrap
          @index += 9
        end
      end
      #--------------------------------------------------------------------------
      # * Movimento do cursor uma página abaixo
      #--------------------------------------------------------------------------
      def cursor_pagedown
        @page = (@page + 1) % table.size
        refresh
      end
      #--------------------------------------------------------------------------
      # * Movimento do cursor uma página acima
      #--------------------------------------------------------------------------
      def cursor_pageup
        @page = (@page + table.size - 1) % table.size
        refresh
      end
      #--------------------------------------------------------------------------
      # * Execução do movimento do cursor
      #--------------------------------------------------------------------------
      def process_cursor_move
        last_page = @page
        super
        update_cursor
        Sound.play_cursor if @page != last_page
      end
      #--------------------------------------------------------------------------
      # * Definição de controle de confirmação e cancelamento
      #--------------------------------------------------------------------------
      def process_handling
        return unless open? && active
        process_jump if Input.trigger?(:A)
        process_back if Input.repeat?(:B)
        process_ok   if Input.trigger?(:C)
      end
      #--------------------------------------------------------------------------
      # * Execução do movimento do cursor para confirmação
      #--------------------------------------------------------------------------
      def process_jump
        if @index != 89
          @index = 89
          Sound.play_cursor
        end
      end
      #--------------------------------------------------------------------------
      # * Execução do retorno
      #--------------------------------------------------------------------------
      def process_back
        Sound.play_cancel if @edit_window.back
      end
      #--------------------------------------------------------------------------
      # * Definição de resultado ao pressionar o botão de confirmação
      #--------------------------------------------------------------------------
      def process_ok
        if !character.empty?
          on_name_add
        elsif is_page_change?
          Sound.play_ok
          cursor_pagedown
        elsif is_ok?
          on_name_ok
        end
      end
      #--------------------------------------------------------------------------
      # * Adição ao nome do personagem
      #--------------------------------------------------------------------------
      def on_name_add
        if @edit_window.add(character)
          Sound.play_ok
        else
          Sound.play_buzzer
        end
      end
      #--------------------------------------------------------------------------
      # * Definição do nome
      #--------------------------------------------------------------------------
      def on_name_ok
        if @edit_window.name.empty?
          if @edit_window.restore_default
            Sound.play_ok
          else
            Sound.play_buzzer
          end
        else
          Sound.play_ok
          call_ok_handler
        end
      end
    end
    


    Perguntas Frequentes

    CitarPergunta: Funciona em outros makers?
    Resposta: Não.

    Créditos e Agradecimentos

    • Feito por Faalco


Você que fez esse o.o? uia velho, esse sim achei show mano, muito útil, parabéns man, e fico feliz que venha para o lado negro do rpg maker :D

Hehe obrigado Raizen.
Sim foi eu quem fiz algo bem simples na verdade pois havia visto algo assim para XP/VX e então queria fazer um para VXAce. Bem estou dando uma estudada agora em RGSS3 para ver se pego a manha disso.
Obrigado e estou feliz de ir para o lado negro.  :malvado:
Um abraço.

~ Faalco

Bem legal o script, seria bem útil para jogos online de RMVXAce  :XD:

Mais uma vez ótimo script Faalco  :ok:

Abraços,
ElementoZero  :cool:
They're taking the hobbits to Isengard!

Sim, e bem útil mesmo para qualquer tipo de jogo.
Bem obrigado amigo pelo comentário.
Aquele abraço.

~ Faalco