¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3396 miembros registrados.
El último usuario registrado es Discorded.

Nuestros miembros han publicado un total de 79807 mensajes en 11256 argumentos.
Navega con Google Chrome
[DESCARGA]

[RMMV] Problema con formulas de daño

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RMMV [RMMV] Problema con formulas de daño

Mensaje por Leon8810 el 2016-10-23, 22:40

hola a todos hace poco empecé hacer un remake de un juego, pero me encontré con un problemas a realizar el sistema de batalla lo dividiré en puntos.

1. No encuentro la forma para que si el ataque es menor que la defensa  el daño mínimo sea 1 por ejemplo:
*Skill Atake = a.atk * 4 - b.def * 2
              Atk.Propio = 2 ------ Def.Enemigo = 4

Esto seria igual a 4*2= 8 - 2*4=8 = 0

0 es el daño final pero lo que quiero es que el daño mínimo sea 1 y que nunca sea 0, por que al subir lv el personaje subiría la def y los monstruos de bajo lv serian completamente inútiles.

2. Siguiendo la formula anterior pregunto si ay alguna forma de que hagan una mínima cantidad de daño. dependiendo de la def.que tenga el heroe que se esta controlando, por ejemplo que a veces el daño minimo sea 1 y otras veces 2 etc.

3.Necesito una formula para que si tengo hago 6 de daño y el monstruo tiene 7 HP al atacarlo no le baje los 6 HP directamente sino que varié el daño y a veces haga 5 o 4 y otras veces 7 u 8. ( creería yo que tiene que ver con la agilidad para golpear menos y el critico para golpear mas pero no encuentro la formula correcta T_T )

Leon8810
Iniciado
Iniciado

0/3

Créditos 2

Gracias : 2

Volver arriba Ir abajo

RMMV Re: [RMMV] Problema con formulas de daño

Mensaje por Wecoc el 2016-10-24, 07:06

1. Prueba con ésto: Math.max( a.atk * 4 - b.def * 2 , 1 )

Math.max devuelve el máximo de los dos. Normalmente será la fórmula pero si saliera 0 o negativo el máximo sería 1.

2. Lo mismo que antes pero en vez del 1 otra fórmula. Aunque el 1 puede seguir estando.

Ejemplo A: Máximo entre ataque * 4 - defensa * 2 y ataque * 2 - defensa: Math.max( a.atk * 4 - b.def * 2 , a.atk * 2 - b.def , 1 )
Ejemplo B: Mínimo entre ataque * 4 - defensa * 2 y ataque * 2 - defensa: Math.max( Math.min( a.atk * 4 - b.def * 2 , a.atk * 2 - b.def ) , 1 )

3. Es cuestión de añadir cierta variación a la fórmula, por ejemplo si quieres que la variación sea la agilidad / 4 yo lo haría así:

a.atk * 4 - b.def * 2 + Math.randomInt((a.agi / 8) +1) - Math.randomInt((a.agi / 8) +1)

Suponiendo que la agilidad es 32, agi / (4 / 2) = agi / 8 = 4;  Math.randomInt((a.agi / 8) +1) puede valer 0, 1, 2, 3, 4 (ese +1 es para que llegue hasta el 4, si no sa salta el último número y llegaría solo hasta 3).

Por lo tanto si el daño sin variación es 100, con esos dos random uno sumando y el otro restando puede salir un máximo de 104 y un mínimo de 96, lo que da una variación de agilidad / 4 = 8 entorno al daño original. En resumen, en la fórmula se usa un random con la mitad de la variación que quieres definir, pero sumando una vez y restando otra para hacer una variación total igual a la que querías entorno al valor original.

Esa sería la fórmula bruta para agregar variación, pero me sorprende que donde defines la fórmula en la base de datos no te dé una opción más cómoda de agregar variación.

Más info aquí: http://www.rpgmakercentral.com/topic/36290-damage-formulas-101-mv-edition/

