Вопрос про Army ranks

Статус
В этой теме нельзя размещать новые ответы.

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
685
Симпатии
195
Пол
Мужской
ВКонтакте
e1337ace
Перекачал кучу плагинов и везде подобное
Код:
public lrs_check_level(id)
{
    if (id > 0 && id < 33)
    {
        if (UserData[id][level] <= 0)
            UserData[id][level] = 1

        while (UserData[id][exp] >= LEVELS[UserData[id][level]+1])
        {
            UserData[id][level] ++
            ExecuteForward(g_FWD_CheckPoints, g_FWD_Result, id)
        }
    }
}
Почему во всех сделано через while ? Просто я заметил баг когда апаешь макс левел то появляется ошибка но не критичная) серв не падает.
L 08/15/2017 - 03:31:56: Start of error session.
L 08/15/2017 - 03:31:56: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20170815.log")
L 08/15/2017 - 03:31:56: [AMXX] Displaying debug trace (plugin "lrs_main.amxx", version "1.0")
L 08/15/2017 - 03:31:56: [AMXX] Run time error 4: index out of bounds
L 08/15/2017 - 03:31:56: [AMXX] [0] lrs_main.sma::lrs_check_level (line 101)
L 08/15/2017 - 03:31:56: [AMXX] [1] lrs_main.sma::EventDeath (line 85)
Но если заменить while на if то ошибки нет когда апаешь макс левел.
Так как на самом деле правильно? while или if ? я так думаю что такой баг у всех наверно у кого стоят арм звания.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу