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; }