O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Dúvida sobre calculo de dano

Iniciado por Senaka, 09/04/2018 às 16:39

09/04/2018 às 16:39 Última edição: 10/04/2018 às 08:18 por Corvo
Basicamente o titulo ja diz tudo, alguém ai sabe informar a base de calculo de dano no RMXP? Queria usar isto para equilibrar o game que estou desenvolvendo.

Encontrei algumas formulas para o calculo de dano, seja para ataque básico ou habilidades, porém, talvez eu tenha usado de maneira incorreta. Se alguém souber por favor gostaria de uma ajuda com isso  :ded:

09/04/2018 às 17:04 #1 Última edição: 09/04/2018 às 17:17 por Ellye
Citação de: Senaka online 09/04/2018 às 16:39
Basicamente o titulo ja diz tudo, alguém ai sabe informar a base de calculo de dano no RMXP? Queria usar isto para equilibrar o game que estou desenvolvendo.

Encontrei algumas formulas para o calculo de dano, seja para ataque básico ou habilidades, porém, talvez eu tenha usado de maneira incorreta. Se alguém souber por favor gostaria de uma ajuda com isso  :ded:
A formula padrão do RPG Maker é bem simplista, é a formula usada nos Dragon Quest antigos.

Para ataques normais ("a" é o atacante, "b" é o alvo):

DANO = (a.atk - (b.pdef / 2)) * (20 + a.str) / 20

Com variance de ± 15%.

Para skills, troque o a.atk pelo Skill Power, e use os ratios que voce marcar na skill ao  invés do rate 100 para STR. Use as defesas conforme o que voce marcar no database também. A formula completa de skill ficaria algo tipo:

DANO = (Skill Power + a.atk*atkF/100 - b.pdef*pdefF/200 - b.mdef*mdefF/200) * (20 + (a.str*strF/100) + (a.dex*dexF/100) + (a.int*intF/100) + a.agi*agiF/100)) / 20

Com variance configuravel na tela de variance lá.




EXEMPLOS:

Vamos supor que o Glauberson está atacando o Jovair.

Glauberson tem 40 de STR e 30 de ATK.
Jovair tem 50 de Physical Defense.

DANO = (a.atk - (b.pdef / 2)) * (20 + a.str) / 20
DANO = (30 - (50 / 2)) * (20 + 40) / 20
DANO = (30 - 25) * 60 / 20
DANO = 5 * 60 / 20
DANO = 15

Com variance de 15%, ou seja: 12.75 até 17.25.




Agora vamos supor que Glauberson está usando uma skill contra Jovair.
A skill tem as seguintes propriedades:
ATK-F: 50%
STR-F: 50%
INT-F: 100%
POWER: 50
PDEF-F: 20%
MDEF-F: 80%

Glauberson continua tendo 40 STR e 30 ATK. Sua INT é 50.
Jovair continua tendo 50 PDEF, e possui 30 MDEF.

O resultado será:

DANO = (Skill Power + a.atk*atkF/100 - b.pdef*pdefF/200 - b.mdef*mdefF/200) * (20 + (a.str*strF/100) + (a.dex*dexF/100) + (a.int*intF/100) + a.agi*agiF/100)) / 20
DANO = (50 + 30*50/100 - 50*20/200 - 30*80/200) * (20 + (40*50/100) + 0 + (50*100/100) + 0) / 20
DANO = (50 + 15 - 5 - 12) * (20 + 20 + 0 + 50 + 0) / 20
DANO = 48 * 90 / 20
DANO = 216




Pessoalmente, eu acho essa formula HORRÍVEL. É terrivel de trabalhar com ela, qualquer diferença a mais do que o previsto entre POWER e DEFs causa efeitos catastroficos no resultado de dano. A progressão acaba precisando ser extremamente linear nos valores com pouco espaço para manobras. Se uma DEF for um pouco mais elevada do que o previsto para o momento, o personagem ou inimigo pode ficar literalmente imune a dano. Terrível.

@Ellye caramba, eu nem imaginava, eu inventei uma simulação do meu CBS (Custom Battle System) feito por eventos.

O que além dessa fórmula ainda tem os atributos de elementos e tipo de armas que é outra coisa complexa.

Muito obrigado pela fórmula.

É, tem a multiplicação por vulnerabilidade / resistência elemental, tem a chance de acerto e esquiva, tem a chance de critico...

Citação de: Ellye online 09/04/2018 às 17:04
A formula padrão do RPG Maker é bem simplista, é a formula usada nos Dragon Quest antigos.

Para ataques normais ("a" é o atacante, "b" é o alvo):

DANO = (a.atk - (b.pdef / 2)) * (20 + a.str) / 20

Com variance de ± 15%.

Para skills, troque o a.atk pelo Skill Power, e use os ratios que voce marcar na skill ao  invés do rate 100 para STR. Use as defesas conforme o que voce marcar no database também. A formula completa de skill ficaria algo tipo:

DANO = (Skill Power + a.atk*atkF/100 - b.pdef*pdefF/200 - b.mdef*mdefF/200) * (20 + (a.str*strF/100) + (a.dex*dexF/100) + (a.int*intF/100) + a.agi*agiF/100)) / 20

Com variance configuravel na tela de variance lá.




EXEMPLOS:

Vamos supor que o Glauberson está atacando o Jovair.

Glauberson tem 40 de STR e 30 de ATK.
Jovair tem 50 de Physical Defense.

DANO = (a.atk - (b.pdef / 2)) * (20 + a.str) / 20
DANO = (30 - (50 / 2)) * (20 + 40) / 20
DANO = (30 - 25) * 60 / 20
DANO = 5 * 60 / 20
DANO = 15

Com variance de 15%, ou seja: 12.75 até 17.25.




Agora vamos supor que Glauberson está usando uma skill contra Jovair.
A skill tem as seguintes propriedades:
ATK-F: 50%
STR-F: 50%
INT-F: 100%
POWER: 50
PDEF-F: 20%
MDEF-F: 80%

Glauberson continua tendo 40 STR e 30 ATK. Sua INT é 50.
Jovair continua tendo 50 PDEF, e possui 30 MDEF.

O resultado será:

DANO = (Skill Power + a.atk*atkF/100 - b.pdef*pdefF/200 - b.mdef*mdefF/200) * (20 + (a.str*strF/100) + (a.dex*dexF/100) + (a.int*intF/100) + a.agi*agiF/100)) / 20
DANO = (50 + 30*50/100 - 50*20/200 - 30*80/200) * (20 + (40*50/100) + 0 + (50*100/100) + 0) / 20
DANO = (50 + 15 - 5 - 12) * (20 + 20 + 0 + 50 + 0) / 20
DANO = 48 * 90 / 20
DANO = 216




Pessoalmente, eu acho essa formula HORRÍVEL. É terrivel de trabalhar com ela, qualquer diferença a mais do que o previsto entre POWER e DEFs causa efeitos catastroficos no resultado de dano. A progressão acaba precisando ser extremamente linear nos valores com pouco espaço para manobras. Se uma DEF for um pouco mais elevada do que o previsto para o momento, o personagem ou inimigo pode ficar literalmente imune a dano. Terrível.

Agradeço pela ajuda Ellye, deu uma noção sobre o que eu queria fazer, porém, acabo de perceber que o sistema Abs (Xas Hero) Tem sua própria formula modificada então terei que estudar ela, mas, o que você me passou me abriu uma noção.  :*-*: