sasuke534
Умник
как сделать что бы при выходе со спека человек возвращался на том месте где и вошёл в спек вот команды
и спек и спекофф
PHP:
if(strcmp(cmd, "/spec", true) == 0 && PlayerInfo[playerid][pAdmin] >= 2)
{
if(IsPlayerConnected(playerid))
{
//new tmp[256];
new specid;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "/spec [ид]");
return 1;
}
specid = ReturnUser(tmp);
if(IsPlayerConnected(specid))
{
if(GetPlayerState(specid) != 1 && GetPlayerState(specid) != 2 && GetPlayerState(specid) != 3)
{
SendClientMessage(playerid, COLOR_GRAD2, "Игрок не вступил в игру!");
return 1;
}
StartSpectate(playerid, specid);
}
}
return 1;
}
if(strcmp(cmd, "/specoff", true) == 0 && PlayerInfo[playerid][pAdmin] >= 2)
{
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
StopSpectate(playerid);
return 1;
}
PHP:
stock AdvanceSpectate(playerid)
{
if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && gSpectateID[playerid] != INVALID_PLAYER_ID) {
for(new x=gSpectateID[playerid]+1; x<=MAX_PLAYERS; x++) {
if(x == MAX_PLAYERS) { x = 0; }
if(IsPlayerConnected(x) && x != playerid) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] != INVALID_PLAYER_ID ||
(GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
{
continue;
}
else {
StartSpectate(playerid, x);
break;
}
}
}
}
return 1;
}
stock ConnectedPlayers()
{
new count;
for(new x=0; x<MAX_PLAYERS; x++) {
if(IsPlayerConnected(x)) {
count++;
}
}
return count;
}
stock StopSpectate(playerid)
{
TogglePlayerSpectating(playerid, 0);
gSpectateID[playerid] = INVALID_PLAYER_ID;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
return 1;
}
