Ошибки в консоли и проблемы с сохранением аккаунта.
Не работает команда, ее код:
CMD:alogin(playerid, params[])
{
new query_string[55+MAX_PLAYER_NAME];
format(query_string
, sizeof(query_string
), "SELECT * FROM admins WHERE name = '%s'", account
[playerid
][name
]); new Cache:result = mysql_query(connection_handle, query_string, true);
cache_get_value_name_int(0, "lvl", account[playerid][adminlvl]);
if(account
[playerid
][adminlvl
] == 0) return SendClientMessage(playerid
, 0x800000AA, "[Ошибка]: {ffffff}Вы не администратор."); new adminpass[24];
cache_get_value_name(0, "pass", adminpass);
if(sscanf(params
, "s[24]", params
[0])) return SendClientMessage(playerid
, 0x800000AA, "[Ошибка]: {ffffff}Используйте /alog [Пароль]"); if(!strcmp(adminpass
, params
[0], false)) {
SendClientMessage(playerid
, 0x800000AA, "[Ошибка]: {ffffff}Вы ввели неверный пароль."); }
else
{
new message[100];
format(message
, sizeof(message
), "[Сервер]: {ffffff}Вы успешно авторизовались как %s.", admins_name
[account
[playerid
][adminlvl
]]); account[playerid][adminauth] = true;
}
cache_delete(result);
return 0;
}
Что пишет консоль:
Код:
[17:35:31] [debug] Run time error 4: "Array index out of bounds"
[17:35:31] [debug] Attempted to read/write array element at index 5 in array of size 5
[17:35:31] [debug] AMX backtrace:
[17:35:31] [debug] #0 0001d2d8 in public cmd_alog (0, 578216) in new.amx
[17:35:31] [debug] #1 native DC_CMD () in dc_cmd.so
[17:35:31] [debug] #2 00000108 in public OnPlayerCommandText (0, 578184) in new.amx
В душе не знаю, на что грешить, поэтому пишу сюда.
Второе - не сохраняется аккаунт, в MySQL выдает эту ошибку:
Код:
[08/22/19 17:35:32] [ERROR] error #1064 while executing query "UPDATE `accounts` SET `money` = '100' `quest` = '1' `progress` = '0' `hunger` = '100.000000' `thirst` = '100.000000' `need` = '100.000000'": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '`quest` = '1' `progress` = '0' `hunger` = '100.000000' `thirst` = '100.000000' `' at line 1
Сейчас в строке с сохранением данных 300 ячеек, когда требуется 138 (ради интереса посчитала длину запроса), однако даже если я еще увеличу массив, ошибка останется, хотя по ошибке очень похоже, что не хватает ячеек.