сослан
Новичок
Здравствуйте, У меня есть две проблемы(ки) с командой /spec, 1(ое) Когда пишу /spec 1 И спекаю, потом хочу /specoff - А инфо остается на экране. Как избавится от проблемы? и 2 проблема, Какой нибудь новичёк заходит в игру. и он типо спекает за кем-то. А он не Админ! •(Помогите пожалуйста
)•
Код:
if(strcmp(cmd, "/spec", true) == 0) {
tmp = strtok(cmdtext, idx);
GetPlayerName(specplayerid, giveplayer, sizeof(giveplayer));
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Используй: /spec [playerid]");
return 1;
}
specplayerid = strval(tmp);
if(!IsPlayerConnected(specplayerid)) {
SendClientMessage(playerid, COLOR_WHITE, "{ff3300}[Ошибка]{FFFFFF} Не активный игрок");
return 1;
}
if(playerid == specplayerid)
{
SendClientMessage(playerid, COLOR_WHITE, "{ff3300}[Ошибка]{FFFFFF} Нельзя наблюдать за самим собой");
return 1;
}
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
{
SendClientMessage(playerid, COLOR_WHITE, "{ff3300}[Ошибка]{FFFFFF} Вы уже спекаете");
return 1;
}
if (PlayerInfo[playerid][pAdmin] >= 1)//???????? ?? ??????[?????? ????]
{
giveplayerid = ReturnUser(tmp);
if(GetPlayerState(giveplayerid) == 1)
{
SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid));
}
else if(GetPlayerState(giveplayerid) == 2)
{
SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid));
}
else if(GetPlayerState(giveplayerid) == 3)
{
SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid));
}
if(IsPlayerInAnyVehicle(specplayerid))
{
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
SpecHATimer[playerid] = SetTimerEx("SpecHArefresh",1000,true,"ff",playerid,specplayerid);
}
else
{
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, specplayerid);
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
SpecHATimer[playerid] = SetTimerEx("SpecHArefresh",1000,true,"ff",playerid,specplayerid);
}
return 1;
}
}
if(strcmp(cmd, "/specoff", true) == 0) {
if (PlayerInfo[playerid][pAdmin] >= 1)//???????? ?? ??????
{
TogglePlayerSpectating(playerid, 0);
gSpectateID[playerid] = INVALID_PLAYER_ID;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
KillTimer(SpecHATimer[playerid]);
KillTimer(SpecHATimer[playerid]);
KillTimer(SpecHATimer[playerid]);
}
return 1;
}
