GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Colisões não funcionando
por RastaMaan Hoje à(s) 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Hoje à(s) 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21


Aula 11 – Bater em você ate você morrer parte 2

+4
xxxAKIRAxxx
patoki
Dancity
reddragon
8 participantes

Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Aula 11 – Bater em você ate você morrer parte 2

Mensagem por reddragon Dom 15 Mar 2009, 16:35

Galera hoje vamos dar mais um passo importante na criação de um jogo RPG iremos montar o esquema de cálculos de batalha. Cálculos que definem se foi acertado o ataque e quanto de dano o ataque causou.

Para inicio vamos mudar e adicionar algumas variáveis. Primeiro em nosso obj criador de vars vamos mudar e adicionar as seguintes vars:

Código:
globalvar experiencia_total {experiencia_total = 0}
globalvar exp_invertida {exp_invertida = 10}
globalvar fasole {fasole = 10}         //fator de soma por LVL
globalvar level {level = 1}

globalvar tiv {tiv = 100}          //total de vida
globalvar vid {vid = 100}          //vida atual
globalvar atk {atk = 15}            //ataque
globalvar def {def = 15}            //defesa
globalvar agl {agl = 12}            //agilidade

instance_destroy()

E em nosso obj_inimigo vamos adicionar, mas algumas vars e alterar outras:

Código:
//vars rpg
apanhando = false
barra_vida = 0
inimigo_exp = 3

vida = 100      //vida do bicho
atk = 11        //ataque
def = 20        //defesa
agl = 6        //agilidade
res = 0        //resultado

Bom agora já temos as vars necessárias para começar a brincadeira.

Mas antes vamos mudar um script para se adequar as novas vars.

No obj_inimigo no step mude a linha: barra_vida = vida * 100 / 5. Para: barra_vida = vida * 100 / 100. Porque agora 100 será o total de vida de nosso inimigo.

Basicamente serão necessário 2 cálculos o de acerto e o de dano e duas situações quando eu ataco e quando o inimigo ataca. Vamos começar analisando os cálculos.

Calculo de acerto.

Se Agl_do_defensor <= random(Agl_do_atacante){
Conseguiu atacar
}else{
Errou
}

Exp1:

Agl_do_atacante = 30
Agl_do_defensor = 20

Se 20 <= 0~30{
Conseguiu atacar
}else{
Errou
}

Se o resultado for maior ou igual a 20 então acontecerá o ataque.

Exp2:

Agl_do_atacante = 20
Agl_do_defensor = 30

Se 30 <= 0~20{
Conseguiu atacar
}else{
Errou
}

Bom como qualquer resultado entre 0 e 20 é menor que 30 então o atacante nunca acertara o ataque.

Então e importante frisar que sempre que a agilidade do defensor for maior que a do atacante, o atacante nunca acertara o ataque.

Calculo de dano

O calculo de dano é baseado na porcentagem da diferença entre o ataque do atacante e a defesa do defensor após isso o ataque do atacante é mudada segundo a porcentagem da diferença.

Bom ta confuso! Mas para explicar iremos passo a passo. Vamos primeiro dividir a frase em duas partes:

Primeira: “O calculo de dano é baseado na porcentagem da diferença entre o ataque do atacante e a defesa do defensor”

Esse calculo é bem simples para fazermos vamos tomar um exemplo:

Atk = 25
Def = 50

Retp = Atk * 100 / Def
Retp = 25 * 100 / 50
Retp = 2500 / 50
Retp = 50%

Retp = resultado da porcentagem

Podemos concluir então que o ataque é 50% o valor da defesa.

Segunda: “após isso o ataque do atacante é mudada segundo a porcentagem da diferença.”

Agora já sabemos qual é a diferença em porcentagem do ataque para a defesa e na frase a cima vamos então mudar o ataque segundo essa porcentagem e para isso faremos:

Retf = Retp * Atk / 100
Retf = 50 * 50 / 100
Retf = 2500 / 100
Retf = 25

Retf = resultado final.

Apos todos os cálculos, chegamos a nossa reposta e ela é o ataque final será de 25. Mas esses cálculos podem ser simplificados e o vamos fazer.

As duas formulas são:

Retp = Atk * 100 / Def

Retf = Retp * Atk / 100

Mas o Retp da segunda formula tem um resultado em formula que pode ser substituído na segunda fazendo assim somente uma formula:

Ret = Atk * 100 / Def * Atk / 100

Agora juntado o calculo de acerto e o calculo de dano e traduzindo para GML na situação em que o player esta atacando o inimigo teremos esse script.

Código:
if iagl <= ceil(random(agl)){
ret = ceil(atk * 100 / idef * atk / 100)
vida -= ret
}else{
ret = “ERRO”
}

No nosso inimigo em seu script de dano podemos mudar a linha: vida -= atk. Para o script a cima, e também devemos mudar outra linha:

De:

Código:
dano.dano = atk

Para:

Código:
dano.dano = ret

Essa aula já tem um bom tamanho, mas não foi feito muita coisa e para fazermos mais alguma coisa vamos fazer algo que é feito para uma coisa fazer duas.

Mas como o que e como?

Vamos fazer o obj_dano alem de mostrar o dano que o inimigo mostrar também o exp que o player ganhou.

Como! É muito fácil.

Primeiro vamos fazer, quando for um dano a cor seja branca e quando for exp seja verde.

No create do obj dano adicione essa var.

Código:
cor = c_white

