переключения spec на клавишу -
Nikid - 25.08.2010
Здравствуйте! Сделал перекл. спек на кнопку, ток когда переключаю, он начинает следить за другой командой, где тут ошибка?
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;
}
Re: переключения spec на клавишу -
K-911 - 25.08.2010
Quote:
if(IsPlayerConnected(x) && x != playerid && Player[x][pTeam] != Player[playerid][pTeam]) {
|
Думаю дело в [pTeam], возможно из-за них тебя переключает не на сл. игрока, а на сл. команду.
Re: переключения spec на клавишу -
Nikid - 25.08.2010
да дело в том, что он переключает на следующую команду и ток спекает противоположных игроков, а не игроков из своей команды
Re: переключения spec на клавишу -
ONIXS - 25.08.2010
Должно быть Player[x][pTeam] == Player[playerid][pTeam]
Re: переключения spec на клавишу -
Nikid - 25.08.2010
Во Спасибо большое Оникс!
Re: переключения spec на клавишу -
Nikid - 25.08.2010
Еще 1 вопросик, а вот когда 1 чел остается и жмешь перекл спек, то выходит из спека, как бы эт можно было бы исправить?
Re: переключения spec на клавишу -
ONIXS - 25.08.2010
Чего тебе надо исправить, я тупо вопроса не понял
for(new x=gSpectateID[playerid]+1; x<=MAX_PLAYERS; x++) {
if(x == MAX_PLAYERS) x = 0;
...
}
Это случаем не бесконечный цикл выходит?
Re: переключения spec на клавишу -
Maccer - 25.08.2010
Quote:
Originally Posted by ONIXS
Чего тебе надо исправить, я тупо вопроса не понял
for(new x=gSpectateID[playerid]+1; x<=MAX_PLAYERS; x++) {
if(x == MAX_PLAYERS) x = 0;
...
}
Это случаем не бесконечный цикл выходит?
|
если ничего не добавлять то бесконечный
наверное, следует добавить
pawn Code:
if(x==gSpectateID[playerid]) break;
чтобы если всех игроков промотал и вернулся к тому что был - цикл завершился
ну и само условие с переключением на нужного игрока
Re: переключения spec на клавишу -
Nikid - 26.08.2010
Спасибо! Можно тему закрыть!