24.02.2013, 19:47
Hi, I want to know what can I do so that all vehicles in my server can respawn to the position they were when the server started after 5 minutes but not if they are occupied. how can I do it, please help me.
stock RespawnAllVehicles()
{
for (new i=0;i<MAX_VEHICLES;i++)
{
if (CanVehicleBeRespawned(i)) // If this returns 1 (no factors preventing the vehicle from being respawned as stated in "CanVehicleBeRespawned"), the vehicle will respawn
{
SetVehicleToRespawn(i);
}
}
}
stock CanVehicleBeRespawned(vehicleid)
{
new Float:X,Float:Y,Float:Z;
GetVehiclePos(vehicleid, X,Y,Z);
if (X == 0.0 && Y == 0.0 && Z == 0.0)
{
//Vehicle not created, returning 0
return 0;
}
for (new i=0;i<MAX_PLAYERS;i++)
{
if (IsPlayerConnected(i))
{
if (GetPlayerVehicleID(i) == vehicleid) return 0; // Someone is inside the vehicle, returning 0
}
}
return 1; // Vehicle is ready to be respawned, returning 1 :)
}
forward RespawnVehicles();
public OnGameModeInit()
{
SetTimer("RespawnVehicles", 300000, true);
}
public RespawnVehicles()
{
RespawnAllVehicles();
SendClientMessageToAll(-1, "All unoccupied vehicles successfully respawned");
}
stock IsVehicleOccupied(vehicleid)
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(GetPlayerVehicleID(i) == vehicleid) return 1;
}
return 0;
}
forward RespawnVehicles();
SetTimer("RespawnVehicles",300000,1);
public RespawnVehicles()
{
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(!IsVehicleOccupied(i))
{
SetVehicleToRespawn(i);
}
}
SendClientMessageToAll(-1,"Vehicles respawned.");
return 1;
}
pawn Код:
pawn Код:
pawn Код:
pawn Код:
|
Quickly written, should do the job
pawn Код:
|
stock RespawnAllVehicles()
{
for(new v = 1; v <= MAX_VEHICLES; v++)
{
for(new i = 0; i <= MAX_PLAYERS; i++;) if(IsPlayerInVehicle(i, v)) continue;
SetVehicleToRespawn(v);
}
}