statos do player e dano no inimigo

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

statos do player e dano no inimigo

Mensagem por nunogx em Ter 13 Ago 2013, 08:36

olá a todos eu queria saber se alguem me podia fazer uma pequena engine ou dizer os códigos mais ou menos como posso por status no meu player .
por exemplo tenho o player com uma espada, o player tem 10 ataque e 20 defesa e quando eu atinjo o inimigo ele perde x de vida e quando eu atacar ele ataca me e cause me um x de dano mas eu queria um dano aleatório entre 30 e 40 por exemplo e depois quando passo de level ganho 10 pontos para o status e depois ia aos status e aumentava o ataque ou a defesa conforme eu quisesse.

topico que preciso saber:* como por status no player e com isso o ataque que eu tiver no player assim causa ao inimigo
* como fazer dano aleatório faz de conta a espada causa entre 10 e 30 dano ao inimigo e ao aumentar os status do player também o dano da espada aumenta.
* como fazer com que o inimigo cause dano aleatório ao player
e
* ao passar de nível são me dados faz de conta 10 pontos para eu aumentar o que eu quiser o ataque ou a defesa

já tentei fazer isto mas não consegui. o que eu quero fazer é como nos jogos online como o daw of the dragons nao sei se conhecem se não uma coisa assim parecida.

ta um texto um pouco grande mas pronto e

obrigado


nunogx

Número de Mensagens : 37
Idade : 19
Data de inscrição : 27/12/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: statos do player e dano no inimigo

Mensagem por saim em Ter 13 Ago 2013, 09:53

nunogx escreveu:* como por status no player  e com isso o ataque que eu tiver no player assim causa ao inimigo
Armazene os status em variáveis. Simples assim. Tipo "ataque := 10; defesa := 20". Depois, na hora de causar dano ao inimigo, você coloca algo como "inimigo_atingido . dano := ataque;". Ou, na hora dele te causar dano, coloca "jogador . dano := ataque - jogador . defesa;"
nunogx escreveu:* como fazer dano aleatório faz de conta a espada causa entre 10 e 30 dano ao inimigo e ao aumentar os status do player também o dano da espada aumenta.
A palavra que você está procurando é "random". Vá no manual e pesquise todas as funções que usem "random" no nome. Acredito que a que vá te atender é "irandom_range".
nunogx escreveu:* como fazer com que o inimigo cause dano aleatório  ao player
e
Mesma coisa.
nunogx escreveu:* ao passar de nível são me dados faz de conta 10 pontos para eu aumentar o que eu quiser o ataque ou a defesa
Primeiro, passar de nível.
Pra isso, você precisa de uma variável pra dizer que o jogador chegou no ponto de passar de nível. Normalmente, isso é medido em "xp" (eXPeriência). Então você precisa de uma variável pra armazenar quanta "xp" o jogador tem e outra pra armazenar quanta "xp" ele precisa pra chegar ao próximo nível. Vou chamar de "xpNxtLvl" (xp to next level, ou xp para o próximo nível). Normalmente, é bom fazê-las globais (ver tutorial sobre variáveis, linkado acima).
Aí, na hora que o jogador ganhar xp, você coloca um código do tipo
Código:
xp += umTantoAí; //aumenta a xp do jogador
if (xp >= xpNxtLevel){ // se está na hora de levelUp
levelUp(); // roda um script de levelUp
}
Aí, você me pergunta... "Que dibos é esse script de levelUp?" É um script que você ainda vai escrever. Ele vai ser chamado naquele código acima. Ele vai ter um bocado de ações, e vai ser rodado só nessa hora. Achei mais organizado deixar ele de fora do código, pra ficar mais fácil procurar erros depois, caso aconteçam.

Como você vai distribuir alguns pontos pro jogador e como isso não vai ser aleatório, vai usar outra variável pra saber quantos pontos existem pra distribuir. O script, então, pode ficar assim:
Código:
lvl += 1; // sobe de nível
ptsStatus += 10; // aumenta a quantidade de pontos a distribuir
xpNxtLvl *= 2; // aumenta a xp requerida pra passar de nível[/quote]Note essa última linha. Sem ela, a xp requerida pra passar de nível ficaria constante. Como xp estaria sempre maior que ela, o jogador ficaria passando de nível o tempo todo. Ele ficaria ultra poderoso, mas não conseguiria usar seus poderes porque estaria ocupado passando de nível...

Ufa, finalmente conseguimos os ptsStatus. Agora fica a dúvida... COMO você quer que o jogador defina se o ponto vai pra ataque ou defesa? Apertando um botão na tela? No teclado? Controlando um objeto que passa sobre outro e isso resulta em adição/subtração de pontos?
Seja como for, você precisa definir um evento pra soma. Nesse evento, fica fácil:[quote]if (ptsStatus >0) { // se tem ponto pra distribuir
ataque += 1; // aumenta o status (pode ser defesa, também: cada status, um código diferente)
ptsStatus -= 1; // diminui a quantidade de pontos a distribuir
}

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum