[Ayuda] con Respawn...
#1

Buenas a Todos, Quiera saber como puedo poner en un comando simple, de Respawn para vehiculos, que no respawnee los vehiculos con pasajeros.

Код:
	if(!strcmp(cmdtext, "/Respawn", true))
	{
        for(new i = 1; i <= MAX_VEHICLES; i++)
        {
            SetVehicleToRespawn(i);
        	return 1;
        }
		return 1;
	}
Desde ya muchas gracias.
Reply
#2

Puedes usar un loop que detecte todos los jugadores y la funcion IsPlayerInAnyVehicle
Reply
#3

Aca te dejo esta funcion simple para detectar si el auto esta ocupado


pawn Код:
stock IsVehicleOccupied(vehicleid)
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER || GetPlayerState(i) == PLAYER_STATE_PASSENGER)
    {
    if(GetPlayerVehicleID(i) == vehicleid)
    {
    return 1;
    }
    }
    }
    return 0;
}
Reply
#4

Quote:
Originally Posted by [Nikk]
Посмотреть сообщение
Aca te dejo esta funcion simple para detectar si el auto esta ocupado


pawn Код:
stock IsVehicleOccupied(vehicleid)
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER || GetPlayerState(i) == PLAYER_STATE_PASSENGER)
    {
    if(GetPlayerVehicleID(i) == vehicleid)
    {
    return 1;
    }
    }
    }
    return 0;
}
esta es mejor:

pawn Код:
IsVehicleBusy(vehicleid)
{
    for(new i; i<GetMaxPlayers(); i++)
        if(IsPlayerConnected(i) && IsPlayerInVehicle(i, vehicleid))
            return 1;
    return 0;
}
Reply
#5

Es casi lo mismo, nada mas que la tuya se puede decir que esta "mas simplificada", pero bien ^^
Reply
#6

Quote:
Originally Posted by [Nikk]
Посмотреть сообщение
Es casi lo mismo, nada mas que la tuya se puede decir que esta "mas simplificada", pero bien ^^
te olvidaste de chequear si el player esta o no conectado, algo basico que puede generar bugs.
Reply
#7

Gracias a Todos, peero utilice la forma de davidxxx

Gracias a Todos igual .

Код:
	if(!strcmp(cmdtext, "/Respawn", true))
	{
        new bool:EnVehiculo[MAX_PLAYERS];
        for(new i; i <GetMaxPlayers(); i++)
        {
	         if(IsPlayerInAnyVehicle(i))
			 {
			      EnVehiculo[GetPlayerVehicleID(i)] = true;
			 }
	    }
        for(new v = 1; v <= MAX_VEHICLES; v++)
        {
             if(!EnVehiculo[v]) SetVehicleToRespawn(v);
             {

			      GameTextForAll("~w~ Vehiculos Respawneado", 5000, 3);
             }
        }
		return 1;
	}
Reply
#8

pawn Код:
if(strcmp(cmd, "/respawnthiscar", true) == 0 || strcmp(cmd, "/rtc", true) == 0) // by LordMan
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pAdmin] < 2 )
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   you are not authorized to use that command!");
                return 1;
            }
            if(IsPlayerInAnyVehicle(playerid))
            {
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(string, 256, "AdmWarning: %s has just respawned vehicle id %d.",sendername,GetPlayerVehicleID(playerid));
                ABroadCast(COLOR_YELLOW,string,1);
                SetVehicleToRespawn(GetPlayerVehicleID(playerid));
                RemovePlayerFromVehicle(playerid);
                StopAudioStreamForPlayer(playerid);
                SendClientMessage(playerid, COLOR_GREY, "   Vehicle Respawned !");
            }
        }
        return 1;
    }
Reply
#9

Aca Estoy de vuelta, :S, el comando que hice yo anda pergeecto solo que sale el meensaje SERVER: Unknown command. Como lo soluciono ? :S
Reply
#10

Como termina tu callback de OnPlayerCommandText?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)