No Respawn en Una Zona
#1

Hola a todos!

Bueno, mi duda es sencilla. No consigo crear este comando y me gustarнa saber si alguien con mбs conocimientos me podrнa echar una mano. Mi objetivo es este ...

- Comando de respawn de No Usados (hasta aquн bien)
- Que este comando No Respawnee Los Autos en Una Zona especнfica:
Ej: Respawne los que no estйn usados, menos los no usados en la zona: 1292.232, -1234.9882, 13.25


Код:
if(strcmp(cmd, "/RespawnSinUso", true) == 0 || strcmp(cmd, "/rac", true) == 0) // by Ellis
	{
	  if(IsPlayerConnected(playerid))
	  {
	    if(PlayerInfo[playerid][pAdmin] < 3)
			{
			  SendClientMessage(playerid, COLOR_GRAD1, " No Autorizado para Usar el Comando!");
			  return 1;
			}
			new bool:unwanted[CAR_AMOUNT];
			for(new player=0; player<MAX_PLAYERS; player++)
   		{
      	if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
   		}
			for(new car = 1; car <= 440; car++)
			{
				if(!unwanted[car]) SetVehicleToRespawn(car);
			}
 			GetPlayerName(playerid, sendername, sizeof(sendername));
			format(string, sizeof(string), "Servidor: Todos Los Coches Sin Uso, Fueron Respawneados Por: %s.", sendername);
			BroadCast(COLOR_WHITE,string);
		}
		return 1;
	}
Esa es mi duda, he intentado hacerlo con funciones pero nada ... no me sale. He intentado con GetPlayerPos, pero no sй como detectar los vehiculos en esa Zona!! Si alguien me ayuda estarнa muy agradecido.

Gracias, Att: Zouke!


Reply
#2

Las tres coordenadas que nombraste indican un punto, no una zona. Te refieres a la zona alrededor de ese punto? Y si es asн, con cuanto radio?
Reply
#3

Si, es como un PlayerToPoint, pero para los vehнculos. (Las coordenadas esas estбn inventadas, son solo una referencia). Un rango de 20. Los vehiculos que esten en ese radio, no se respawneen!
Reply
#4

Esto deberнa servirte, cambia los defines de XZone YZone y ZZone. Usй defines y no variables ya que no afectan al rendimiento, se reemplazan automбticamente al momento de ser compilado el archivo.

pawn Код:
if(strcmp(cmd, "/RespawnSinUso", true) == 0 || strcmp(cmd, "/rac", true) == 0) // by Ellis
    {
      if(IsPlayerConnected(playerid))
      {
        if(PlayerInfo[playerid][pAdmin] < 3)
            {
              SendClientMessage(playerid, COLOR_GRAD1, " No Autorizado para Usar el Comando!");
              return 1;
            }
            new bool:unwanted[CAR_AMOUNT];
            for(new player=0; player<MAX_PLAYERS; player++)
        {
        if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
        }
       
        #define XZone 1292.232
          #define YZone -1234.9882
          #define ZZone 13.25
          #define Range 20
        new Float:pos[3];
            for(new car = 1; car <= 440; car++)
            {
              GetVehiclePos(car, pos[0], pos[1], pos[2]);
              if(pos[0] > XZone - Range && pos[0] < XZone + Range &&
                  pos[1] > YZone - Range && pos[1] < YZone + Range &&
                  pos[2] > ZZone - Range && pos[2] < ZZone + Range)
                  unwanted[car] = true;
                 
                if(!unwanted[car]) SetVehicleToRespawn(car);
            }
            #undef XZone
            #undef YZone
            #undef ZZone
            #undef Range
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), "Servidor: Todos Los Coches Sin Uso, Fueron Respawneados Por: %s.", sendername);
            BroadCast(COLOR_WHITE,string);
        }
        return 1;
    }
No lo testeй, pero deberнa funcionar.
Reply
#5

Me funcionу de 10, muchas gracias Zamaroht!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)