InícioFAQBuscarMembrosGruposRegistrar-seConectar-se

Compartilhe | 
 

 Baú Inteligente

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
jackmcmorrow
Aspirante
Aspirante
avatar

Ocupação : Papai Noel 8-bit

MensagemAssunto: Baú Inteligente   Qui Ago 06, 2009 12:34 am

Esse é um tutorial antigo que estava na RMB. Espero que gostem.

O Sistema

Esse sistema faz algo parecido com o que acontece com a grama da série de jogos Zelda. Ele define algo que o jogador está precisando e retorna com um item. No caso do Zelda, eram corações para recuperar vida e poções que recuperavam magia. Aqui, decidi adicionar também a possibilidade do jogador estar envenenado.

Do que eu preciso?

Para criar isso, você vai precisar saber sobre:
1) Variáveis - Basicamente são números que você pode mandar o RPG Maker guardar.
2) Condições - Ou forks, como eu chamava antigamente, que são basicamente perguntas.
Por exemplo: A variável HP é menor do quê o HP Máximo?

Dificilmente você vai obter resultados sem saber um pouco sobre isso, mas provavelmente você pode acabar aprendendo à usá-las através desse tutorial.

Como funciona?

Primeiramente, você precisa de...bem, um baú. Se quiser, pode até usar aquele de "criações rápidas" e deletar a linha em que você recebe o item e a linha da mensagem.


Após isso, vamos definir algumas variáveis para podermos trabalhar são elas:
1) Uma variável que fique com o mesmo valor do seu HP atual.
2) Uma variável com o valor do seu MP atual.
3) Uma variável com o valor do seu HP Máximo.
4) Uma variável com o valor do seu MP Máximo.

Essas a gente vai usar depois, mas é bom definí-las logo no início do evento. Agora nós vamos saber se o nosso jogador está envenenado:

<>Condição [Jogador] possui status [Veneno]
<>Mensagem: Você recebeu um antídoto!
<>Mudar item: [Antídoto] + 1
<>
:Excessão
<>
:FIM

Você vê que nós já temos nosso primeiro item. Prossigamos, então, para o próximo.
Para descobrir se nosso jogador está machucado, prossiga criando uma condição logo na excessão da última.

<>Condição: Variável [0001: HP] < Variável [0002: HP Máximo]
<>Mensagem: Você recebeu uma poção!
<>Mudar item: [Poção] +1

Em outras palavras, a condição é que quando o HP for menor do que o HP Máximo (ou seja, seu jogador está com menos HP do que o máximo), ele vai receber uma poção de cura. E que isso só vai acontecer, caso ele não esteja envenenado, por isso colocar essa condição dentro da excessão da outra.

Tendo feito isso, podemos fazer o mesmo para o MP:

<>Condição: Variável [0003: MP] < Variável [0004: MP Máximo]
<>Mensagem: Você recebeu uma poção mágica!
<>Mudar item: [Poção Mágica] +1

E pronto!
"Mas, Jack, quando o jogador abre o baú e ele não está envenenado, com HP e MP no máximo, nada acontece!"

Mas é claro que não... e você até poderia deixar assim se fosse uma grama do Zelda, mas nós seremos um pouco mais espertos não é? Afinal, abrir aquele baú e não acontecer nada é bem chato para o jogador, não é? Pois bem, faremos o seguinte: Quando nada mais funcionar, quem liga para o que ele vai receber, certo? Então nós vamos fazer uma das minhas coisas favoritas! Algo que eu gosto de chamar de:

RANDOMIZAR!

Sentiu o eco? Pois bem, como faremos isso?
Primeiro, vamos criar uma nova variável lá em cima, que eu chamei de "Random", mas na hora de defini-la, faça o seguinte:


Com essa nova variável aleatoria, nós podemos criar um conjunto de condições na última excessão. Nessas condições, não marque a caixa "Adicionar excessão se não cumpridas as condições", pois nós não vamos precisar de excessões aqui, logo mais você entenderá por quê.

Em cada condição você define o seguinte:
<>Condição: Variável [0005: Random] == X
<>Mensagem: Você recebeu um Item X!
<>Mudar item: [Item X] +1

Deixe uma embaixo da outra, não importa qual seja a ordem, mas lembre-se que cada resultado entre 1 e 3 (1, 2 ou 3) deve ter uma condição em separado. Coloque um switch local A que passa para uma página com o baú aberto e...

Pronto! Temos agora um baú que faz o seguinte:
Se o Jogador estiver envenenado, será dado um antídoto à ele.
Se ele não estiver envenenado, mas estiver machucado, recebe uma poção.
Se não tiver nem envenenado, nem machucado, pode estar com pouco MP, daí ele recebe uma poção mágica. Se não houver nenhum desses problemas, ele recebe um item qualquer entre esses três.

