Hallo Brotfische,
Ich arbeite gerade an meinem Timeban-System doch leider geht es nicht ganz... in der Datenbank enstehen zwar Einträge aber beim Login, kann ich mich trozdem einloggen obwohl ich "gebannt" bin.
Datenbank:
Datenbank Struktur:
Die Codes:
stock TBan(playerid,const string[],dauer,bannerid)
{
new sing[800];
new timestamp;
timestamp = gettime();
new sekunden = dauer * 60;
timestamp += sekunden;
new name[MAX_PLAYER_NAME],bannername[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
GetPlayerName(bannerid,bannername,sizeof(bannername));
format(sing,sizeof(sing),"* %s wurde von %s %s für %d Minuten gebannt.",name,bannername,dauer);
SendClientMessageToAll(C_Error,sing);
format(str,sizeof(sing),"Grund: %s",string);
SendClientMessageToAll(C_Error,sing);
Kick(playerid);
new query[900];
format(query,sizeof(query),"INSERT INTO TimeBan (Name,Datum) VALUES ('%s','%d')",name,timestamp);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
ocmd:tban(playerid,params[])
{
if(!isAdmin(playerid,2))return SendClientMessage(playerid,C_Error,"Du hast keine Berechtigung für diesen Befehl!");
new pID,grund[64],dauer;
if(sscanf(params, "usi", pID, grund,dauer))return SendClientMessage(playerid, 0xFF004BFF, "/tban [ID] [Grund] [Dauer(in min.)]");
TBan(pID,grund,dauer,playerid);
return 1;
}
// Das ist kurz vor dem Login Dialog:
new timestamp = gettime();
new mysqlquery[700];
format(mysqlquery, sizeof(mysqlquery), "SELECT Datum FROM TimeBan WHERE Name = '%s'",getPlayerName(playerid));
new bisgebannt = mysql_function_query(dbhandle,mysqlquery,false,"","");
if(timestamp < bisgebannt)
{
new differenz = bisgebannt - timestamp;
new minuten = differenz / 60;
new string[64];
format(string,sizeof(string),"Du bist noch %i Minuten gebannt!",minuten);
SendClientMessage(playerid,0xFAFAFAFF,string);
Kick(playerid);
}
Ich hoffe es kann mir jemand helfen
MfG German_ScripterHD
.