[CSS] Прибавление числа

Manifest

Ура, не такой как все
Сообщения
181
Реакции
128
Данный пользователь был уличен в использовании бэкдора в приватных плагинах. Крайне не рекомендуется покупать какие либо товары у пользователя.
Здравствуйте, помогите пожалуйста
Где-то допустил ошибку из-за чего плагин переходит ко 2 пункту
Пробовал так:

new Handle:Score[MAXPLAYERS+1];

public Action:Test(client, args)
{
if (Score != 4)
{
++Score[client];
//Kick
}
else if (Score[client] = 4)
{
// BanClient
}

new Handle:Score[MAXPLAYERS+1];

public Action:Test(client, args)
{
if (Score != 4)
{
Score[client] += 1;
//Kick
}
else if (Score[client] = 4)
{
// BanClient
}
Должно прибавлять по 1, и когда достигнет 4 - банить, но он сразу банит.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Может так?

PHP:
new score[MAXPLAYERS+1] = {0, ...};

public Action:Test(client, args)
{
    if (score[client] != 4)
    {
        score[client]++;
        //Kick
    }
    else if (score[client] == 4)
    {
        // BanClient
    }
}
 
G

Gladi[a]tor

C-подобный:
new Score[MAXPLAYERS+1];

public Action: Test(client, args)
{
    if (client > 0)
    {
        Score[client]++;
      
        if (Score[client] == 4)
        {
            //....
        }
    }
}
 
Последнее редактирование модератором:

Manifest

Ура, не такой как все
Сообщения
181
Реакции
128
Данный пользователь был уличен в использовании бэкдора в приватных плагинах. Крайне не рекомендуется покупать какие либо товары у пользователя.

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Должно прибавлять по 1, и когда достигнет 4 - банить, но он сразу банит
PHP:
new Score[MAXPLAYERS+1];

public Action:Test(client, args)
{
    if (++Score[client] == 4)
    {
        // BanClient
    }
    else
    {
        //Kick
    }
}
Однако, если игрока и правда кикает после любого "прибавления +1", то на практике, до цифры 4 адекватно не дойти без сохранения в БД. Ведь после кика игрок выходит с сервера, на его место может прийти любой (на его индекс), даже бот - в массиве значение сохраняется для индекса. Т.е. кикать и считать далее может вовсе не его, а кого-то и вовсе забанит "за чужие проделки".
Если только это не показательный счётчик киков для админа, например. Тогда нужно просто добавить ещё сброс при коннекте/дисконнекте.
 

Manifest

Ура, не такой как все
Сообщения
181
Реакции
128
Данный пользователь был уличен в использовании бэкдора в приватных плагинах. Крайне не рекомендуется покупать какие либо товары у пользователя.
PHP:
new Score[MAXPLAYERS+1];

public Action:Test(client, args)
{
    if (++Score[client] == 4)
    {
        // BanClient
    }
    else
    {
        //Kick
    }
}
Однако, если игрока и правда кикает после любого "прибавления +1", то на практике, до цифры 4 адекватно не дойти без сохранения в БД. Ведь после кика игрок выходит с сервера, на его место может прийти любой (на его индекс), даже бот - в массиве значение сохраняется для индекса. Т.е. кикать и считать далее может вовсе не его, а кого-то и вовсе забанит "за чужие проделки".
Если только это не показательный счётчик киков для админа, например. Тогда нужно просто добавить ещё сброс при коннекте/дисконнекте.
Какое совпадение. Мне тоже самое Дивикс только что объяснил
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
if (score[client] != 4)
{
score[client]++;
Неверно. По факту, код бана будет выполнен на 5 подсчёте.
default:
{
score[client]++;
//Kick
}
То же самое. Прибавление должно осуществляться перед всем кодом, либо сам массив должен быть наполнен единицами.
Score[client]++; if (Score[client] == 4)
Верно, если бы дело ограничивалось лишь одним баном. По крайней мере, корректно для данного кода. Оффтоп
тоже самое Дивикс только что объяснил
Скажу иначе: не нужно кидать куски кода без объяснения конкретной итоговой задачи. Здесь нет телепатов. Оффтоп
 
Сверху Снизу