Apêndice

Esse tutorial cuida apenas de um personagem no grupo, mas pequenas alterações podem ser pensadas para criar algo que atinja o grupo inteiro.
Por exemplo, você pode fazer uma soma de HP's máximos e atuais e compará-las para saber se o grupo precisa de HP.

Na demo que você vai jogar, também tem uma leve mudança. Todos esses eventos estão dentro de uma condição definida pelo nível do personagem(no caso de um grupo, pode ser a soma de níveis dos mesmos). Caso o nível do personagem for muito alto, os itens de cura serão mais poderosos. O nível do grupo pode ser calculado em uma média:
(Nv Personagem 1) + (Nv Personagem 2) + (Nv Personagem 3)/3
Sendo um grupo de quatro personagens você pode dividir por quatro.

Eu só considerei o veneno como status negativo pois a maioria deles termina após o combate. Além do veneno ser um pé no saco, tendo aquele lance de causar dano quando você anda. Você também pode considerar se houver algum personagem morto no grupo, e entregar um item que ressucita pra eles.

Esse sistema é bastante útil em RPG's não lineares no estilo Oblivion. Basta você definir o nível do personagem(ou o nível médio do grupo) e entregar itens mais poderosos conforme o nível.

Você também pode definir alguma espécie de contador de tempo e fazer com que após alguns segundos ou minutos o baú feche novamente e você possa abrí-lo de novo. Isso também fica legal se você mudar para uma graminha tipo Zelda, meramente porque é difícil explicar porque um baú fecharia e renovaria seus itens... à menos que ele fosse mágico. :icon_rolleyes:

Apêndice 2: (Atualizado no dia 26/01/09)
Uma forma melhor de fazer o baú é considerar se o HP do grupo está abaixo de 50%. Nesse caso, vamos usar umas equações.

Primeiro, vamos definir o conjunto de HP do grupo:
Varíavel1 = HP do Personagem1
Variavel2 = HP do Personagem2
Varíavel3 = HP do Personagem3
Varíavel4 = HP do Personagem4
Repita o processo para obter os HP's Máximos de cada personagem.

Feito isso, vamos fazer o seguinte:
HP do Personagem1 + HP do Personagem2 + HP do Personagem3 + HP do Personagem4
e
HPMáx do Personagem1 + HPMáx do Personagem2 + HPMáx do Personagem3 + HPMáx do Personagem4

Agora nós temos uma idéia de um HP de Grupo. Um valor um tanto relativo que deve ser guardado em uma variável à parte(Variável5, por exemplo). Temos agora que transformar isso em uma porcentagem. Para isso, usaremos a seguinte:
100 x HP do Grupo/HPMáx do Grupo = HP% do Grupo
Siga a seguinte ordem para criar esse evento:
<>[6:HP do Grupo] * 100
<>[6:HP do Grupo] / [7:HPMáx do Grupo]

Pronto! Você tem agora um número relativo(A variável [HP do Grupo]), que é bem mais agradável de ser usado. O mesmo pode ser feito para o MP. Verificar o veneno no grupo, infelizmente, tem que ser feito manualmente(uma condição dentro da outra).

Bom, é isso que eu tenho por hoje.
Qualquer dúvida, estou à postos para ouví-los.

Abraços,
Jack McMorrow
Voltar ao Topo Ir em baixo
Book Brat
Aspirante
Aspirante
avatar

Touro Ocupação : Eventer e Mapper

MensagemAssunto: Re: Baú Inteligente   Seg Ago 10, 2009 1:06 pm

Um ótimo tuto! Simples e útil. Parabéns!
Voltar ao Topo Ir em baixo
http://blogs.rpgmakerbrasil.com/bookstore/
Dragus-kai
Major
Major
avatar

Capricórnio Ocupação : Dorgas

Registro
: Dargus
: Monstro
: Goomba - nv. 8 / Traficante - nv. 4 / Beast Master - nv. 2

MensagemAssunto: Re: Baú Inteligente   Dom Set 06, 2009 10:17 am

Um ótimo tuto! Simples e útil. Parabéns! [2]

[piadinhatosca
Poorq ninguém faz um baú burro? Será porque aqui os burros não têm vez? :omg:

[/piadinharosca

Continue o Good Work!
Voltar ao Topo Ir em baixo
http://www.amigo.kit.net
Conteúdo patrocinado




MensagemAssunto: Re: Baú Inteligente   

Voltar ao Topo Ir em baixo
 

Baú Inteligente

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Hacred Sall :: Centro de Operações :: Armazém :: Programação em eventos-
Ir para: