Hans_Zimmer
Умник
Подскажите пожалуйста. Такая проблема с MySQL.
Когда я кого-то забаню. Того игрока банит.
Потом никто не может зайти на сервер.
Всем пишет что вы забанены.
Приходится разбанивать того игрока чтоб могли все зайти
Помогите. Вот команда.
Вот как пишет.
Когда я кого-то забаню. Того игрока банит.
Потом никто не может зайти на сервер.
Всем пишет что вы забанены.
Приходится разбанивать того игрока чтоб могли все зайти
Помогите. Вот команда.
PHP:
if(strcmp(cmd,"/ban",true)==0)
{
new dateban[64],ip[16],unbandate,str[500];
if(Player[playerid][pAdmin] < 3)return send(playerid, COLOR_RED, vNolic);
if(sscanf(params,"ris[100]",params[0],params[1],params[2]))return send(playerid,COLOR_LIGHTBLUE,""vCom"/ban [ID] [Дней] [Причина]");
if(!IsPlayerConnected(params[0])) return send(playerid,COLOR_RED,""vError"Игрок не в сети");
if(params[1] > 100) return send(playerid,COLOR_RED,""vError"Нельзя забанить больше 100 дней");
if(IsPlayerNPC(params[0])) return true;
f(str,"{ffffff}Xperia: {00ff00}%s {ffffff}был(а) забанен(а) {ff0000}%s {ffffff}на {ff0000}%s. {ffffff}Причина: {ff0000}%s", Player[params[0]][pName],NameAdmin(playerid),Player[playerid][pName],nformat(params[1],"äåíü","äíÿ","äíåé"),params[2]);
sendToAll(COLOR_LIGHTRED, str);
unbandate = gettime() + params[1]*86400;
new year, month,day;
getdate(year, month, day);
GetPlayerIp(params[0], ip, 32);
format(dateban, 16, "%02d.%02d.%04d",day, month, year);
f(str,"INSERT INTO `bans` (name, IP, bandate, time, unbandate, reason, admin) VALUES ('%s', '%s', '%s', %d, %d, '%s', '%s')", Player[params[0]][pName], ip, dateban, params[1], unbandate, params[2], Player[playerid][pName]);
mysql_query(str);
Kick(params[0]);
SetPVarInt(playerid, "banotkat", 5);
SetPVarInt(playerid, "bc", GetPVarInt(playerid, "bc")+1);
if(GetPVarInt(playerid, "banotkat") > 0 && GetPVarInt(playerid, "bc") > 2){ Player[playerid][pAdmin] = 0; }
return true;
}
PHP:
stock CheckBanList(playerid)
{
new unbandate, bool:ban, ip[32],str[255];
GetPlayerIp(playerid, ip, 32);
f(str,"SELECT unbandate FROM bans WHERE name = '%s'", Player[playerid][pName]);
if(mysql_query(str) && mysql_store_result())
{
if(mysql_num_rows())
{
unbandate = mysql_fetch_int();
if(unbandate > gettime()) ban = true;
}
}
mysql_free_result();
if(!ban)
{
f(str,"SELECT unbandate FROM bans WHERE ip = '%s'", ip);
if(mysql_query(str) && mysql_store_result())
{
if(mysql_num_rows())
{
unbandate = mysql_fetch_int();
if(unbandate > gettime()) ban = true;
}
}
mysql_free_result();
}
if(ban)
{
new data[512], query[128], buffer[64], bant[64], unbant, reason[64], strss[128], admin[64];
f(query,"SELECT * FROM `bans` WHERE name = '%s'",Player[playerid][pName]);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(data);
mysql_get_field("bandate", buffer); strmid(bant, buffer, 0, strlen(buffer), 255);
mysql_get_field("unbandate", buffer); unbant = strval(buffer);
mysql_get_field("reason", buffer); strmid(reason, buffer, 0, strlen(buffer), 255);
mysql_get_field("admin", buffer); strmid(admin, buffer, 0, strlen(buffer), 255);
mysql_free_result();
new unbantime[25];
f(strss,"SELECT FROM_UNIXTIME( %d )", unbant);
if(mysql_query(strss) && mysql_store_result()) mysql_fetch_row_format(unbantime);
f(str,"{BB0909}Вас забанил:"WHT" %s\n{BB0909}Дата бана:"WHT" %s\n{BB0909}Причина:"WHT" %s\n{BB0909}Дата разбана:"WHT" %s", admin, bant, reason, unbantime);
SPD(playerid, DIALOG_BAN , DIALOG_STYLE_MSGBOX, ""CNC"Вы забанены", str, "Закрыть", "");
Kick(playerid);
}
return true;
}
