Hallo,
Was bedeutet "INVALID_PLAYER_ID" ?
Hallo,
Was bedeutet "INVALID_PLAYER_ID" ?
Das sind viel zu viele Zeichen.
168 Zeichen, ohne dass die Platzhalter ausgefüllt worden sind. Das ist zu viel. Entweder du machst es in 2 Zeilen, oder du machst die Farben weg.
Maximum ist 144 Zeichen. Mehr wird nicht angezeigt. Wenn du mehr anzeigen willst, siehst du gar nichts mehr, daher msg auf 144 lassen.
hmm nagut danke dir
wurde ganz ediert:
new msg[144];
format(msg, sizeof(msg), "{FF0000}[Info] {FFFFFF}Du bist noch {FF9A00}%d Tag(e) {FFFFFF}|| {FF9A00}%d Stunde(n) {FFFFFF}|| {FF9A00}%d Minute(n) {FFFFFF}|| {FF9A00}%d Sekunde(n){FFFFFF} gebannt! ", d, h, m, s);
SendClientMessage(playerid, Farbe, msg);
ingame:
probier es mal mit den:
in den Plugins ordner!
ich habe schon probiert mal auf 150 .. 200.. aber dann kommt garnichts mehr
Alles anzeigenDort wo er gekickt wird, für "noch gebannt":
new ts = SpielerInfo[playerid][pTBan] - gettime();
new d = ts / 86400;
ts -= d * 86400;
new h = ts / 3600;
ts -= h * 3600;
new m = ts / 60;
ts -= m*60;
new s = ts;
new msg[144];
format(msg, sizeof(msg), "Du bist noch %d Tag(e) / %d Stunde(n) / %d Minute(n) / %d Sekunde(n) gebannt.", d, h, m, s);
SendClientMessage(playerid, 0xFF0000FF, msg);
bei mir wird der text ab"sekunden" abgebrochen... -.-
fail sry ..
Hallo Leute ich habe wieder mal ein Problem -.-
WIe stelle ich ein , wie lange der text werden soll? Also das nicht ab der mitte schon abgebrochen wird, sondern das der Text bis ganz hinten durch kann ?
Alles anzeigenDort wo er gekickt wird, für "noch gebannt":
new ts = SpielerInfo[playerid][pTBan] - gettime();
new d = ts / 86400;
ts -= d * 86400;
new h = ts / 3600;
ts -= h * 3600;
new m = ts / 60;
ts -= m*60;
new s = ts;
new msg[144];
format(msg, sizeof(msg), "Du bist noch %d Tag(e) / %d Stunde(n) / %d Minute(n) / %d Sekunde(n) gebannt.", d, h, m, s);
SendClientMessage(playerid, 0xFF0000FF, msg);
ich werde zwar ganz normal gekickt, aber da steht nichts das ich noch gebannt bin... ?
Das kannst du ja in einem extra Stat speichern. Der Timestamp muss bleiben, sonst geht dein ganzer Code nicht mehr.
Das Zurücksetzen:
SpielerInfo[playerid][pTBan] = 0;
Danach musst du den Spieler natürlich auch wieder speichern.
danke dir Jeffry ! das mit den Minuten lass ich einfach ! Danke !
ich hätte noch eine Frage:
Wie erstell ich dass wenn ich jetzt z.b. 3 min. gebannt wurde und wenn ich jetzt z.b. online gehe , und da steht "du bist noch 0 Jahre 0Tage 1 Minute und 3 sekunden verbannt! ?
Dann setze dort, wo du den Spieler entbannst: (Hier: if(SpielerInfo[playerid][pTBan] <= gettime()))
SpielerInfo[playerid][pTBan] = 0;
Diese "so eine Zahl" ist der Timestamp, an dem du entbannt wirst.
http://www.epochconverter.com/
ah kann man den auch den Timestamp so umsetzten dass es NUR in Minuten angezeigt wird ? Also zb: ... wurde verbannt vom server für 1 Minute Grund: test. dann sollte auch in der Datenbank stehen "1"
und das mit "SpielerInfo[playerid][pTBan] = 0;" geht nicht, es bleibt immer noch so eine "riesige Zahl".
//EDIT: Das mit SpielerInfo[playerid][pTBan] = 0; geht jetzt!
Alles anzeigenStimmt doch alles!
Du speicherst den Timestamp des Unbans.
wert = gettime() + (60*zeit);
Ebenso fragst du ihn ab, also passt doch alles. Ich verstehe immer noch nicht wo dein Problem ist, das funktioniert so.
Teste es doch mal.
so jetzt habe ich mich für 1 minute verbannt. da kommt da wieder so eine zahl raus: "1409671733" -> und ich habe 1 minute gewartet .. dann bin ich zwar entbannt , aber ihn der Datenbank steht immer noch "1409671733 " eigentlich sollte da jetzt " 0 " stehen..
Das wird dann wohl der Timestamp sein. Poste doch mal den Code mit dem du den Spieler zeitlich begrenzt bannst und mit dem du TBan speicherst.
hier einmal die abfrage ob er noch gebannt ist oder nicht :. unter "Stock loadplayer"
if(SpielerInfo[playerid][pTBan] <= gettime())
{
//ist entbannt
return 1;
}
else
{
//ist gebannt
Kick(playerid);
}
}
ocmd:tban(playerid,params[])
{
new pID, zeit, grund[128];
if(SpielerInfo[playerid][pAlevel] >= 1)
if(sscanf(params,"uis",pID,zeit,grund))return SendClientMessage(playerid,Farbe,"{FF0000}[Info] {FFFFFF} /tban [ID/Spieler] [Zeit] [Grund]");
if(IsPlayerConnected(pID))
{
if(zeit > 0 && zeit < 1000) // meinst du dies?
{
new string[128];
format(string,sizeof(string),"{FF0000}[Info] %s {FFFFFF}hat {FF0000}%s {FFFFFF}für {FF0000}%i Minute/n {FFFFFF}vom Server gebannt. {FF0000}Grund: %s!",GetName(playerid),GetName(pID),zeit,grund);
SendClientMessageToAll(Farbe,string);
new wert;
wert = gettime() + (60*zeit);
SpielerInfo[pID][pTBan] = wert;
Kick(pID);
return 1;
}
}
und da ist der Befehl allgemein
ja nur das ding ist , wenn ichjetzt z.b. jemanden tban , kommt da eine kommazahl raus .. und das will ich nicht! ich will das da zb. 5 steht also 5 min. verbannt.
//EDIT:
ich habe es grad wieder versucht und steht jetz "1409673151" obwohl ich nur für 5 min. verbannt habe .. . -.-
In der SQL ist es doch auf "Integer" gestellt? Mach mal bitte einen Screen von der Struktur der Tabelle.
Musst Du doch wissen?
ja dann ist es die richtige
Das kann nicht sein. Du machst irgendwas falsch. Wenn Du in der SQL Datei einträgst, dass es ein Integer Feld ist, dann macht er daraus auch eins und sucht sich nicht irgendwas anderes raus. Gib mal Deine SQL Datei bitte.
ist es die richtige? :
Dann frage ich dich: Hast du schonmal die .sql Datei runtergeladen, das Ganze manuell eingetragen und diese .sql Datei importiert?
Dann müsste es nämlich gehen
ich hab es gemacht, geht nicht..
Hallo !
Da ich ein TBan befehl erstellen will, muss ich auch bei der Mysql datenbank die zahl auf "intger" stellen.. weil es minuten sind.. Nun mein problem ist: wenn ich immer auf Intger stelle, und dann auf speichern klicke, wird es automatisch zurück gesetzt...
mFG