Баг в команде
#1

Здравствуйте пользователи форума, прошу помочь с такой проблемой, вот сама команда
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; к примеру и выходит из игры, каким то образом набирая команду в следующий раз этот игрок все еще плюсуется при выполнении цикла заданного в команде, как исправить ?

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

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

Quote:

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

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

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

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;
}
Скорее всего во всем виновато обнуление переменной. Где она обнуляется?
Reply
#5

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

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

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;
}
Reply
#7

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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)