Morgen,
Ich habe mich eben an einen Timeban Befehl gesetzt.
Das Timeban geht, aber wenn ich sofort wieder connecte kann ich mich einloggen.
ocmd:tban(playerid,params[])
{
new str[180],grund[40],pID,dauer;
if(Spieler[playerid][SpielerAdmin]<3)return KeinAdmin(playerid)
if(sscanf(params,"uis[40]",pID,dauer,grund))return SendClientMessage(playerid,grau,"Benutze: /tban [SpielerID | Name] [Dauer(in Minuten)] [Grund]");
new timestamp=gettime(),sekunden=dauer*60;
timestamp+=sekunden;
format(str,180,"AdmCmd: %s wurde von Administrator %s für %d Minuten gebannt, Grund: %s",GetName(pID),GetName(playerid),dauer,grund);
SendClientMessageToAll(arot,str);
format(str,180,"UPDATE `accounts` SET `TBan`='%d' WHERE `SpielerName`='%s'",dauer,GetName(pID));
mysql_tquery(handle,str,"","");
Kick(pID);
return 1;
}
//OnPlayerConnect
format(query,128,"SELECT `TBan` FROM `accounts` WHERE `SpielerName`='%s'",GetName(playerid));
mysql_tquery(handle,query,"OnTBanLoad","d",playerid);
public OnTBanLoad(playerid)
{
new row,field;
cache_get_data(row,field,handle);
if(row == 1)
{
new timestamp=gettime(),str[128];
Spieler[playerid][TBan]=cache_get_field_content_int(0,"TBan",handle);
if(timestamp<Spieler[playerid][TBan])
{
new differenz=Spieler[playerid][TBan]-timestamp,minuten=differenz/60;
format(str,128,"AdmCmd: Du bist noch für %d Minuten gebannt!",minuten);
SendClientMessage(playerid,arot,str);
Kick(playerid);
return 1;
}
}
else if(row==0)return 1;
return 1;
}
Die Minuten werden in der DB auch nicht runtergezählt, und die Nachricht beim connecten kommt auch nicht.