11/05/2022 18:37
Teste isso:
Código PHP:
forward AtualizarTV(playerid);
new TimerSpec[MAX_PLAYERS];
new SpecVeh[MAX_PLAYERS];
CMD:tv(playerid, params[])
{
if(admin[playerid] < 1) return 0;
new id, string[80], lvlaviso;
lvlaviso = admin[playerid];
if(sscanf(params,"u", id) && gSpectateID[playerid] == 65535) return SendClientMessage(playerid, -1, "Use: /tv [id]");
else if(sscanf(params,"u", id) && gSpectateID[playerid] != 65535)
{
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
inttype[playerid] = 0;
TogglePlayerSpectating(playerid, 0);
KillTimer(TimerSpec[playerid]);
gSpectateID[playerid] = INVALID_PLAYER_ID;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
SpecVeh[playerid] = 0;
format(string, sizeof(string), "AdmCmd: %s saiu do modo TV.", PlayerName(playerid));
ABroadCast(COLOR_LIGHTRED, string, lvlaviso);
SpawnPlayer(playerid);
return 1;
}
if(id == playerid) return SendClientMessage(playerid, -1, "You can not use this command for yourself!");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_GREY, "Jogador não conectado");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "[ERROR] You have entered an invalid playername/playerid!");
format(string, sizeof(string), "AdmCmd: %s está de TV no jogador %s.", PlayerName(playerid), PlayerName(id) );
ABroadCast(COLOR_LIGHTRED, string, lvlaviso);
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, id);
gSpectateID[playerid] = id;
SpecVeh[playerid] = 0;
TimerSpec[playerid] = SetTimerEx("AtualizarTV", 1000, true, "i", playerid);
return 1;
}
public AtualizarTV(playerid)
{
if(gSpectateID[playerid] != INVALID_PLAYER_ID)
{
if(IsPlayerConnected(gSpectateID[playerid]))
{
new id = gSpectateID[playerid];
if(GetPlayerInterior(playerid) != GetPlayerInterior(id)) SetPlayerInterior(playerid, GetPlayerInterior(id));
if(GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(id)) SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id));
if(IsPlayerInAnyVehicle(id) && SpecVeh[playerid] == 0)
{
SpecVeh[playerid] = 1;
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(playerid));
return true;
}
else if(SpecVeh[playerid] == 1)
{
SpecVeh[playerid] = 0;
PlayerSpectatePlayer(playerid, id);
}
return true;
}
KillTimer(TimerSpec[playerid]);
SendClientMessage(playerid, -1, "O jogador que você estava assistindo desconectou.");
SpecVeh[playerid] = 0;
TogglePlayerSpectating(playerid, 0);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
inttype[playerid] = 0;
gSpectateID[playerid] = INVALID_PLAYER_ID;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
format(string, sizeof(string), "AdmCmd: %s saiu do modo TV.", PlayerName(playerid));
ABroadCast(COLOR_LIGHTRED, string, lvlaviso);
SpawnPlayer(playerid);
return true;
}
return true;
}
![[Imagem: disc.png]](https://i.ibb.co/YfQpSD1/disc.png)
[C.E.O]Brasil Play Socity