Dmitriy54545667
Дебютант
Иногда возвращается к предыдущему игроку. Например: Админ прописал /re 1, дальше /re 2 и вот в этот момент, когда 1 ид выходит из тачки, слежка перебрасывается со 2 ида, на 1. Только что перепроверил, слежка перебрасывается не только когда 1 ид выходит из тачки, видимо рандомно)
/re
/reoff
/re
HTML:
else if(strcmp(cmd, "/re", true) == 0 || strcmp(cmd, "/ку", true) == 0)
{
if(PlayerInfo[playerid][pAAAdmin] < 1) return true;
if(!IsPlayerConnected(playerid)) return true;
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GREY," /re [id]");
specid = ReturnUser(tmp);
new idid = GetPlayerVehicleID(specid);
if(specid == playerid) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}x{FFFFFF} Нельзя наблюдать за самим собой!");
if(specid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}x{FFFFFF} Игрок не найден!");
OnPlayerCommandText(playerid,"/reoff");
switch(GetPlayerState(specid))
{
case 1:
{
PlayerSpectatePlayer(playerid, specid);
SetPlayerInterior(playerid,GetPlayerInterior(specid));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(specid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specid);
PlayerSpectateID[playerid] = specid;
PlayerSpec[specid] = playerid;
KillTimer(SpecHATimer[playerid]);
KillTimer(STimer[playerid]);
TextDrawHideForPlayer(playerid,TvTextDraw[playerid]);
TextDrawShowForPlayer(playerid, TvTextDraw[playerid]);
SpecHATimer[playerid] = SetTimerEx("ReAdmin",ONE_HUNDRED_MSECOND,true,"ff",playerid,specid);
}
case 2:
{
PlayerSpectateVehicle(playerid, idid);
SetPlayerInterior(playerid,GetPlayerInterior(specid));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(specid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, idid);
PlayerSpectateID[playerid] = specid;
PlayerSpec[specid] = playerid;
KillTimer(SpecHATimer[playerid]);
KillTimer(STimer[playerid]);
TextDrawHideForPlayer(playerid,TvTextDraw[playerid]);
TextDrawShowForPlayer(playerid, TvTextDraw[playerid]);
SpecHATimer[playerid] = SetTimerEx("ReAdmin",ONE_HUNDRED_MSECOND,true,"ff",playerid,specid);
}
case 3:
{
PlayerSpectateVehicle(playerid, idid);
SetPlayerInterior(playerid,GetPlayerInterior(specid));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(specid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, idid);
PlayerSpectateID[playerid] = specid;
PlayerSpec[specid] = playerid;
KillTimer(SpecHATimer[playerid]);
KillTimer(STimer[playerid]);
TextDrawHideForPlayer(playerid,TvTextDraw[playerid]);
TextDrawShowForPlayer(playerid, TvTextDraw[playerid]);
SpecHATimer[playerid] = SetTimerEx("ReAdmin",ONE_HUNDRED_MSECOND,true,"ff",playerid,specid);
}
default:SendClientMessage(playerid,COLOR_GREY,"Ошибка");
}
return true;
}
HTML:
else if(strcmp(cmd, "/reoff", true) == 0)
{
if(PlayerInfo[playerid][pAAAdmin] >= 1)
{
PlayerInfo[playerid][pHospital] = 0;
TogglePlayerSpectating(playerid, 0);
SetCameraBehindPlayer(playerid);
StopSpectate(playerid);
PlayerSpec[PlayerSpectateID[playerid]] = -1;
SetPlayerHealthAC(playerid, 100);
PlayerSpectateID[playerid] = -1;
}
return true;
}
HTML:
new kick[MAX_PLAYERS];new ban[MAX_PLAYERS];new warn[MAX_PLAYERS];
