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. :'(
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
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.