переключения spec на клавишу
#1

Здравствуйте! Сделал перекл. спек на кнопку, ток когда переключаю, он начинает следить за другой командой, где тут ошибка?
Code:
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 && Player[x][pTeam] != Player[playerid][pTeam]) {
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;
}
Reply
#2

Quote:

if(IsPlayerConnected(x) && x != playerid && Player[x][pTeam] != Player[playerid][pTeam]) {

Думаю дело в [pTeam], возможно из-за них тебя переключает не на сл. игрока, а на сл. команду.
Reply
#3

да дело в том, что он переключает на следующую команду и ток спекает противоположных игроков, а не игроков из своей команды
Reply
#4

Должно быть Player[x][pTeam] == Player[playerid][pTeam]
Reply
#5

Во Спасибо большое Оникс!
Reply
#6

Еще 1 вопросик, а вот когда 1 чел остается и жмешь перекл спек, то выходит из спека, как бы эт можно было бы исправить?
Reply
#7

Чего тебе надо исправить, я тупо вопроса не понял

for(new x=gSpectateID[playerid]+1; x<=MAX_PLAYERS; x++) {
if(x == MAX_PLAYERS) x = 0;
...
}

Это случаем не бесконечный цикл выходит?
Reply
#8

Quote:
Originally Posted by ONIXS
View Post
Чего тебе надо исправить, я тупо вопроса не понял

for(new x=gSpectateID[playerid]+1; x<=MAX_PLAYERS; x++) {
if(x == MAX_PLAYERS) x = 0;
...
}

Это случаем не бесконечный цикл выходит?
если ничего не добавлять то бесконечный
наверное, следует добавить
pawn Code:
if(x==gSpectateID[playerid]) break;
чтобы если всех игроков промотал и вернулся к тому что был - цикл завершился
ну и само условие с переключением на нужного игрока
Reply
#9

Спасибо! Можно тему закрыть!
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)