Hola.
Pues cree un script para el desplazamiento de un enemigo, que se dirija a un punto que le quede m?s cerca (y libre) al personaje. Pero cuando est? el juego en marcha y el enemigo en esa room actual el juego se traba  :-\ .
Les explico lo que tengo:
en el create del personaje est?n estas variables:
Citarxx=x
yy=y

en el step:
Citarif(xx=x and yy=y)
{
  //scr_ia_mov_bot3();
}
else
{
......
}
y el script es este:

Citar
var dir,x1,y1;
dir=0
//25
while(direction<360)
{
  x1=x+25*(seno(dir))
  y1=y-25*(seno(dir))
  if(place_free(x1,y1))
  {
    if(point_distance(x1,y1,obj_personaje.x,obj_personaje.y)<point_distance(xx,yy,obj_personaje.x,obj_personaje.y))
    {
      xx=x1
      yy=y1
    }
  }
  dir+=10
}

speed=3
direction=point_direction(x,y,xx,yy)

La verdad no veo el por qu? se traba el juego, el script solo se llama 1 vez y luego el enemigo prosigue a moverse  :-\ despu?s lo mismo.
Incluso intent? que la variable "dir" aumente en 20 pero ni as?.
Ustedes que dicen?  :-[

#1 Julio 09, 2010, 02:12:49 AM Ultima modificación: Julio 09, 2010, 02:16:01 AM por Alfonsos1
Citarwhile(direction<360)
{
 x1=x+25*(seno(dir))
 y1=y-25*(seno(dir))
 if(place_free(x1,y1))
 {
   if(point_distance(x1,y1,obj_personaje.x,obj_personaje.y)<point_distance(xx,yy,obj_personaje.x,obj_personaje.y))
   {
     xx=x1
     yy=y1
   }
 }
 dir+=10
}

es obio que se ba a trancar si pones:
while(direction<360)

y luego dentro del while nunca haces nada para que deje de ser cierta la condicion

no seria asi?: while(dir<360)

 XD seee. Ya lo not?.
Vaya error de novato, no?

Creo que mis cables se cruzaron y relacionaron dir con direction  :-[

Muchas gracias Alfonsos1