Wecoc
Administrador
Administrador



Créditos 8272

Gracias : 372

Volver arriba Ir abajo

RMMV Re: [RMMV] Problema con formulas de daño

Mensaje por Leon8810 el 2016-10-26, 14:40

Spoiler:

Wecoc escribió:1. Prueba con ésto: Math.max( a.atk * 4 - b.def * 2 , 1 )

Math.max devuelve el máximo de los dos. Normalmente será la fórmula pero si saliera 0 o negativo el máximo sería 1.

2. Lo mismo que antes pero en vez del 1 otra fórmula. Aunque el 1 puede seguir estando.

Ejemplo A: Máximo entre ataque * 4 - defensa * 2 y ataque * 2 - defensa: Math.max( a.atk * 4 - b.def * 2 , a.atk * 2 - b.def , 1 )
Ejemplo B: Mínimo entre ataque * 4 - defensa * 2 y ataque * 2 - defensa: Math.max( Math.min( a.atk * 4 - b.def * 2 , a.atk * 2 - b.def ) , 1 )

3. Es cuestión de añadir cierta variación a la fórmula, por ejemplo si quieres que la variación sea la agilidad / 4 yo lo haría así:

a.atk * 4 - b.def * 2 + Math.randomInt((a.agi / 8) +1) - Math.randomInt((a.agi / 8) +1)

Suponiendo que la agilidad es 32, agi / (4 / 2) = agi / 8 = 4;  Math.randomInt((a.agi / 8) +1) puede valer 0, 1, 2, 3, 4 (ese +1 es para que llegue hasta el 4, si no sa salta el último número y llegaría solo hasta 3).

Por lo tanto si el daño sin variación es 100, con esos dos random uno sumando y el otro restando puede salir un máximo de 104 y un mínimo de 96, lo que da una variación de agilidad / 4 = 8 entorno al daño original. En resumen, en la fórmula se usa un random con la mitad de la variación que quieres definir, pero sumando una vez y restando otra para hacer una variación total igual a la que querías entorno al valor original.

Esa sería la fórmula bruta para agregar variación, pero me sorprende que donde defines la fórmula en la base de datos no te dé una opción más cómoda de agregar variación.

Más info aquí: http://www.rpgmakercentral.com/topic/36290-damage-formulas-101-mv-edition/



XD la verdad hablas muy tecnico y no logro entender mucho XDDD pero probare las formulas a ver q sale por lo menos la primera q es la q mas necesito lol!  de todas maneras gracias por tu ayuda notworthy

mira estube probando la formula la primera, y use esto :

Math.max(a.atk *1-b.def *1 , 1)

mi heroe tiene 3 def
el enemigo tiene 5 atk

y me toco modificar la formula por q al hacerlo a.atk *4-b.def *2 como estaba original mente me bajaba mucho la vida con 5*4= 20atk me baja 14 de vida por q el heroe alcanza a tener 3*2= 6def.

el punto es que al dejar la formula  Math.max(a.atk *1-b.def *1 , 1) por que 5*1 = 5atk y 3*1= 3def lograba emparejar un poco el daño, el punto es que la formula a veces me hace daño de 2 otras 3 otras 1, no entiendo por que? no tiene que dar siempre un daño de 2?  sera que esta sumando ese 1 que pusiste o no se u_u ?

pdt: si funciona con una def mas alta el daño si llega a ser 1 pero es igual al problema de arriba a veces me hace 2 de daño, no se que estará efectuando el problema dejo unas imágenes de muestra

Formula:





Daño:





Leon8810
Iniciado
Iniciado

0/3

Créditos 2

Gracias : 2

Volver arriba Ir abajo

RMMV Re: [RMMV] Problema con formulas de daño

Mensaje por Contenido patrocinado Hoy a las 05:01


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

Permisos de este foro:
No puedes responder a temas en este foro.