Windows_8
Умник
[MySQL r7-2]Проблема с системой бана
При вводе команды в игре /ban, в чате пишет что забанен, а вот в БД запись не идет, в чем тут проблема?Команды:
PHP:
CMD:ban(playerid, params[])
{
if(GetPVarInt(playerid, "Logged" ) == 0) return true;
if(Player[playerid][admin] < 3) return true;
new ip[32], data[32], unbandate;
new string[128]; new query[144];
if(sscanf(params, "uds", params[0], params[1], params[2])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /ban [id игрока] [кол-во дней] [причина]");
if(!IsPlayerConnected(params[0]) || params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Данный игрок оффлайн.");
if(params[1] > 365 || params[1] < 1) return SendClientMessage(playerid, COLOR_GREY, "Кол-во дней от 1 до 365.");
GetPlayerIp(params[0], ip, 32);
format(string, 100, "Администратор %s заблокировал %s на %d дней. Причина: %s", PlayerName[playerid], sendername(params[0]),params[1], params[2]);
SendClientMessageToAll(COLOR_LIGHTRED,string);
getdate(years, months, days);
unbandate = gettime() + params[1]*86400;
format(data, 32, "%02d.%02d.%04d", days, months, years);
format(query, sizeof(query), "INSERT INTO `bans` ( `login`, `whobanned`, `ip`, `bandate`, `time`, `unbandate`, `reason`) VALUES ('%s', '%s','%s', '%s', %d, %d, '%s')", sendername(params[0]), PlayerName[playerid], ip, data, params[1], unbandate, params[2]);
mysql_function_query(connect, query, false, "", "");
SendClientMessage(params[0], COLOR_YELLOW, "Вы были заблокированы! Если администратор не прав, сделайте скриншот (F8) и отправьте доказательства на форум");
Kick(params[0]);
return true;
}
CMD:unban(playerid, params[])
{
if(GetPVarInt(playerid, "Logged" ) == 0) return true;
if(Player[playerid][admin] < 5) return true;
new query[144];
if(sscanf(params, "s", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /unban [имя игрока]");
format(query, sizeof(query), "SELECT * FROM `bans` WHERE `login` = '%s'", params[0]);
mysql_function_query(connect, query, true, "CheckBanList", "i", playerid, 0);
//mysql_store_result();
if(!mysql_fetch_row(query)) return SendClientMessage(playerid, COLOR_GREY, "Данный игрок не найден в базе данных.");
format(query, sizeof(query), "DELETE FROM `bans` WHERE `login` = '%s'", params[0]);
mysql_function_query(connect, query, true, "CheckBanList", "i", playerid, 0);
SendMes(playerid, COLOR_LIGHTRED, "Вы разбанили игрока %s", params[0]);
mysql_free_result();
return true;
}
PHP:
stock CheckBanList(playerid)
{
new vas[32], unbandate, ban, ip[24], query[144];
GetPlayerIp(playerid, ip, 20);
format(query, 128, "SELECT * FROM `bans` WHERE `login` = '%s'", PlayerName[playerid]);
mysql_function_query(connect, query, true, "CheckBanList", "i", playerid, 0);
//mysql_store_result();
if(mysql_fetch_row(query))
{
mysql_get_field("unbandate", vas);
unbandate = strval(vas);
if(unbandate - gettime() > 0) ban = 1;
}
if(ban == 0)
{
format(query, 128, "SELECT * FROM `bans` WHERE `ip` = '%s'", ip);
mysql_function_query(connect, query, true, "CheckBanList", "i", playerid, 0);
//mysql_store_result();
if(mysql_fetch_row(query))
{
mysql_get_field("unbandate", vas); unbandate = strval(vas);
if(unbandate - gettime() > 0) ban = 1;
}
}
if(ban == 1)
{
convert((unbandate-gettime())*1000,UBMin,UBSec,UBMSec);
UBHour = UBMin/60;
UBMin = UBMin%60;
UBDay = UBHour/24;
UBHour = UBHour%24;
format(stringa, 128, "Ваш аккаунт заблокирован\n\nДата разблокировки через %d дней",UBDay+1);
ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_MSGBOX, "Аккаунт заблокирован", stringa, "/quit", "");
Kick(playerid);
}
mysql_free_result();
}
stock convert(time, &min, &sec, &msec)
{
new Float:fTime = floatdiv(time, 60000);
min = floatround(fTime, floatround_tozero);
sec = floatround(floatmul(fTime - min, 60), floatround_tozero);
msec = floatround(floatmul(floatmul(fTime - min, 60) - sec, 1000), floatround_tozero);
}
PHP:
CheckBanList(playerid);
