kazaka
Новичок
Мод на mysql, проблема такая:
Человека забанили, ему снимают бан или заканчивается, он заходит на сервер, и у него аккаунт скопироваровался какого-то другого игрока...
Не знаю чё делать, всё пересмотрел...
Скину вам всё что связанно с банами:
Человека забанили, ему снимают бан или заканчивается, он заходит на сервер, и у него аккаунт скопироваровался какого-то другого игрока...
Не знаю чё делать, всё пересмотрел...
Скину вам всё что связанно с банами:
PHP:
stock CheckBanList(playerid)
{
new vas[32], unbandate, bool:ban, ip[32];
GetPlayerIp(playerid, ip, 32);
format(query, sizeof(query), "SELECT * FROM bans WHERE name = '%s'", sendername(playerid));
mysql_query(query);
mysql_store_result();
if(mysql_fetch_row_format(query))
{
mysql_get_field("unbandate", var); unbandate = strval(var);
if(unbandate - gettime() > 0) ban = true;
}
format(query, sizeof(query), "SELECT * FROM bans WHERE ip = '%s'", ip);
mysql_query(query);
mysql_store_result();
if(mysql_fetch_row_format(query))
{
mysql_get_field("unbandate", var); unbandate = strval(var);
if(unbandate - gettime() > 0) ban = true;
}
if(ban == true)
{
convert((unbandate-gettime())*1000,UBMin,UBSec,UBMSec);
UBHour = UBMin/60;
UBMin = UBMin%60;
UBDay = UBHour/24;
UBHour = UBHour%24;
new data[16], whobanned[32], reason[32];
mysql_get_field("bandate", data);
mysql_get_field("unbandate", vas); unbandate = strval(vas);
mysql_get_field("whobanned", whobanned);
mysql_get_field("reason", reason);
format(string, 384, "{FF6347}У вас Бан\n\n\
Заблокировали: %s\n\
Закончится: %d dienam\n\
Забанил: %s\n\
Причина: %s\n\
",data, UBDay+1, whobanned, reason);
SPD(playerid, D_NULL, DIALOG_STYLE_MSGBOX, "Бан", string, "Закрыть", "");
Kick(playerid);
}
mysql_free_result();
}
PHP:
CMD:ban(playerid, params[])
{
if(PlayerLogged[playerid] == 0) return 1;
if(PlayerInfo[playerid][pAdmin] < 3 || AdminLogged[playerid] == false) return 1;
new ip[32], data[32], unbandate;
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, ""PlayerIsNotOnline"");
if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, COLOR_GREY, ""PlayerIsNotLogged"");
if(params[1] > 14 || params[1] < 1) return SendClientMessage(playerid, COLOR_GREY, "Êîë-âè äíåé îò 1 äî 14!");
GetPlayerIp(params[0], ip, 32);
format(string, 100, "Àäìèíèñòðàòîð %s çàáëîêèðîâàë %s. Ïðè÷èíà: %s", sendername(playerid), sendername(params[0]), 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 (name, whobanned, ip, bandate, time, unbandate, reason) VALUES ('%s', '%s','%s', '%s', %d, %d, '%s')", sendername(params[0]), sendername(playerid), ip, data, params[1], unbandate, params[2]);
mysql_query(query);
SendClientMessage(params[0], COLOR_WHITE, "Ñîáëþäàéòå ïðàâèëà ñåðâåðà, ÷òîáû èçáåæàòü áàíà");
Kick(params[0]);
return true;
}
