Ist das auch für Dini da ich mich mit MYsql überhaupt nicht auskenne.
Timeban System
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Ist das auch für Dini da ich mich mit MYsql überhaupt nicht auskenne.
Natürlich. Du musst ja nur eine Sache (den UNIX-Timestamp) abspeichern und später wieder laden.
Das ist natürlich mit jedem Filesystem möglich
Falls du Hilfe brauchst melde dich per PN.MfG, Keks
-
Hi,
ich habe alles so gemacht wie im Tut, nur er speichert die Zeit scheinbar nicht, weil ich mich trotzdem einloggen kann.MFG
-
Moin...benutze Mysql
jedoch bekomme ich bei deinem System einen Error:
undefined Symbol mysql_SetInt
jemand n plan wie ich das definieren kann? -
Baus dir in ein eigenen Query um das hat er leider mit dem Stock geregelt
-
Danke für die schnelle antwort..
kann mir vllt jemand einen stock dafür schreiben?
Ich bin eig eher der dini fan..bin nun aber gezungen mysql zu benutzen^^ und kenne mich damit kaum aus. -
Guten Tag,
Im voraus tut mir leid, dass ich dieses ältere Thema nochmal ausgrabe, aber mein Problem ist, das er nicht die Zeit speichertBefehl:
ocmd:tban(playerid,params[])
{
new pID,reason[64],dauer,string[128];
new timestamp;
timestamp = gettime();
new sekunden = dauer * 60;
timestamp += sekunden;
if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,0xFF000F95,"[INFO]: Du bist kein Admin!");
if(sscanf(params, "usi", pID, reason,dauer))return SendClientMessage(playerid, 0xFF004BFF, "/tban [ID] [Grund] [Dauer (in Minuten)]"); //wir speichern die 3 hinter dem Command angegeben Parameter in Variablen. Wenn nicht genau 3 Parameter angegeben wurden, wird eine ClientMessage returnt, in der der Admin angezeigt bekommt was genau er einzugeben hat
if(!IsPlayerConnected(pID) || pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xBEBEBEFF,"[INFO]:Diesen Spieler gibt es nicht!");
format(string,sizeof(string),"AdmCmd: %s wurde von %s für %d Minuten gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),dauer,reason);
SendClientMessageToAll(ROT,string);
mysql_SetInt("accounts", "TBan", timestamp, "Name", SpielerName(pID));
Kick(playerid);
return 1;
}
Spieler Laden:
stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new timestamp = gettime();
new bisgebannt = mysql_GetInt("accounts", "TBan", "Name", name);
if(timestamp < bisgebannt) //wenn der gerade genommene Timestamp kleiner als bisgebannt ist, liegt das entbannungsdatum in der Zukunft.
{
new differenz = bisgebannt - timestamp; //wir subtrahieren bisgebannt von timestamp, wir erhalten also die Zeit in Sekunden wie lange der Spieler noch gebannt ist.
new minuten = differenz / 60; //wir machen aus den Sekunden Minuten....
new str[64]; //neuer String wird deklariert....
format(str,sizeof(str),"Du bist noch %i Minuten gebannt!",minuten); //So bekommt der Spieler sogar noch angezeigt, wie langer er noch genau gebannt ist.
SendClientMessage(playerid,0xFAFAFAFF,str); //String wird dem Spieler ausgegeben
Kick(playerid);//Kick erfolgt
}
SetPlayerScore(playerid,mysql_GetInt("accounts", "Level", "Name", name)); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
GivePlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", name)); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
SetPVarInt(playerid,"Kills",mysql_GetInt("accounts", "Kills", "Name", name)); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
SetPVarInt(playerid,"Tode",mysql_GetInt("accounts", "Tode", "Name", name)); //Wir holen uns den wert der unter "Tode" eingetragen ist und Speichern ihn in unserer Variable.
SetPVarFloat(playerid,"Health",mysql_GetFloat("accounts", "Health", "Name", name));
SetPVarInt(playerid,"Adminlevel",mysql_GetInt("accounts", "Adminlevel", "Name", name));
SetPVarInt(playerid,"Banned",mysql_GetInt("accounts", "Banned", "Name", name));
}
if(GetPVarInt(playerid,"Banned")==1)
{
SendClientMessage(playerid,0xFF000050,"[INFO]: Du bist Gebannt, kontaktiere einen Admin um entbannt zu werden.");
Kick(playerid);
}
return 1;
}Hoffe mir kann jemand weiterhelfen.
MfG
AndyWalker -
Kann mit deiner sscanf Abfrage auch nicht klappen.
Da du die zeit nach dem grund haben willst, aber du dann bei Zeit automatisch den Grund mit angibst.
Mach es einfach so:
if(sscanf(params, "uis", pID, dauer, reason))return SendClientMessage(playerid, 0xFF004BFF, "/tban [ID] [Dauer (in Minuten)] [Grund]");MFG Piet
-
Guten Tag,
Im voraus tut mir leid, dass ich dieses ältere Thema nochmal ausgrabe, aber mein Problem ist, das er nicht die Zeit speichertBefehl:
ocmd:tban(playerid,params[])
{
new pID,reason[64],dauer,string[128];
new timestamp;
timestamp = gettime();
new sekunden = dauer * 60;
timestamp += sekunden;
if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,0xFF000F95,"[INFO]: Du bist kein Admin!");
if(sscanf(params, "usi", pID, reason,dauer))return SendClientMessage(playerid, 0xFF004BFF, "/tban [ID] [Grund] [Dauer (in Minuten)]"); //wir speichern die 3 hinter dem Command angegeben Parameter in Variablen. Wenn nicht genau 3 Parameter angegeben wurden, wird eine ClientMessage returnt, in der der Admin angezeigt bekommt was genau er einzugeben hat
if(!IsPlayerConnected(pID) || pID == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xBEBEBEFF,"[INFO]:Diesen Spieler gibt es nicht!");
format(string,sizeof(string),"AdmCmd: %s wurde von %s für %d Minuten gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),dauer,reason);
SendClientMessageToAll(ROT,string);
mysql_SetInt("accounts", "TBan", timestamp, "Name", SpielerName(pID));
Kick(playerid);
return 1;
}
Spieler Laden:
stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new timestamp = gettime();
new bisgebannt = mysql_GetInt("accounts", "TBan", "Name", name);
if(timestamp < bisgebannt) //wenn der gerade genommene Timestamp kleiner als bisgebannt ist, liegt das entbannungsdatum in der Zukunft.
{
new differenz = bisgebannt - timestamp; //wir subtrahieren bisgebannt von timestamp, wir erhalten also die Zeit in Sekunden wie lange der Spieler noch gebannt ist.
new minuten = differenz / 60; //wir machen aus den Sekunden Minuten....
new str[64]; //neuer String wird deklariert....
format(str,sizeof(str),"Du bist noch %i Minuten gebannt!",minuten); //So bekommt der Spieler sogar noch angezeigt, wie langer er noch genau gebannt ist.
SendClientMessage(playerid,0xFAFAFAFF,str); //String wird dem Spieler ausgegeben
Kick(playerid);//Kick erfolgt
}
SetPlayerScore(playerid,mysql_GetInt("accounts", "Level", "Name", name)); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
GivePlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", name)); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
SetPVarInt(playerid,"Kills",mysql_GetInt("accounts", "Kills", "Name", name)); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
SetPVarInt(playerid,"Tode",mysql_GetInt("accounts", "Tode", "Name", name)); //Wir holen uns den wert der unter "Tode" eingetragen ist und Speichern ihn in unserer Variable.
SetPVarFloat(playerid,"Health",mysql_GetFloat("accounts", "Health", "Name", name));
SetPVarInt(playerid,"Adminlevel",mysql_GetInt("accounts", "Adminlevel", "Name", name));
SetPVarInt(playerid,"Banned",mysql_GetInt("accounts", "Banned", "Name", name));
}
if(GetPVarInt(playerid,"Banned")==1)
{
SendClientMessage(playerid,0xFF000050,"[INFO]: Du bist Gebannt, kontaktiere einen Admin um entbannt zu werden.");
Kick(playerid);
}
return 1;
}Hoffe mir kann jemand weiterhelfen.
MfG
AndyWalker
/signMit freundlichen Grüßen,
-
einen entbann Befehl ist bei dieser Methode aber nicht möglich, oder?
-
Natürlich ist das möglich.
-
Ja, ich habe vergessen zu erwähnen, dass ich dieses Script gerne bei dini anwenden würde. Also wie kann ich auf einen dini account zugreifen, wenn der Spieler nicht online ist?