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

Тема в разделе "Программирование / Скриптинг", создана пользователем Manifest, 18 авг 2016.

  1. Manifest

    Manifest

    Сообщения:
    21
    Симпатии:
    0
    Здравствуйте, помогите пожалуйста
    Где-то допустил ошибку из-за чего плагин переходит ко 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 - банить, но он сразу банит.
     
  2. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    Может так?

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

    public 
    Action:Test(clientargs)
    {
        if (
    score[client] != 4)
        {
            
    score[client]++;
            
    //Kick
        
    }
        else if (
    score[client] == 4)
        {
            
    // BanClient
        
    }
    }
     
    Manifest нравится это.
  3. Gladi[a]tor

    Gladi[a]tor

    Сообщения:
    9
    Симпатии:
    5
    Код:
    new Score[MAXPLAYERS+1];
    
    public Action: Test(client, args)
    {
        if (client > 0)
        {
            Score[client]++;
          
            if (Score[client] == 4)
            {
                //....
            }
        }
    }
     
    Последнее редактирование: 18 авг 2016
  4. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.720
    Симпатии:
    461
    PHP:
    new score[MAXPLAYERS+1] = {0, ...};
    public 
    Action:Test(clientargs)
    {
        switch (
    score[client])
        {
            case 
    4// BanClient
            
    default: 
            {
                
    score[client]++;
                
    //Kick
            
    }
        }
    }

     
  5. Manifest

    Manifest

    Сообщения:
    21
    Симпатии:
    0
    Всё равно банит сразу
     
  6. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.560
    Симпатии:
    1.988
    PHP:
    new Score[MAXPLAYERS+1];

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

    Manifest

    Сообщения:
    21
    Симпатии:
    0
    Какое совпадение. Мне тоже самое Дивикс только что объяснил
     
  8. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.560
    Симпатии:
    1.988
    Неверно. По факту, код бана будет выполнен на 5 подсчёте.
    То же самое. Прибавление должно осуществляться перед всем кодом, либо сам массив должен быть наполнен единицами.
    Верно, если бы дело ограничивалось лишь одним баном. По крайней мере, корректно для данного кода. Оффтоп
    Скажу иначе: не нужно кидать куски кода без объяснения конкретной итоговой задачи. Здесь нет телепатов. Оффтоп