public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
if (IsPlayerInAnyVehicle(killerid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(killerid));
else PlayerSpectatePlayer(playerid, killerid);
}
return 1;
}
// at the bottom of your script
stock GetRandomID()
{
new randn = random(MAX_PLAYERS);
if(IsPlayerConnected(randn)) return randn;
else
{
return GetRandomID();
}
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
if (IsPlayerInAnyVehicle(killerid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(killerid));
else PlayerSpectatePlayer(playerid, killerid);
}
else
{
if (IsPlayerInAnyVehicle(GetRandomID())) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(GetRandomID()));
else PlayerSpectatePlayer(playerid, killeridGetRandomID());
}
return 1;
}
Originally Posted by Thanatos
that won't check if player is alive. how can one spectate a player that is spectaing something? do another check with a global var like gSpectating[MAX_PLAYERS]
|
//at the top
new gSpectating[MAX_PLAYERS];
// at the bottom of your script
stock GetRandomID()
{
new randn = random(MAX_PLAYERS);
if(IsPlayerConnected(randn))
{
if(gSpectating[playerid] == 0)
{
return randn;
}
}
else
{
return GetRandomID();
}
}
public OnPlayerDeath(playerid, killerid, reason)
{
gSpectating = 1;
if(killerid != INVALID_PLAYER_ID)
{
if (IsPlayerInAnyVehicle(killerid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(killerid));
else PlayerSpectatePlayer(playerid, killerid);
}
else
{
if (IsPlayerInAnyVehicle(GetRandomID())) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(GetRandomID()));
else PlayerSpectatePlayer(playerid, killeridGetRandomID());
}
return 1;
}