Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Asterth en Julio 01, 2020, 09:12:40 am

Título: STATS RPG
Publicado por: Asterth en Julio 01, 2020, 09:12:40 am
Ok, voy al punto, trato de hacer estadisticas para mi juego RPG.

Tengo pensado que sea Ataque y Defensa sin ninguna variación.

Tenía pensado que según el stat defensa se sumaran los puntos de vida que me quitaran

e igual con el ataque, según el stat se sumaran puntos de daño.

Aquí mi pregunta, como hago que una variable según su numero se lo sume a otra?

Digamos que el ataque es 15, mi ataque base es de 1, quiero que la variable de ataque se sume a la de ataque base,  ¿alguna idea?
Título: Re:STATS RPG
Publicado por: Marth en Julio 01, 2020, 11:26:50 am
Por lo que entiendo, tienes un personaje que tiene 2 estadísticas, ataque y defensa. Y ese personaje puede equipar armas y armaduras que le aumentara ambas estadísticas, aparte de que la estadística de defensa influirá en los PS.

Yo lo que hago es que le daré al personaje otras 2 estadísticas, llamadas potencia y vitalidad, que serán su ataque y defensa totales. Es decir, cuando tu personaje este en combate, usaras exclusivamente la potencia y la vitalidad para determinar el daño que causará y recibirá.

Este será el script del ataque, que aparecerá tras subir de nivel o cambiar de arma:
potencia=ataque*2+arma.ataque

Este será el script de la defensa, para cuando subas de nivel o cambies de armadura:
vitalidad=defensa+armadura.defensa

Y por último el script de los PS máximos, para después de cada subida de nivel:
PS=15+defensa*7
Título: Re:STATS RPG
Publicado por: Asterth en Julio 01, 2020, 09:20:09 pm
Gracias, ¿sabes como hacer que ese calculo de Ataque por Potencia se reste a la variable de la vida del enemigo?
Título: Re:STATS RPG
Publicado por: Marth en Julio 02, 2020, 12:44:50 am
Te refieres a la formula de daño.
Lo que yo hago es primero calcular el daño base.
En el caso que nos ocupa, es muy simple:
base=atacante.potencia-atacado.vitalidad

Y una vez tenemos esto, le aplicamos una serie de multiplicadores.
Por ejemplo, igual queremos meterle al daño un factor aleatorio:
base=random_range(base*0.80,base*1.25)

Luego podrás añadirle otros factores, como resistencia elemental:
base*=atacado.resistencia[ataque.elemento]

Y lo último es redondear decimales:
if(base<1) base=1
else base=floor(base+random(1))


Y listo, solo queda restarle a los PS totales del enemigo el resultado de esta operación.