• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

error 009: invalid array size (negative, zero or out of bounds)

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

NoPressF

Умник
Здравствуйте, выводит ошибку при создании неограниченного массива.
C:
error 009: invalid array size (negative, zero or out of bounds)
Хочу сделать список аккаунтов которые существуют на сервере. Затем туда записывать ид аккаунта, имя, и уровень админки.
Но ничего не удаётся.

PHP:
enum DatabaseAccountsInfo
{
    AccountUserID,
    AccountName[MAX_PLAYER_NAME+1],
    AccountLevelAdmin
};

new static dbAccountsInfo[DatabaseAccountsInfo][]; // В этой строке ошибка.

DR:DialogSelectAccountsOption(playerid, response, listitem, inputtext[])
{
    if(response)
    {
        switch(listitem)
        {
            case 0:
            {
                query[0] = EOS;
                format(query, sizeof(query), "SELECT * FROM `accounts`");
                mysql_tquery(connect_mysql, query, "ListAccounts", "i", playerid);
            }
        }
    }
    return true;
}

publics: ListAccounts(playerid)
{
    new rows;
    cache_get_row_count(rows);
    SetPVarInt(playerid, "RowsAccount", rows);
    new str[1024] = "{FFFFFF}UserID\t{FFFFFF}Аккаунт\t{FFFFFF}Статус\n";
    if(!rows) return SendError(playerid, "В Базе данных ни найден ни один аккаунт!");
    for(new i; i < rows; i++)
    {
        cache_get_value_name(i, "pName", dbAccountsInfo[AccountName][i], MAX_PLAYER_NAME);
        cache_get_value_name_int(i, "pAdmin", dbAccountsInfo[AccountLevelAdmin][i]);
        cache_get_value_name_int(i, "id", dbAccountsInfo[AccountUserID][i]);
        if(!dbAccountsInfo[AccountLevelAdmin][i])
            format(str, sizeof(str), "%s%i\t%s\tИгрок\n", str, dbAccountsInfo[AccountUserID][i], dbAccountsInfo[AccountName][i]);
        else
            format(str, sizeof(str), "%s%i\t%s\t{FF2D2D}Администратор{FFFFFF}\n", str, dbAccountsInfo[AccountUserID][i], dbAccountsInfo[AccountName][i]);
    }
    DS(playerid, "DialogListAccount", DSTH, "Аккаунты", str, "Выбрать", "Закрыть");
    return true;
}

DR:DialogListAccount(playerid, response, listitem, inputtext[])
{
    if(response)
    {
        for(new i; i < GetPVarInt(playerid, "RowAccounts"); i++)
        {
            if(listitem != dbAccountsInfo[AccountUserID][listitem])
            {
                listitem++;
                continue;
            }
            DS(playerid, "DialogSelectOption", DSL, dbAccountsInfo[AccountName][listitem], "Статистика аккаунта\nУдалить аккаунт", "Выбрать", "Назад");
            break;
        }
    }
    return true;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу