SA-MP Forums Archive
Баг в команде - 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: Баг в команде (/showthread.php?tid=380891)



Баг в команде - 14_KaPaT - 27.09.2012

Здравствуйте пользователи форума, прошу помочь с такой проблемой, вот сама команда
Code:
	if(Command(cmd,"/дмлист")){
		new count1 = 0,count2 = 0;
		for(new i;i<USERSLOTS;i++){
	        if(full[i] == 1) count1++;
                if(full[i] == 2) count2++;
		format(string,sizeof string,"DM (Pro Weap) №1 (%d чел.)\n",count1);
		format(string,sizeof string,"%sDM (Pro Weap) №2 (%d чел.)\n",string,count2);
		}
                ShowPlayerDialog(playerid,COMMAND_DIALOG,2,"Список дм зон",string,"Го!","Отмена");
		return true;
	}
Команда должна работать так, циклить игроков, если у игрока определенное значение переменной которое совпадает с заданным плюсуем игрока, команда работает как надо, но возникает проблема когда игрок, будучи на дм, получает значение переменной full[playerid] = 1; к примеру и выходит из игры, каким то образом набирая команду в следующий раз этот игрок все еще плюсуется при выполнении цикла заданного в команде, как исправить ?

Второй вопрос как посадить в гидру сразу несколько человек или это нереально ?


Re: Баг в команде - White_116 - 27.09.2012

Обнулять значение игрока при выходе из дм или игры не пробовали?

Quote:

Второй вопрос как посадить в гидру сразу несколько человек или это нереально ?

Если как пассажир, то можно отправить в слежку за этой машиной, только нужно отслеживать нажатие клавиш для выхода и входа.


Re: Баг в команде - 14_KaPaT - 27.09.2012

При выходе обнуляется


Re: Баг в команде - Alexander_Petrov - 27.09.2012

pawn Code:
if(Command(cmd,"/дмлист"))
{
    new count1 = 0, count2 = 0;
    for(new i; i < USERSLOTS; i++)
    {
        if(full[i] == 1) count1++;
        else if(full[i] == 2) count2++;
        format(string, sizeof string, "DM (Pro Weap) №1 (%d чел.)\n", count1);
        format(string, sizeof string, "%sDM (Pro Weap) №2 (%d чел.)\n", string, count2);
    }
    ShowPlayerDialog(playerid, COMMAND_DIALOG, 2, "Список дм зон", string, "Го!", "Отмена");
    return true;
}
Скорее всего во всем виновато обнуление переменной. Где она обнуляется?


Re: Баг в команде - 14_KaPaT - 28.09.2012

Исправил, удивительно, но просто поставив обнуление переменной в начало паблика выхода из игры, а было в середине. Всем спасибо


Re: Баг в команде - stabker - 28.09.2012

Еще немного оптимизации:

pawn Code:
if(Command(cmd,"/дмлист"))
{
    new count1 = 0, count2 = 0;
    for(new i; i < USERSLOTS; i++)
    {
        if(full[i] == 1) count1++;
        else if(full[i] == 2) count2++;
    }
    format(string, sizeof string, "DM (Pro Weap) №1 (%d чел.)\n", count1);
    format(string, sizeof string, "%sDM (Pro Weap) №2 (%d чел.)\n", string, count2);
    ShowPlayerDialog(playerid, COMMAND_DIALOG, 2, "Список дм зон", string, "Го!", "Отмена");
    return true;
}



Re: Баг в команде - 9903286 - 02.12.2012

Quote:
Originally Posted by stabker
View Post
Еще немного оптимизации:

pawn Code:
if(Command(cmd,"/дмлист"))
{
    new count1 = 0, count2 = 0;
    for(new i; i < USERSLOTS; i++)
    {
        if(full[i] == 1) count1++;
        else if(full[i] == 2) count2++;
    }
    format(string, sizeof string, "DM (Pro Weap) №1 (%d чел.)\n", count1);
    format(string, sizeof string, "%sDM (Pro Weap) №2 (%d чел.)\n", string, count2);
    ShowPlayerDialog(playerid, COMMAND_DIALOG, 2, "Список дм зон", string, "Го!", "Отмена");
    return true;
}
Thanks. +rep