[box class="titlebg2"]
Teletransporte Avançado: para lugares conhecidos!!
[/box]
[box class="catbg3"]
Sistema Por: Ozuma Y. Urashima (Eu mesmo)
Incompatibilidades: Nenhuma
Engine: RMXP, mas possivelmente funcione com todos
Nível de dificuldade: Fácil ~ Moderado [/box]
[box class="catbg2"][o]Explicação sobre o sistema:[/box]
Salve Makers,
hoje trago a vocês um tutorial que explica como criar um sistema avançado de teletransporte: O personagem será capaz, ao utilizar de determinada habilidade de teletransporte, de escolher o destino de seu teletransporte, sendo possível apenas fazê-lo para lugares onde o personagem já esteve. O sistema é bastante flexível e customizavel.
Algumas dicas de personalização dos sistema:
-Deixa essa habilidade ser usada apenas no menu, ou ter um efeito diferente em combate – como fugir do combate.
-Usar de algum item/quantidade de MP para restringir o uso da habilidade
-Impedir que ela seja utilizada em determinados ambientes
-Escolher quais mapas o personagem poderá acessar com esse sistema
-Etc
Você pode também optar entre comandos por Escolhas ou por imagens. Eu escolhi por imagens, porque fica bem maneiro. Mas a mecânica é basicamente a mesma. Qualquer dúvida, poste aí!
[box class="catbg2"][o]Dados Específicos:[/box]
Na demo que eu fiz, eu usei várias coisas que não são necessárias para o básico do sistema. Eu colocarei então dados das duas coisas.
[box title=O Básico]
[/box]
[box title=O Usado na Demo]
[/box]
[box class="catbg2"][o]Instruções de instalação:[/box]
Vamos ao sistema em si.
Primeiro, crie em cada mapa para onde o personagem poderá ser teletransportado um evento em processo paralelo. Nele, ative uma Switch (de preferencia com o mesmo nome do mapa, para você não se confundir depois).
Essa Switch será usada para verificar se o personagem já esteve antes no mapa em questão. Se você pretende que o personagem não possa nunca se teletransportar para este mapa, não faça uma Switch para ele. Se pretende que ele sempre possa, mesmo sem já ter estado aí antes, também não faça a Switch. Como disse, ela serve apenas para aquela verificação.
Segundo, vá no seu banco de dados (F9), crie uma habilidade que será usada para ativar o teletransporte. Marque a opção Evento Comum, e escolha um evento em branco. Não se esqueça de marcar a opção que diz que você poderá usar essa habilidade no Menu.
Isso fará com que o Evento Comum selecionado seja chamado quando usarmos a habilidade.
Você pode decidir que essa habilidade use uma quantidade de MP, dar uma descrição e escolher um ícone, como achar adequado para o Teletransporte.
Terceiro, ainda no banco de dados, vá na aba Eventos Comuns, e escolha o evento de ID que foi escolhido pela habilidade. Nesse evento, marque a Condição de Início para Nada. Dentro dele, ative uma Switch, que será a que ligará e desligará o sistema.
Quarto, ainda na aba Eventos Comuns, crie um novo Evento Comum. Nele iremos configurar a parte principal do sistema. E aqui começa a parte divertida. Coloque-o em Processo Paralelo como Condição de Inicio; e como Switch de ativação, escolha a Switch que você acabou de criar no último evento comum, aquele, que é chamado pela habilidade!
Não se desespere ainda com as demais linhas do evento, eu vou explicá-las.
Quinto, vamos configurar o evento. Primeiro, precisamos impedir o personagem de se mover e acessar o menu no meio da utilização da habilidade. Para isso, coloque um Mover Evento: Personagem – Esperar 4 frames (ou uma quantidade que queira, preferencialmente baixa), e Mudar Opção de Menu: Impedir. Em seguida, eu adicionei um efeito de névoa à tela, mas você pode fazer como queira. Depois, vamos configurar a posição do Cursor. Crie uma Condição, marque a opção Tecla: Esquerda. Isso verificará que se o jogador pressionou para a Esquerda enquanto está usando a habilidade. Se sim, adicione o comando Opção de Variável: Operação subtrair 1. Isso fará com que quando a tecla esquerda for pressionada, a variável passará de 0 para -1. Porém não queremos que ela assuma valores negativos, então, coloque uma nova Condição, marque Variável, escolha sua variável, e marque Menor/Igual a -1, operação substituir, e bote o número de Mapas que você tem terá no jogo menos 1. Aqui serão 3 mapas, então a constante será 2. Veja a imagem:
Isso fará com que, ao assumir um valor negativo, o cursor seja direcionado a outra ponta, ao último mapa, dando uma noção de ciclo.
Também pode ser legal colocar um Esperar, de poucos frames, eu pus 3. Isso é para não ser possível trocar muito rapidamente o cursor de posição.
Sexto. Feito isso, copie e cole a Condição da Tecla Esquerda, e modifique ‘Esquerda’ para ‘Direita’. Na Opção de Variável, mude ‘ – ‘ para ‘ + ‘, de modo que agora some 1. Agora o problema do negativo se inverte, e podemos assumir um valor maior do que o número de mapas. Então, na condição que diz ‘Menor/Igual’ a ‘1’, coloque ‘Maior/Igual’ ao número de mapas que você terá. Na demo, são 3 mapas, então o número da constante é 3. Dentro desta condição, há a variável copiada que substitui o valor para o número de mapas – 1. Mude para substituir para zero.
Sétimo. Já configuramos a posição do cursor. Agora vamos fazê-lo identificar o que acontece em cada posição. Para isso, usaremos imagens para identificar cada situação. Você deve criar uma imagem para cada opção que o jogador esteja selecionando. Eu aconselho que elas tenham a resolução da tela (640 x 480) para que você não tenha que posiciona-la manualmente. As imagens devem ser importadas para pasta Pictures do seu projeto. Abaixo no Spoiler, as imagens que eu usei na minha Demonstração.
Oitavo. Tendo as imagens, crie uma condição, escolha a sua variável, marque a opção Igual a, e coloque 0 como constante. Coloque dentro dela um comando Mostrar Imagem, e coloque a imagem referente a primeira opção do jogador, onde o cursor está por padrão.
Isso fará com que quando a variável for 0 (antes de direita ou esquerda ser pressionado), a imagem da primeira cidade seja exibida. Você pode alterar a Névoa ou a Cor da Tela em cada imagens, como eu fiz, para dar um toque a mais.
Nono. Depois de mostrar a imagem, crie uma nova condição, marque a opção Tecla, e escolha a tecla C (que é a tecla de ação do maker, por padrão). Isso irá verificar se o jogador escolheu aquela imagem. Agora uma parte importante: É aqui que você decidi se o personagem já deve ter estado no mapa em questão para poder acessá-lo. Se sim, coloque uma outra condicional, marque a opção Switch, e escolha a Switch do mapa em questão. Assim, o personagem só poderá usar a habilidade se essa Switch, que só se ativa no mapa em questão, esteja ativada. Se você não quer que essa verificação seja feita, simplesmente não coloque essa condicional.
Caso você decida usar essa condicional, é interessante colocar uma ‘Exceção’. Nela, eu mostrei um texto onde o personagem diz que não está conseguindo se teletransportar. Você pode colocar uma mensagem ou um sonzinho de negação.
Décimo. Aqui, dentro da condicional da Switch ativada, ou só dentro da condicional de pressionar a tecla C, você coloca o seu teletransporte. Eu mudei a cor da Tela, botei sons característicos e um monte de coisas, as animações ficam por sua conta. O necessário é apenas ter um comando de teletransporte, depois uma normalização. Com isso, eu quero dizer que devemos Deletar Imagem: 1, que é a que colocamos, permitir de volta a utilização do Menu, e desligar a Switch que a Habilidade Teletransporte ativou.
Décimo primeiro. O sistema já está funcionando, mas só para a posição 0 do cursor. Então, volte até a condição da variável == 0, e copie ela inteira. Cole depois do último FIM, e mude a constante == 0 para == 1. Isso significa que este será o mapa para quando a direita for pressionada uma vez. Então, simplesmente mude a imagem para a imagem do mapa ao lado. Não se esqueça de mudar as coordenadas do teletransporte para o novo mapa em questão, e verificar se é necessário ativar a Switch, porque se for, você deve mudar o valor para Switch que é ativada neste novo mapa em questão.
Repita esse processo para quantos mapas mais você tiver.
Pronto!
Uffa! Acabamos... Isso é o bastante para o nosso sistema. Você pode customiza-lo bastante, como ficou claro no decorrer do Tutorial. Espero que tenham gostado ;)
[box class="catbg2"][o]Demonstração[/box]
[box class="catbg2"][o]Créditos[/box]
Criado e postado por Ozuma Y. Urashima