XGB's Message Box
Autor: Dr.XGB
Plataforma usada: RPG Maker 2000
Dificuldade: Avançado
Outro Motor: Destiny Patcher 2.0
Pessoal, criei um sistema para aqueles que desejam deixar a caixa de texto mais interessante e diferente do sistema padrão do RPG Maker. Eu programei de um jeito que você pode deixar a caixa de mensagens onde você quiser e definir o tamanho.
Inicialmente, eu fiz com que o jogo procurasse todos os arquivos dentro da pasta System do seu projeto e armazenar o nome de todos eles em Strings, podendo então carregar o gráfico selecionado para uma picture. Carregada a imagem do System Atual para a Picture, criaremos a janela da mensagem através desta imagem carregada, pegando partes dela e passando para uma nova picture, onde faremos primeiro o fundo da janela e, em seguida a borda da janela em uma outra picture.
Além disso, temos as fontes, onde desenvolverá o texto. Para isso, eu criei um tipo de arquivo chamado FontSet, que serão imagens em PNG que ficarão caracteres usados em textos. Aqui está o exemplo de um gráfico de fonte:
Daí então, o jogo vai alterar a paleta desta fonte para a paleta do System e começar a preencher todos os pixels da letra de acordo com a cor selecionada do System:
E assim faremos para todas as outras cores. Para evitar que ele tenha que ficar fazendo isso toda hora, eu os salvo em um arquivo temporário para que, na próxima vez, que for jogar ou então quando trocar de mapa, ele simplesmente carregue os arquivos criados. A sombra das letras também são baseadas com a cor do System. Veja o que significa cada um deles:
Baseando-se nessa ideia que eu montei a janela e as fontes.
Antes de iniciar a mensagem, escolha a coordenada da janela, tamanho e onde ela será posicionada: abaixo do NPC, à esquerda, à direita ou acima.
Agora a mensagem será armazenada na String a[1] e chame o evento XGB Show Message para aparecer a mensagem personalizada.
Além do mais, você ainda pode utilizar os códigos da mensagem que são usados na mensagem padrão:
\| - Esperar 1 segundo;
\. - Esperar ¼ segundo;
\_ - Metade de um espaço;
\C[n] - Cor da mensagem;
\S[n] - Velocidade da mensagem;
\V[n] - Mostrar valor da Variável;
\N[n] - Nome do Herói;
\^ - Fechar caixa de texto;
\! - Continuar mensagem com Enter;
\$ - Mostrar Gold Points;
\> - Mensagem Instantânea (aparecer sem rolar);
\< - Parar Mensagem Instantânea.
\a[n] - Mostrar String;
\d[n] - Mostrar Dword;
\f[n] - Mostrar Float.
Além destes, criei mais alguns códigos que você pode usar deixando sua mensagem mais interativa. A novidade é que você pode usar emoticons/smileys em suas mensagens, onde serão carregadas num arquivo que chamei de SmileySet. Onde você pode colocar 255 emoticons dentro deste arquivo. Logo em seguida, teremos os novos comandos como mostrar a data atual e para pular uma linha, caso seja necessário. Aí estão alguns smileys do nosso nostálgico MSN:
\E[n] - Inserir emoticon;
\# - Pular uma linha;
\t - Mostrar data e horário.
Aproveitei o sistema e criei um esquema para a opção "Show Choice" e "Input Number", onde o Show Choice será feita na String a[3], deixando uma opção por linha e o Input Number declarando valores de duas variáveis, onde uma vai servir para mostrar a quantidade de dígitos e a outra para determinar a ID da variável que será alterada.
Você pode aproveitar o sistema para criar menus, que vai funcionar muito bem. Eu programei de um jeito que ele fique bem otimizado e que combine com as outras funções.
Dentro deste Demo, mostra como você pode utilizar a caixa de mensagens em diversas maneiras.
Além disso, no código do jogo está tudo bem detalhado como chamar as ações e explicando como elas funcionam.
Caso você queira criar sua própria fonte e seus próprios emoticons, use estes templates:
Vídeo da Demonstração:
http://www.youtube.com/watch?v=EyI1enxOM4U
Se você gostou deste sistema e quer colocá-lo no seu jogo?
Você tem duas formas: ou você copia o projeto e cola fazendo um novo jogo ou então crie um projeto vazio e copie o arquivo RPG_RT.ldb e as pastas Data, FontSet e SmileySet. Não se esqueça que para funcionar em seu jogo, você deve usar o Destiny Patcher 2.0 e ter o Destiny.dlldentro da pasta do seu projeto.
Espero que tenham gostado.
Até mais!
Log de Atualizações: