Irgendwas stimmt mit meinem Bannsystem nicht.
Sobald ich jemanden banne, kann diese Person auch wenn sie entbannt ist den Server nicht betreten.
Sobald man connecten will kommt sofort "Server closed the connection." und es passiert nichtsmehr.
Im Log steht auch nur: "[12:20:59] [connection] incoming connection: **.**.**.**:***** id: 0" (IP zensiert)
Nach einem Restart funktioniert es wieder, und man sieht dann auch die Banninfo.
Es ist auch egal mit welchem Accountnamen man sich einloggt, sogar wenn die IP nicht gebannt wurde, kommt man nichtmehr auf den Server.
Banbefehl:
CMD:ban(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 2) return SendCmdMessage(playerid);
new targetid, Reason[128];
if(sscanf(params, "us[128]", targetid, Reason)) return SendUsageMessage(playerid,"/ban [ID/Name] [Grund]");
if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"Der gewählte Spieler ist nicht auf dem Server.");
if(strlen(Reason) > 128) return SendErrorMessage(playerid,"Der gewählte Grund ist zu lang.");
printf("[warning] %s bannt %s mit dem Grund %s",GetName(playerid),GetName(targetid),Reason);
BanWithReasonNoIP(playerid, targetid, Reason);
return 1;
}
BanWithReasonNoIP:
BanWithReasonNoIP(playerid = INVALID_PLAYER_ID, targetid, reason[])
{
if(playerid == INVALID_PLAYER_ID) return 1;
new Query[256], string[145], day, month, year, second, minute, hour, datestring[24], timestring[24];
getdate(day, month, year);
gettime(hour, minute, second);
format(datestring, sizeof(datestring), "%02d.%02d.%d", year, month, day);
format(timestring, sizeof(timestring), "%02d:%02d:%02d", hour, minute, second);
mysql_format(handle,Query, sizeof(Query), "INSERT INTO `banned` (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`, `STAMP`, `DBID`) VALUES ('%e', 'N/A', '%e', '%e', '%e', '%e','0','%d')", DB_Escape(GetName(targetid)), DB_Escape(reason), DB_Escape(GetName(playerid)), DB_Escape(datestring), DB_Escape(timestring),pInfo[targetid][pDbID]);
mysql_pquery(handle,Query);
format(string, sizeof(string), "BAN: %s hat %s permanent gebannt. [Grund: %s]", GetName(playerid), GetName(targetid), reason);
SendBan(string);
format(string, sizeof(string), "%s bannt %s [Grund: %s]",GetName(playerid),GetName(targetid),reason);
Log(string,"ban");
BanCounter++;
TogglePlayerControllable(targetid,0);
SetTimerEx("KickTimer", 100, true, "i", targetid);
return 1;
}
Ich seh einfach den Fehler nicht...