Página 1 de 1

[Dúvida] Sistema de ataque e esquiva por atributos

Enviado: Seg Ago 08, 2016 6:11 am
por AdrianoPpaula
Fala galerinha! Estou desenvolvendo um sistema de RPG para meu game e pintou uma dúvida cabulosa que não conseguimos resolver de jeito nenhum >_<. Colocamos um combate com sistema de atributos (força,resistência,agilidade,etc) esses atributos influenciará diretamente no combate. porém estamos com dificuldade em desenvolver a parte de ataque e esquiva. A ideia é fazer dessa maneira:

Se o atributo AGILIDADE do personagem for maior que o atributo ACERTO do inimigo, o personagem vai ter uma chance maior de esquivar do ataque sem sofrer dano. Enquanto isso se o acerto do inimigo for maior que a agilidade do personagem a chance do inimigo acertar vai ser maior. o problema é esse lance de "chance" como fazer isso?

Re: [Dúvida] Sistema de ataque e esquiva

Enviado: Seg Ago 08, 2016 10:59 am
por Superbomber
AdrianoPpaula escreveu:Fala galerinha! Estou desenvolvndo um sistema de RPG para meu game. 
???
Acho que na hora que você postou houve algum problema que sua mensagem foi cortada. Edite-a adicionando as informações necessárias para que possamos ajuda-lo.

Re: [Dúvida] Sistema de ataque e esquiva

Enviado: Ter Ago 09, 2016 2:18 am
por AdrianoPpaula
Desculpa ae é q tava no celular -/
agora consegui editar 

Re: [Dúvida] Sistema de ataque e esquiva por atributos

Enviado: Ter Ago 09, 2016 11:35 am
por Superbomber
Bem, bem, bem. Pensei em um sistema aqui, não sei se será adequado ao caso mas pelo menos lhe dará uma luz.

1) Utilize primeiramente o valor agilidade como uma porcentagem inicial para o desvio.  Não pense no acerto como um valor separado, apenas como um alterador das chances de desvio.

2.1) Pegue a diferença entre acerto e agilidade e subtraia/adicine diretamente da porcentagem de desvio.
Exemplo:

Código: Selecionar todos

// player.agilidade = 37 | acerto = 41
diferenca = plater.agilidade - acerto; // -4
chanceDesvio = player.agilidade + diferenca; // 33% de chance.
// lembra matemática? Mais com menos, menos. Mais com mais, mais.
OU

2.2) Utilize o valor acerto para subtrair tal porcentagem das chances de desvio.
Exemplo:

Código: Selecionar todos

// player.agilidade = 48 | acerto = 15
valorSubtracao = (player.agilidade * acerto) / 100; // 7.2
chanceDesvio = abs(player.agilidade - valorSubtracao); // %40 de chance.

Dois modos diferentes de fazer isso. Ah e se não sabe o que fazer com o valor chanceDesvio:  

Código: Selecionar todos

if(irandom(100) <= chanceDesvio) {
   superDesvioVidaLoka();
}
Bye.

Enviado: Qua Ago 10, 2016 1:59 pm
por AdrianoPpaula
caraaa vc ajudou muito mesmoo, tipo da pra utilizar esses dois modos em outras coisas do sistema, por exemplo o ataque crítico. Vou teabalhar dessa maneira e vê no que vai da kkk