All pastes #774355 Raw Edit

xcas

public text v1 · immutable
·published 2007-11-15 05:57 UTC
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;
}