Enero 14, 2010, 04:39:19 PM Ultima modificación: Enero 18, 2010, 08:14:46 AM por HansV90
?C?mo podr?a hacer que un enemigo alternara entre diferentes ataques? Pero que no me estuviera atacando siempre... Es decir, mientras se mueve por una room.

Hab?a pensado con alarmas pero no encuentro una manera l?gica de hacerlo, si tengo, las alarmas 1, 2, 3, 4 y 5 que alternara o volviera a la acci?n anterior que es solo moverse.

?alguna idea?

Siempre puedes hacer que ataque dependiendo del otro jugador, es decir.  ( Supongo que sera para tu pokemon ).

si la variable magia ( PP ) > Coste de lo que cuesta la habilidad, si esta mas lejos de X, Y usas lanzallamas ( ataque a distancia ). y si esta mas cerca uno fisico ( placaje ).

Para los ataques pasivos, siempre puedes poner que los haga cada X tiempo, o siempre que le quites cierta cantidad de vida.

Nose sin ideas no llebo mucho programando.

Espero que te sirvan

Kenoven.

hay muchas ,maneras, desde l?gicas hasta aleatorias, para usarlas de una manera l?gica (si cogemos por ejemplo un ejemplo de un combate pokemon) podemos tomar en cuenta ,la vida, el tipo de pokemon, dificultad etc, a trav?s de chequeos como:
if obj_pokemon.tipo="agua" {ejecuta un ataque de agua}, si son varios, toma como referencia la vida, o usa choose para hacerlo al alzar.
en cuanto mas variables tengas, mas inteligente sera la IA. en caso de otro tipo de juego, como rpg o plataformas, puedes chequear sobretodo la distancia etc.

CitarPero que no me estuviera atacando siempre...
puedes usar las alarmas, o puedes usar variables que hagan de contador. por ejemplo en este scrip:

//create
contador=0
//step:
contador+=1 // o lo que sea
if contador >= 30 // u otra cifra {contador=30}
//y cuando se ejecute la variable de ataque, por ejemplo en step
if atake_fuego=true
{
       if contador=30
       {
                 //se ejecuta el ataque
                 contador=0 el contador vuelve a 0 para que no se repita
                  atake_fuego=false // termina el ataque
        }
}

en teoria con esto la IA tendr?a que funcionar.
un saludo

M?s o menos me he enterado de lo que me habeis explicado pero a ver...

puedo usar esto por ejemplo - if obj_pokemon.tipo="agua" and y la distancia a la que est? y si estas dos cosas se cumplen pues que ataque, combinando ese tipo de cosas eso teniendo en cuenta la distancia y supongo que esto ir?a en step en un code todo valdr?a?

ahora por ejemplo si el enemigo est? cerca de mi, como evito que lo haga muchas veces seguidas?

Yo lo haria con 1 variable digamos, atacar

en el create acatar = true
cada vez que lanze 1 ataque --> atacar = false ---> activar 1 alarma ( XX steps ) --- > atacar = true

kda claro que solo ataca si atacar = true.

Yo lo haria asi, pero tengo poca experiencia en el GM, seguramente habra 1 forma mas "eficiente".

Espero k te sirva , Kenoven

Mira, hacer una IA se tarda lo suyo. Lo primero que deber?as hacer es organizarte, debes pensar cada uno de los casos que puede tener la IA.

Te recomiendo organizarte as?.

IA:

Estado: Atacando
Descripci?n: El enemigo ejecuta un ataque aleatorio entre los X posibles cada X tiempo y con X posibilidad de acierto.
Condiciones: Salud>50
//
Estado: Buscando
Descripci?n: El enemigo busca al acechante m?s cercano en un radio X, mientras se mueve por la pantalla.
Condiciones: Salud>50 ; Distancia del jugador>250

...

Una vez tengas planteada la IA y cada uno de sus estados, puedes dedicarte a programarla. :)

Cita de: Twister en Enero 15, 2010, 12:08:51 PM
Mira, hacer una IA se tarda lo suyo. Lo primero que deber?as hacer es organizarte, debes pensar cada uno de los casos que puede tener la IA.

Te recomiendo organizarte as?.

IA:

Estado: Atacando
Descripci?n: El enemigo ejecuta un ataque aleatorio entre los X posibles cada X tiempo y con X posibilidad de acierto.
Condiciones: Salud>50
//
Estado: Buscando
Descripci?n: El enemigo busca al acechante m?s cercano en un radio X, mientras se mueve por la pantalla.
Condiciones: Salud>50 ; Distancia del jugador>250

...

Una vez tengas planteada la IA y cada uno de sus estados, puedes dedicarte a programarla. :)

Creo que te puede servir ver el ejemplo del juego TREASURE que viene con GM7, ah? te persiguen varios enemigos donde avayas.

Saludos.
La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.

#7 Enero 16, 2010, 07:45:41 PM Ultima modificación: Enero 17, 2010, 03:36:18 PM por elviskelley
crea un script que sea cada ataque, crea otroa que sea analisis y seleccion de ataques (resumelo)
scrAsa();  las iniciales.
destro de este script llamaras a los distintos ataques, cual es la logica, por cada accion de ataque realisado, debera analizar cual seria el ataque mas eficas, y realizarlo, para eso cada ataque debe tener sus distintas propiedades, ejemplo.
ataque 1 : Pro: Este al llegar a auna distancia del jugador estalla lo que la explocion crea mayor posibilidad de darle al enemigo. contra: Tiene un tiempo de recarga de unos 10 segundos.
Ataque 2 : Pro: Rayo de ataque directo al jugador, de gran poder. contra: tiene corto alcanse, tiempo de retardo 3 segudos.
Ataque 3: Pro: Super rayo de ataque directo al jugador , a gran distancia. Contra: hace muy poco da?o, retardo 1 segundo.
Los retardos de cada ataque los controlas con una variable en false o true, y las alarm, si no sabes como usa esto alarm[0]=10*room_speed; (para el atak1). la distancia es logico con distance_to_object......
ahora explico estan los 03 script de scrAtk1(); scrAtk2(); scrAtk3();  y como digimos el script encargado de analizar el ataque correspondiente. scrAsa();
Como llamaria a cad script.
en el script scrAsa();
primero verificas la posibilidad del primer ataque, si esta a la distancia correcta, si l tiempo de retardo culmino (si la variable es true), y si esta a la vista (compara cordenadas X,Y) si es asi realiza este ataque, de lo contrario.
verifica el segundo ataque.
asi con cada ataque.
siempre inicia la verificaciones con el ataque mas fuerte, y por ultimo el mas debil.
Como puedes ver las estadisticas e los ataques es muy necesaria.
click aqui veras mas info de IA

vaya, en algunos temas tantas respuestas y en otros tan pocas...xD bueno mirar? entre las posibilidades que me habeis dado, gracias !