[Ayuda] Duda con MoveObject
#1

Buenas,

Ando trabajando en un objecto que va de un lugar al otro, dicho objeto pasa por varios puntos especнficos, por medio de la activaciуn vнa comando. Quisiera saber como puedo hacer que dicho objeto pase por todos y cada uno de dichos puntos sin tener que hacerlo manualmente por comandos, y que dicho objeto vaya del punto 1, 2, culminando en el 3, y una vez allн pasado unos 10 segundos vaya en el orden opuesto. Asн teniendo un ciclo constante.

Код:
new obje1;

public OnFilterScriptInit()

{

obje1 = CreateObject(5837,-2249.50610,-1753.93384,488.00452,0.00,0.00,-69.89996);

}

public OnPlayerCommandText(playerid, cmdtext[])
{
   if (strcmp("/basla", cmdtext, true, 10) == 0)
   {
      MoveObject(obje1, -2249.50610,-1753.93384,488.00452, 10, 0.00,0.00,-69.89996);

      return 1;
         }
   if (strcmp("/basla2", cmdtext, true, 10) == 0)
   {
      MoveObject(obje1, -2247.07446,-1761.16809,488.00452, 10, 0.00,0.00,-69.89996);

      return 1;
   }

   if (strcmp("/basla3", cmdtext, true, 10) == 0)
   {
      MoveObject(obje1, -2191.17480,-1994.04797,254.54471, 10, 0.00,0.00,-69.89996);


   return 1;
   }
Muchas gracias.
Reply
#2

una muestra que puede utilizar



PHP код:
// TOP
new MoveTime[MAX_PLAYERS];



public 
OnPlayerCommandText(playerid, cmdtext[])
{
   if (
strcmp("/move", cmdtext, true, 10) == 0)
    {
        
MoveTime[playerid] = SetTimer("MovePosition1", 10000, false);
    }
    return 
1;
}



forward MovePosition1(playerid);
public 
MovePosition1(playerid) {
    
MoveObject(obje1, -2249.50610,-1753.93384,488.00452, 10, 0.00,0.00,-69.89996);
    
MoveTime[playerid] = SetTimer("MovePosition2", 10000, false);
    return 
1;
}

forward MovePosition2(playerid);
public 
MovePosition2(playerid) {
    
KillTimer(MoveTime[playerid]);
    
MoveObject(obje1, -2247.07446,-1761.16809,488.00452, 10, 0.00,0.00,-69.89996);
    
MoveTime[playerid] = SetTimer("MovePosition3", 10000, false);
    return 
1;
}

forward MovePosition3(playerid);
public 
MovePosition3(playerid) {
    
KillTimer(MoveTime);
    
MoveObject(obje1, -2191.17480,-1994.04797,254.54471, 10, 0.00,0.00,-69.89996);
    return 
1;
} 
Reply
#3

Podrнas usar esto, y no te complicas ni con timers ni variables extra:
PHP код:
new obje1;
public 
OnFilterScriptInit()
{
    
obje1 = CreateObject(5837,-2249.50610,-1753.93384,488.00452,0.00,0.00,-69.89996);
}
public 
OnPlayerCommandText(playerid, cmdtext[])
{
   if (
strcmp("/basla", cmdtext, true, 10) == 0)
   {
      
MoveObject(obje1, -2249.50610,-1753.93384,488.00452, 10, 0.00,0.00,-69.89996);
      return 
1;
   }
}
public 
OnObjectMoved(objectid)
{
    if(
objectid == (obje1 & 0xFFFF))
    {
        new 
index = obje1>>16;
        switch(
index)
        {
            case 
0: MoveObject(obje1 & 0xFFFF, -2247.07446,-1761.16809,488.00452, 10, 0.00,0.00,-69.89996);
            case 
1: MoveObject(obje1 & 0xFFFF, -2191.17480,-1994.04797,254.54471, 10, 0.00,0.00,-69.89996);
//          case 2: ...
        
}
        
obje1 += 0x10000;
    }
    return 
1;
} 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)