PHP код:
CMD:offban(playerid, params[])
{
if(!pInfo[playerid][pAdmin]) return 1;
if(sscanf(params, "s[24]is[30]", params[0], params[1], params[2])) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Используйте: /offban [имя игрока] [кол-во дней] [причина]");
if(params[1] < 1 || params[1] > 30) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Количество дней может быть от 1 до 30");
new format_string[200];
format(format_string, 200, "SELECT * FROM `ban_list` WHERE `name` = '%s'", params[0]);
return mysql_tquery(connectionHandle, format_string, "Offban", "iiss", playerid, params[1], params[0], params[2]);
}
PHP код:
forward Offban(playerid, days, str[], tmp[]);
public Offban(playerid, days, str[], tmp[])
{
new rows;
cache_get_row_count(rows);
if(rows) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Данный аккаунт уже заблокирован");
new format_string[200];
format(format_string, 140, "Администратор %s оффлайн забанил игрока %s на %i дней. Причина: %s", pInfo[playerid][pName], str, days, tmp);
SendClientMessageToAll(COLOR_LIGHTRED, format_string);
format(format_string, 200, "INSERT INTO `ban_list` (`name`, `date`, `reason`, `unbandate`, `aname`) VALUES ('%s', NOW(), '%s', %i, '%s')", str, tmp, gettime() + 86400 * days, pInfo[playerid][pName]);
return mysql_tquery(connectionHandle, format_string, "", "");
}
В итоге смешивается str и tmp и в имени игрока получается что-то вроде *первая буква str пробел tmp*
К примеру:
// Введенные данные: params[0] = test, params[1] = 1, params[2] = Бан
// Вывод в SendClientMessageToAll -> "Администратор name забанил игрока t Бан на 1 дней. Причина: Бан
// Ну и соответственно в имя игрока в таблицу выводится t Бан
С чем это связано? Как решить эту проблему?