С этой функцией можно узнать, сидит ли кто-то из игроков на водительском месте указанного транспорта.
Код
stock InVehicleSeat(vehicleid)
{
for(new i, i < GetMaxPlayers(); i++) if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 0) return 1;
return 0;
}
Пример команды:
Код
if(strcmp("/test", cmdtext, true, 10) == 0)
{
for(new v; v < MAX_VEHICLES; v++)
{
switch(InVehicleSeat(v))
{
case 1: continue;
case 0: SetVehicleToRespawn(v);
}
}
SendClientMessageToAll(0xFFFFFFFF, "Администрация заспавнила весь свободный транспорт.");
return 1;
}
Можно и так:
Код
// функция
stock IsVehicleOccupied(vehicleid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == PLAYER_STATE_DRIVER) return true;
}
return 0;
}
// комманда
CMD:respawncars(playerid, params[])
{
for(new d = 0; d < MAX_VEHICLES; d++)
{
if(IsVehicleOccupied(d)) continue;
SetVehicleToRespawn(d);
}
SendClientMessageToAll(-1, "Весь пустой транспорт был заспавнен администратором");
return true;
}