Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Chrom en Junio 26, 2014, 03:52:13 AM

Título: Crear criticos
Publicado por: Chrom en Junio 26, 2014, 03:52:13 AM
Hola  :D,me pueden ayudar en una duda que tengo para crear criticos en mi juego rpg de batalla por turnos?
Lo que quiero hacer es que cuando haya critico el ataque se multiplique por 2 mi codigo es este:
Citar
en el objeto control tengo
global.critico=0;
y en el player

step del player:
if global.critico=1{
instance_create(obj_personaje,0,120)//esto es para que salga una barra con la cara del personaje cuando haga critico
}
y en colision el arma con el enemigo
other.hp-=choose(choose(40,40,45,42),choose(40,10,44,50),choose(40,39,49,41),60)
instance_destroy()

:-[ por solo el momento tengo el codigo para las graficas xd ,necesito que me ayuden en eso colocar probabilidad para que ocurra critico y cuando colisione con el arma haga el doble de daño ,tengo que cambiar el choose por una variable de daño? por favor aydenme.  :'(
Título: Re:Crear criticos
Publicado por: penumbra en Junio 26, 2014, 04:14:29 AM
http://www.comunidadgm.org/preguntas-y-respuestas/sistema-de-ataque/msg99354/#msg99354 (http://www.comunidadgm.org/preguntas-y-respuestas/sistema-de-ataque/msg99354/#msg99354)

Sólo que la fórmula de daño sería algo como

dmg = atk + atk*crítico

Título: Re:Crear criticos
Publicado por: Guacusio en Junio 26, 2014, 04:15:41 AM
Independientemente de cómo decides la cantidad de daño que hace el arma (con un choose anidado, una cantidad aleatoria o lo que sea), una vez que defines el daño "normal", multiplícalo por global.critico+1:

other.hp-=(choose(choose(40,40,45,42),choose(40,10,44,50),choose(40,39,49,41),60))*(global.critico+1)

Si global.critico=0, el daño se multiplica por (0+1) y queda como "normal"; si global.critico=1, el daño se multiplica por (1+1) y queda doble, etc. (podrías hacer global.critico=2 y haría triple daño).

Si quieres generar un número aleatorio entre 2 valores para el daño, usa la función irandom_range. Por ejemplo:

other.hp-=irandom_range(10,60)*(global.critico+1)

Esto genera un daño aleatorio entre 10 y 60 y lo multiplica si es crítico.