E no evento draw substitua todos os c_white por cor e agora voltaremos no evento collision do obj inimigo e lá vamos adicionar um script entre: exp_invertida -= inimigo_exp; e instance_destroy() vamos adicionar o seguinte script:

Código:
dano = instance_create(obj_player.x,obj_player.y,obj_dano);
dano.dano = inimigo_exp
dano.cor = c_green

E para não desprezar um detalhe mudaremos o Depth do obj_dano para -1.

Depth e um nível de imagem que o GM tem para definir quais sprite vão a cima de quais sprites.

Essas camadas têm suas camadas superiores com o valor negativo e positivo são as de baixo:

Pense nelas como folhas transparentes onde os desenhos são colocados e as camadas superiores tem seu valor negativo e com valor positivo são as imagens inferiores.

Aula 11 – Bater em você ate você morrer parte 2 Depth

Essa imagem representa que quanto mais para cima menor é o numero e mais para baixo maior é o numero.

Bom galera chegamos ao fim de mais uma aula espero que tenham gostado e nas próximas iremos falar um pouco sobre inteligência artificial e bolsas.

aula11 demo


tutorial feito por RedDragon


Última edição por Janx em Sex 10 Set 2010, 20:36, editado 4 vez(es) (Motivo da edição : adição da demo)
reddragon
reddragon

Data de inscrição : 19/03/2008
Reputação : 0
Número de Mensagens : 267
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Re: Aula 11 – Bater em você ate você morrer parte 2

Mensagem por Dancity Dom 15 Mar 2009, 19:05

Mais um tuto sensacional pelo nosso amigo reddragon!

Continue assim! Vai ajudar d+ no rpg!
Dancity
Dancity

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 11/01/2009
Reputação : 8
Número de Mensagens : 1339
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Re: Aula 11 – Bater em você ate você morrer parte 2

Mensagem por patoki Sex 17 Abr 2009, 13:27

Sim, seus tutos sao realmente um espectaculo, gostaria que postasse mais!fico a espera
avatar
patoki

Data de inscrição : 19/12/2008
Reputação : 0
Número de Mensagens : 175
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Re: Aula 11 – Bater em você ate você morrer parte 2

Mensagem por xxxAKIRAxxx Dom 26 Abr 2009, 18:16

Exelente!!!
Ótimo!!!
esperando pelas proximas aulas ^___^
xxxAKIRAxxx
xxxAKIRAxxx

Data de inscrição : 04/02/2009
Reputação : 1
Número de Mensagens : 108
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Muito bom!

Mensagem por Devil-Kai Sáb 13 Jun 2009, 23:24

reddragon, sou novo no forum, mas vi todas as aulas e aguardo anciosamente por mais!!!
parabéns! Very Happy
Devil-Kai
Devil-Kai

Data de inscrição : 13/06/2009
Reputação : 0
Número de Mensagens : 7
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Ajuda!!!

Mensagem por Devil-Kai Dom 14 Jun 2009, 18:21

Eu estou com um problema, eu estou tentando fazer com que quando eu me aproxime do inimigo ele me bata, eu até crie um hp para o obj_player, mas eu não consigo fazer o inimigo atacar automaticamente! Se alguem puder me ajudar. Happy

Obrigado!
Devil-Kai
Devil-Kai

Data de inscrição : 13/06/2009
Reputação : 0
Número de Mensagens : 7
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty !

Mensagem por Devil-Kai Seg 15 Jun 2009, 12:25

Ja achei a solução!!! Obrigado!

https://gmbr.forumeiros.com/perguntas-respostas-f10/ajuda-com-ataque-do-inimigo-t3020.htm?highlight=inimigo




Rolling Eyes Me desculpe os posts consecutivos, não farei novamente! Rolling Eyes


Última edição por Devil-Kai em Seg 15 Jun 2009, 21:15, editado 1 vez(es)
Devil-Kai
Devil-Kai

Data de inscrição : 13/06/2009
Reputação : 0
Número de Mensagens : 7
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Re: Aula 11 – Bater em você ate você morrer parte 2

Mensagem por RKNF1995 Seg 15 Jun 2009, 16:58

amigo evite posts duplos ou triplo cliquem em editar flws
RKNF1995
RKNF1995

Data de inscrição : 19/07/2008
Reputação : 6
Número de Mensagens : 1257
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.rknf1995.blogspot.com

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Re: Aula 11 – Bater em você ate você morrer parte 2

Mensagem por edsondiamantino Qua 11 Ago 2010, 13:49

cara ficou muito bom mesmo....

agora ainda fiquei com uma dúvida...

como fazer o player perder a vida... pois já tentei mas não consegui...

valeu um abraço...
edsondiamantino
edsondiamantino

Data de inscrição : 31/05/2010
Reputação : 0
Número de Mensagens : 17
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Re: Aula 11 – Bater em você ate você morrer parte 2

Mensagem por rafael3do Seg 08 Ago 2011, 12:39

edsondiamantino
ficou a duvida aew fi pq tipo tu nn tem barra de vida e nem perde pq mob nn ataca eu tbm qeria saber como fazer isso tipo colisao no mob e vc apanha axo q se pega o codigo de atak e joga como o de colisao torncando mob por player da nem sei mas tenta
rafael3do
rafael3do

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 07/08/2011
Reputação : 0
Número de Mensagens : 119
Prêmios : Aula 11 – Bater em você ate você morrer parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.equipe3do.blogspot.com

Ir para o topo Ir para baixo

Aula 11 – Bater em você ate você morrer parte 2 Empty Re: Aula 11 – Bater em você ate você morrer parte 2

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos