bueno chicos os comento un pokito....tengo un boton d atake basico que kita 5 d vida a los enemigos... lo que quiero.. eske NO le kite  5 si no entre 4 y 6 por ejemplo...tengo estadisticas d fuerza defensa magia y agilidad... cuantas mas agilidad mas criticos realizarar y mascrapido sera... mas fuerza pegara mas fuerte... como hago... para que cuanta mas fuerza mas daño haga?  no se como ponerselo.. estaba pensando ponerle que le restara al enemigo en la vida lo que tengo d fuerza...  pero asi no avria golpes criticos y siempre aria el mismo daño...  ademas pondre objetos que aumnten estas estadisticas...  lo que realmnte quiero acer esque cuantas mas fuerza mas daño haga... como reflejo eso para kitarle la vida al enemigo?  y como hago... para que el daño k reciba no sea fijo x ejemplo en vez d 5 pues entre 4 y 6 no podria ser aleatorio... porke si no el k tuviera mucha agilidad no le valdria d nada pues cuanta mas agilidad mas poisibilidades d hacer mayores daños... se k suena muy dificil o que yo m esplico como el culo... pero quien mejores que ustedes que son unos cracks!! gracias dsde ya por leerlo.
El limite lo pone nuestra imaginacion

Si lo que te interesa es hacer un daño aleatorio, tenemos la función "random(x)", por lo que te pondré un ejemplo:
Daño total: potencia*ataque/defensa+random(nivel)+1

Como random puede dar decimales, complementalo con floor(x), que hará redondeo a la baja: floor(random(x))

#2 Junio 13, 2014, 12:20:37 PM Ultima modificación: Junio 13, 2014, 01:05:15 PM por chute666
pero no podria ser aleatorio xk dependeria de la agilidad... cuanta mas agilidad mas posibilidades de critico tendria.. eso es lo que me desorienta...

el ataque basiko tambien depende de la fuerza.. todos empiezan con 15 d fuerza agilidad etc.. y cada cosa afecta.. x ejemplo cuanta mas magia mas mana y mas rapido  se regenera... lo que no consigo entender hacer o yevar a cabo es eso.. que cuanta mas agilidad tenga mayores posibilidades de hacer un critiko... y cuanta mas fuerza pues que mas daño haga... seria parecido al sistema del wow... se que me complico la vida yo solo... pero si somos sinceros un juego bien currado atrae mucho mas

esto es lo que tengo en press control:

if atacar=0 and global.id_enemigo !=0 {
global.id_enemigo.vida-=5
//(aqui tengo para que se dibuje la animacion del ataque)
atacar=1;
{alarm[0]=20;}
}
El limite lo pone nuestra imaginacion

#3 Junio 13, 2014, 03:18:38 PM Ultima modificación: Junio 13, 2014, 03:25:59 PM por Marth
Entonces, quieres añadir conceptos como que aleatoriamente pasen efectos como que el ataque salga crítico y se incremente el daño.
Supongamos que si sale critico, el daño se deba duplicar. Entonces:

Daño: potencia*ataque/defensa+random(nivel)+1
if(randmon(100)<(agilidad_atacante+probabilidad_critico-agilidad_blanco)) daño*=2
vida_enemigo-=daño

Y viendo tu código, cuando veo que pones "vida-=5", me extraña porque eso es un daño fijo sin intervencion de atributos.
Ademas, has puesto en el condicional "vida!=0", quedras decir "vida<1", porque con lo otro si la vida de un enemigo se queda a -1 por ejemplo, seguirá en pie.

este es el ejemplo que me diste:
Daño: potencia*ataque/defensa+random(nivel)+1
if(randmon(100)<(agilidad_atacante+probabilidad_critico-agilidad_blanco)) daño*=2
vida_enemigo-=daño

lo que yo deberia acer entonces seria esto?:


if atacar=0 and global.id_enemigo !=<1 {potencia*ataque/defensa+random(nivel)+1// potencia poner mi global fuerza
if(randmon(100)<(agilidad_atacante+probabilidad_critico-agilidad_blanco)) daño*=2// el enemigo no tendria agilidad pues son IA asique solo seria  agilidad sin lo del atacante, y tengo que crear otra variable global para los criticos, como le pongo para que haya un porcentaje de acierto? por ejemplo... que de cada 10 golpes 1 sea critico?  hacer por ejemplo... supongo que hacer uan aleatoria entre 1/10.. pero como aumento eso?  al poner el daño*2 seria el golpe critico...
global.id_enemigo.vida-=daño
//(aqui tengo para que se dibuje la animacion del ataque)
atacar=1;
{alarm[0]=20;}
}
y supongo que seria eso mas o menos no? perdona por marear, esque quiero entenderlo y no solo que me lo digan  copiar y pegar, asi yo en un futuro tambien podre ayudar ^^
El limite lo pone nuestra imaginacion

Desarrolla tu sistema de combate ANTES EN PAPEL

Sólo cuando tengas cada formula bien definida (ataque, fuerza, daño, defensa, agilidad, aumento de nivel, etc, etc.) lo pasas a codigo.

