rendered paste body
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[30];
new cid;
cmd = strtok(cmdtext, cid);
if (strcmp(cmd, "/spectate", true) == 0)
{
new targetid[256];
targetid = strtok(cmdtext, cid);
new targetid2 = strval(targetid);
new name[MAX_PLAYER_NAME];
GetPlayerName(targetid2, name, sizeof(name));
new string[48];
if (IsPlayerConnected(targetid2) && IsPlayerInAnyVehicle(targetid2))
{
new playervehicle = GetPlayerVehicleID(targetid2);
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, playervehicle, SPECTATE_MODE_NORMAL);
format(string, sizeof(string), "Spectating player: %s", name );
SendClientMessage(playerid, 0xFFFFFFFF, string);
return 1;
}
else if (IsPlayerConnected(targetid2) && !IsPlayerInAnyVehicle(targetid2))
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, targetid2, SPECTATE_MODE_NORMAL);
format(string, sizeof(string), "Spectating player: %s", name );
SendClientMessage(playerid, 0xFFFFFFFF, string);
new specWorld = GetPlayerVirtualWorld(targetid2);
SetPlayerVirtualWorld(playerid, specWorld);
return 1;
}
else if (!IsPlayerConnected(targetid2))
{
SendClientMessage(playerid, 0xFFFFFFFF, "The player is not connected.");
return 1;
}
else
{
SendClientMessage(playerid, 0xFFFFFFFF, "ERROR: Spectating mode failure.");
return 1;
}
}
if (strcmp(cmd, "/spectateoff", true) == 0)
{
TogglePlayerSpectating(playerid, 0);
return 1;
}
return 0;
}