Guten Morgen,
ich habe ein Problem mit einem Time Ban System. Wenn beispielsweise eingebe, das die Person 2 Stunden gebannt werden soll, dann steht in der Tabelle irgendeine lange Zahl ( zbs: 1419774815 )
Wenn ich dann noch auf den Server gehe, soll man eigentlich ein Dialog bekommen, dieser wird mir aber leider nicht angezeigt. Mir wird stattdessen der Dialog für das Einloggen angezeigt.
Jeffry: Bitteschön ;D
So sieht meine Tabelle aus ( alles richtig, bis auf die Ban Zeit http://i.epvpimg.com/HWQZg.png
Und hier der komplette Code, welcher zum Ban System gehört.
Erstellung der Tabelle:
mysql_function_query(DBHandle,"CREATE TABLE IF NOT EXISTS `Banned` (`IP` varchar(16) NOT NULL, `Name` varchar(24) NOT NULL, `Grund` varchar(126) NOT NULL, `Admin` varchar(24) NOT NULL, `Zeit` int(25) NOT NULL, `Datum` date NOT NULL, `Uhrzeit` time NOT NULL, PRIMARY KEY (`IP`))",false,"","");
Funktion um denn Spieler zu Bannen:
[pwn]stock BannPlayer(playerid,admin[],reason[],zeit = -1)
{
new query[256];
gettime(stunde,minute,sekunde);
getdate(jahr,monat,tag);
mysql_format(DBHandle, query, sizeof(query),"INSERT INTO `Banned` (`Name`,`Grund`,`Admin`,`IP`,`Zeit`,`Datum`,`Uhrzeit`) VALUES ('%s','%s','%s','%s','%d','d-d-d','d:d:d')",Spieler[playerid][pName],reason,Spielername(playerid),SpielerIP(playerid),zeit,jahr,monat,tag,stunde,minute,sekunde);
mysql_function_query(DBHandle,query,false,"","");
format(query,sizeof(query),"Admin: %s * Zielperson: %s * Grund: %s * Zeit: %i",admin,Spieler[playerid][pName],reason,zeit);
Log("Bannedsqllog",query);
SavePlayerData(playerid);
TogglePlayerControllable(playerid,0);
SetCameraBehindPlayer(playerid);
KickUser(playerid,"System", "Spieler wurde Gebannt!");
return 1;
}[/pwn]
{
new query[256];
gettime(stunde,minute,sekunde);
getdate(jahr,monat,tag);
mysql_format(DBHandle, query, sizeof(query),"INSERT INTO `Banned` (`Name`,`Grund`,`Admin`,`IP`,`Zeit`,`Datum`,`Uhrzeit`) VALUES ('%s','%s','%s','%s','%d','d-d-d','d:d:d')",Spieler[playerid][pName],reason,Spielername(playerid),SpielerIP(playerid),zeit,jahr,monat,tag,stunde,minute,sekunde);
mysql_function_query(DBHandle,query,false,"","");
format(query,sizeof(query),"Admin: %s * Zielperson: %s * Grund: %s * Zeit: %i",admin,Spieler[playerid][pName],reason,zeit);
Log("Bannedsqllog",query);
SavePlayerData(playerid);
TogglePlayerControllable(playerid,0);
SetCameraBehindPlayer(playerid);
KickUser(playerid,"System", "Spieler wurde Gebannt!");
return 1;
}[/pwn]
Funktion um zu schauen ob der Spieler Gebannt ist:
stock CheckPlayerBanned(playerid)
{
new query[256];
format(query,sizeof(query),"SELECT * FROM `Banned` WHERE IP = '%s' OR Name= '%s'",SpielerIP(playerid),Spielername(playerid));
mysql_function_query(DBHandle,query,true,"OnQueryFinish","siii",query,MySQL_Check_Ban,playerid,DBHandle);
return 1;
}
{
new query[256];
format(query,sizeof(query),"SELECT * FROM `Banned` WHERE IP = '%s' OR Name= '%s'",SpielerIP(playerid),Spielername(playerid));
mysql_function_query(DBHandle,query,true,"OnQueryFinish","siii",query,MySQL_Check_Ban,playerid,DBHandle);
return 1;
}
TimeBan Befehl:
ocmd:tban(playerid,params[])
{
new pID,reason[24],string[188],cmd[15],zeitdauer,zeit;
if(!IsPlayerAnAdmin(playerid,0)) return SendClientMessage(playerid,0xFF3C3CFF,"AdmCmd: Sie besitzen nicht die n�tigen Rechte um diesen Befehl zu nutzen!");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xEE8613FF,"Der angegebene Spieler ist nicht eingeloggt!");
if(sscanf(params,"uds[15]s[24]",pID,zeit,cmd,reason)) return SendClientMessage(playerid,0x00D2D2FF,"Info: /tban [Spieler ID] [Zeit] [Minuten/Stunden/Tage] [Grund]");
if(strlen(reason) > 24)return SendClientMessage(playerid,0x0D2D2FF,"Info: [Grund darf maximal 24 Zeichen beinhalten]");
if(strcmp(cmd,"Wochen",true) == 0)
{
zeitdauer = gettime()+(60*60*24*7*zeit);//Wochen
format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Woche/n gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
SendClientMessageToAll(0xE5E5E5FF,string);
format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Woche/n\nGrund: %s\nAdmin: %s",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
return 1;
}
if(strcmp(cmd,"Tage",true) == 0)
{
zeitdauer = gettime()+(60*60*24*zeit);//Tage
format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Tag/e gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
SendClientMessageToAll(0xE5E5E5FF,string);
format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Tag/e\nGrund: %s\nAdmin: %s\n\n",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
return 1;
}
if(strcmp(cmd,"Stunden",true) == 0)
{
zeitdauer = gettime()+(60*60*zeit);//Stunden
format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Stunde/n gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
SendClientMessageToAll(0xE5E5E5FF,string);
format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Stunde/n\nGrund: %s\nAdmin: %s",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
return 1;
}
if(strcmp(cmd,"Minuten",true) == 0)
{
zeitdauer = gettime()+(60*zeit);//Minuten
format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Minute/n gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
SendClientMessageToAll(0xE5E5E5FF,string);
format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Minute/n\nGrund: %s\nAdmin: %s",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
return 1;
}
return SendClientMessage(playerid,0x00D2D2FF,"Info: /tban [playerid/Name][Zeit][Minuten/Stunden/Tage/Wochen][Grund]");
}
{
new pID,reason[24],string[188],cmd[15],zeitdauer,zeit;
if(!IsPlayerAnAdmin(playerid,0)) return SendClientMessage(playerid,0xFF3C3CFF,"AdmCmd: Sie besitzen nicht die n�tigen Rechte um diesen Befehl zu nutzen!");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xEE8613FF,"Der angegebene Spieler ist nicht eingeloggt!");
if(sscanf(params,"uds[15]s[24]",pID,zeit,cmd,reason)) return SendClientMessage(playerid,0x00D2D2FF,"Info: /tban [Spieler ID] [Zeit] [Minuten/Stunden/Tage] [Grund]");
if(strlen(reason) > 24)return SendClientMessage(playerid,0x0D2D2FF,"Info: [Grund darf maximal 24 Zeichen beinhalten]");
if(strcmp(cmd,"Wochen",true) == 0)
{
zeitdauer = gettime()+(60*60*24*7*zeit);//Wochen
format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Woche/n gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
SendClientMessageToAll(0xE5E5E5FF,string);
format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Woche/n\nGrund: %s\nAdmin: %s",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
return 1;
}
if(strcmp(cmd,"Tage",true) == 0)
{
zeitdauer = gettime()+(60*60*24*zeit);//Tage
format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Tag/e gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
SendClientMessageToAll(0xE5E5E5FF,string);
format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Tag/e\nGrund: %s\nAdmin: %s\n\n",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
return 1;
}
if(strcmp(cmd,"Stunden",true) == 0)
{
zeitdauer = gettime()+(60*60*zeit);//Stunden
format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Stunde/n gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
SendClientMessageToAll(0xE5E5E5FF,string);
format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Stunde/n\nGrund: %s\nAdmin: %s",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
return 1;
}
if(strcmp(cmd,"Minuten",true) == 0)
{
zeitdauer = gettime()+(60*zeit);//Minuten
format(string,sizeof(string),"{FF1111}Ban Info: {E5E5E5}Der Admin %s (ID:%i) hat den Spieler %s (ID:%i) für %i Minute/n gebannt.- {FF7979}Grund: {E5E5E5}%s",Spieler[playerid][pName],playerid,Spieler[pID][pName],pID,zeit,reason);
SendClientMessageToAll(0xE5E5E5FF,string);
format(string,sizeof(string),"%s du wurdest vom Server gebannt.\nFalls du zu unrecht gebannt wurdest,\nmelde dich im Teamspeak³ oder schreibe uns im Forum.\n\nDauer: %i Minute/n\nGrund: %s\nAdmin: %s",Spieler[pID][pName],zeit,reason,Spieler[playerid][pName]);
ShowPlayerDialog(pID,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Bann",string,"Verlassen","");
BannPlayer(pID,Spieler[playerid][pName],reason,zeitdauer);
return 1;
}
return SendClientMessage(playerid,0x00D2D2FF,"Info: /tban [playerid/Name][Zeit][Minuten/Stunden/Tage/Wochen][Grund]");
}
OnQueryFinish:
public OnQueryFinish(index[],sqlresultid,extraid,SconnectionHandle)
{
new rows,fields;
switch(sqlresultid)
{
case MySQL_Check_Ban:
{
new zeit,query[126],Admin[24],Grund[126],result[25];
cache_get_data(rows,fields);
if(rows)
{
cache_get_field_content(0,"Grund",Grund);
cache_get_field_content(0,"Admin",Admin);
cache_get_field_content(0,"Zeit",result);
zeit = strval(result);
if(zeit == -1)
{
format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nGrund:%s\nTeammitglied:%s",Spielername(extraid),Grund,Admin);
ShowPlayerDialog(extraid,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,"{FFFFFF}SmR: {308EAD}Gesperrt",query,"Verlassen","");
TogglePlayerControllable(extraid,0);
KickUser(extraid,"System", "Spieler wurde Gebannt!");
return 1;
}
else
{
if(gettime() < zeit)
{
new timebanned = zeit-gettime();
SendClientMessage(extraid,0xEE8613FF,"Verbindung unterbrochen...");
if(floatround(timebanned/86400) > 0)//Tage
{
format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nDauer: %i\nGrund:%s\nTeammitglied:%s",Spielername(extraid),timebanned/86400,Grund,Admin);
}
else if(floatround(timebanned/3600) > 0)//Stunden
{
format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nDauer: %i\nGrund:%s\nTeammitglied:%s",Spielername(extraid),timebanned/3600,Grund,Admin);
}
else if(floatround(timebanned/60) > 0 || floatround(timebanned%60) > 0)//Minuten,Sekunden
{
format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nDauer: %i\nGrund:%s\nTeammitglied:%s",Spielername(extraid),timebanned/60,timebanned%60,Grund,Admin);
}
ShowPlayerDialog(extraid,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,"{FFFFFF}SmR: {308EAD}Gesperrt",query,"Verlassen","");
TogglePlayerControllable(extraid,0);
KickUser(extraid,"System", "Spieler wurde Gebannt!");
}
else
{
format(query,sizeof(query),"DELETE FROM `Banned` WHERE IP ='%s' OR Name = '%s'",SpielerIP(extraid),Spielername(extraid));
mysql_function_query(DBHandle,query,false,"","");
}
return 1;
}
}
}
}
return 1;
}
{
new rows,fields;
switch(sqlresultid)
{
case MySQL_Check_Ban:
{
new zeit,query[126],Admin[24],Grund[126],result[25];
cache_get_data(rows,fields);
if(rows)
{
cache_get_field_content(0,"Grund",Grund);
cache_get_field_content(0,"Admin",Admin);
cache_get_field_content(0,"Zeit",result);
zeit = strval(result);
if(zeit == -1)
{
format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nGrund:%s\nTeammitglied:%s",Spielername(extraid),Grund,Admin);
ShowPlayerDialog(extraid,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,"{FFFFFF}SmR: {308EAD}Gesperrt",query,"Verlassen","");
TogglePlayerControllable(extraid,0);
KickUser(extraid,"System", "Spieler wurde Gebannt!");
return 1;
}
else
{
if(gettime() < zeit)
{
new timebanned = zeit-gettime();
SendClientMessage(extraid,0xEE8613FF,"Verbindung unterbrochen...");
if(floatround(timebanned/86400) > 0)//Tage
{
format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nDauer: %i\nGrund:%s\nTeammitglied:%s",Spielername(extraid),timebanned/86400,Grund,Admin);
}
else if(floatround(timebanned/3600) > 0)//Stunden
{
format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nDauer: %i\nGrund:%s\nTeammitglied:%s",Spielername(extraid),timebanned/3600,Grund,Admin);
}
else if(floatround(timebanned/60) > 0 || floatround(timebanned%60) > 0)//Minuten,Sekunden
{
format(query,sizeof(query),"%s, du wurdest vom Server Gesperrt.\nFalls du zu unrecht Gesperrt wurdest,\nmelde dich bei einem Teammitglied im Forum, oder schreibe uns im Teamspeak³ an!\n\nDauer: %i\nGrund:%s\nTeammitglied:%s",Spielername(extraid),timebanned/60,timebanned%60,Grund,Admin);
}
ShowPlayerDialog(extraid,Dialog_Gebannt,DIALOG_STYLE_MSGBOX,"{FFFFFF}SmR: {308EAD}Gesperrt",query,"Verlassen","");
TogglePlayerControllable(extraid,0);
KickUser(extraid,"System", "Spieler wurde Gebannt!");
}
else
{
format(query,sizeof(query),"DELETE FROM `Banned` WHERE IP ='%s' OR Name = '%s'",SpielerIP(extraid),Spielername(extraid));
mysql_function_query(DBHandle,query,false,"","");
}
return 1;
}
}
}
}
return 1;
}