SA-MP Forums Archive
переключения spec на клавишу - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: переключения spec на клавишу (/showthread.php?tid=171151)



переключения 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
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;
чтобы если всех игроков промотал и вернулся к тому что был - цикл завершился
ну и само условие с переключением на нужного игрока


Re: переключения spec на клавишу - Nikid - 26.08.2010

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