Para simular el porcentaje de acierto de un crítico:

prob_critico = 10                            //  1/10 de probabilidad (En mi experiencia 1/10 es bastante alto para el comienzo del juego, pero aquí cada quien lo ajusta a su gusto)
critico = 0                                     //  1 = se puede hacer daño crítico; 0 = no hay daño crítico

if (irandom_range(1, prob_critico) == 1)    // el número a la derecha de == puede ser cualquier número del 1 al 10, la probabilidad es la misma.
     critico = 1                   
else
     critico = 0

//formula hipotética de ataque, sólo para propósitos ilustrativos:
ataque = str + bonus_str + atk_arma + critico*(str - luck)




Perdon por tardar chicos e estado dandole buelyas.. Al final tendre k acer un par d variables mas para los ataques... X ejemplo armor k aumnte al ekipar ropa etc...
Bueno lo que e pensado x ejemplo para un ataque basiko seria esto:
Crear uja variable global yamada... Ataque_basico
y el daño con esa erma seria...
(daño del arma) 3-5 mas un 10% d la fuerza... Mas la agilidad.. Que sera la que nos proporcione la posibilodad d critico... Are lo siguiente... 100d critico seria lo maximo...
Enpezarian todos con 1 d fritico.. Cuanta mas agilidad mayor posibilidad d critico...
Ahora bien.. Estoi viendo que me kedan muuchas cosas como aleatorias o cosaa que no acabo muy bien de entender.. Y se que no tiene k ser tan complicado como parece x ejemplo.. En el ataque basico.. (es un boton) pongo el codigo ese? (el cual aun n estoi muy seguro como realizar) si no para no complicarme tmb podria poner un daño fijo al arma... Ya estan las variables x la fuerza.. Y los critikos... Si podeis ayudarme gracias
El limite lo pone nuestra imaginacion

Bueno chicos un.par d dudas...
El if..irandom_range... Etc etc donde deberia ponerlo¿ en el boton d atake¿
luego .. Deberia crear una variable global llamada x ejemlo...
Ataque basico... Y de esta acer el codigo de la fuerza el critico etc¿ asi luego al restarle la vida solo deberia poner la variable global d ataque basico y no todo el codigo...
Y otra pregunta mas... Como puedo ver que daño le estoi realizando al enemigo¿ e conseguido poniendole draw text "id.enemigo -=daño" o algo por el estilo... Pero los numeros se quedaban en la pantalla y no desaparecian
El limite lo pone nuestra imaginacion

el cálculo de crítico se puede hacer en el botón de ataque. o en otros lados, el detalle es hacerlo antes de que se calcule la fórmula de daño total y se reste vida al enemigo.

En mi juego tengo un script que calcula todas las fórmulas de combate, y lo llamo cuando el arma hace contacto con el enemigo. El despliegue del daño que recibe el enemigo enemigo necesita su alarma para que después de un tiempo desaparezca.

Entonces en vez d acer una variable global con el atake basiko ago un scrypt?
X ejemplo... Yamo al scrytp... Ataque_basico... Y en el codigo... Pongo por ejemplo... Daño basico = fuerza+daño del arma+probabilidad d critico
seria algo asi?
Lo que pasa... Esque e visto que queda muy bestia... Me espliko.
Se empieza con 15 d cada atributo... Asike a nivel 1 seria 15  d fuerza
+....4/6 del daño del arma ya serian 21 d daño + una posibilidad d critico seria 42 y los primeros enemigos tienen... 20 d vida.... Hahahaha pero lo k are sera esto... Subirle la vida a 50.. Y la agilidad are esto... Al 20 d agilidad k tenga un 20% d probabilidad d critiko... A 30 d agilidad 25% +0,2 d velocidad d movimiento... Are una especie d tabla... Asi no m complikare tanto...  Ademas pobdre algun objeto k de probabilidsd d critiko etc etc ^^ si teneis algun comentario o algo con lo k ayudar os lo agradecere
El limite lo pone nuestra imaginacion

Por eso sugerí desarrollar las fórmulas primero en papel, porque tienes que afinarlas para que no te quede un sistema de combate desbalanceado, por ejemplo, el crítico no tiene por que hacer el doble de daño forzosamente, sino que puede variar según la agilidad o la suerte. 15 de cada atributo se me hace mucho, para empezar, se supone que dependiendo del personaje, varían sus atributos y difícilmente todos están al parejo al comienzo. Al final, no hay reglas escritas en piedra sobre cómo hacer las fórmulas

Lo de usar un script es una opción, no es obligatorio. A mi se me hace más limpio llamar al script cuando se ataca que poner todo el amasijo de fórmulas en el evento (en mi caso son casi 200 líneas en el dichoso script, divididas en cálculo de afinidades con elementos, bonus de items equipados, subida de nivel si se alcanza la experiencia necesaria, y otras cosillas relacionadas con el combate, además que el jugador puede tener un arma distinta en cada mano, una cosa enredada y caprichosa)