Beiträge von Weihnachtsmann
-
-
Hey,
Ich habe mir gestern ein TeamSpeak³ Server auf Nitrado bestellt, doch jetzt frage ich mich, wie ich in das Control Panel komme, also von Psychokiller.
Wenn ich mir ein Query mit dem Namen 'ServerAdmin' erstellen möchte kommt eine Fehlermeldung mit 'Database error'
Wie klappt das?mfg
-
Musst ja noch die Freeze Variable auf 1 stellen, wenn ich mich nicht falsch liege
-
Hallo,
hiermit verkaufe ich meine WBB3 Lizenz.
Verkauft wird der ganze Account mit Lizenz.
Als Zahlungsmöglichkeiten PSC und Paypal
Der Preis für die Lizenz beträgt 35€ Festpreis.Wer Interesse hat, soll
sich bei mir per PN melden und bekommt einen Screenshot der Lizenz.MfG
[Folgendes muss im Thema enthalten sein und darf nicht entfernt werden:]
______
Unverbindlicher Hinweis: Die Sicherheit einer Transaktion kann am besten durch die Einschaltung eines Mittelsmannes gewährleistet werden. Weitere Informationen dazu gibt es hier. -
Hey,
Wenn man sich auf meinem Server anmeldet und dann z.b direkt Kills macht oder Tode und sich dann ausloggt, speichert er nicht.
Aber wenn er sich dann wieder einloggt und Kills und Tode macht, werden die dann erst gespeichert.
Ich frage mich wieso..
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_LOGIN:
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password='%s'",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
}else{
//Keine Eingabe
SendClientMessage(playerid,ROT,"Gibt bitte dein Passwort ein.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
}
}else{
Kick(playerid);
}
}
case DIALOG_REGISTER:
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>3)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
mysql_function_query(dbhandle,query,false,"","");
}else{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,ROT,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
}
}else{
Kick(playerid);
}
}
public OnPasswordResponse(playerid)
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
//Passwort richtig
SendClientMessage(playerid,GELB,"Du hast dich erfolreich eingeloggt!");
sInfo[playerid][pEingeloggt] = 1;
sInfo[playerid][pLevel] = cache_get_field_content_int(0,"level",dbhandle);
sInfo[playerid][pAdmin] = cache_get_field_content_int(0,"adminlevel",dbhandle);
sInfo[playerid][pPoints] = cache_get_field_content_int(0,"points",dbhandle);
sInfo[playerid][pKills] = cache_get_field_content_int(0,"kills",dbhandle);
sInfo[playerid][pTod] = cache_get_field_content_int(0,"tode",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][pLevel]);
sInfo[playerid][PlayerID] = cache_get_field_content_int(0,"id",dbhandle);
GivePlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
}
else
{
//Passwort falsch
SendClientMessage(playerid,ROT,"Das eingegebene Passwort ist falsch.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
}
return 1;
} -
du rechnsest es einfach um
Vorhandener Timestamp - aktueller timestamp
Damit erhälst du eine differenz jenachdem musst du es nur Teilen wie du es haben willst ob stunde / minute etc
Wie würde es in Tagen aussehen? -
Hey,
also ich mache gerade ein Premium System und wollte es nun so machen, das man unter /stats die Tage sieht, wie lange man noch Premium ist.
Doch, wie geht das?mfg
-
Du lädst es einfach wie andere zahlen->integer, wie zb. fraktionen etc.
Nur das es anders heißt.
Wie lang muss die DB Länge sein bei der Spalte. -
Hallo,
Irgendwie funktioniert mein Mysql System nicht ganz, i.wie lädt er die Accounts bei 2 Login bzw. der Stock/Public wird erst beim 2. Login ausgeführt?
Das habe ich herausgefunden, in dem die Message erst beim 2.Login kam
Ich bin echt verwirrt.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_LOGIN:
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>0)
{
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password='%s'",name,passwort);
mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
}else{
//Keine Eingabe
SendClientMessage(playerid,ROT,"Gibt bitte dein Passwort ein.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
}
}else{
Kick(playerid);
}
}
case DIALOG_REGISTER:
{
if(response)
{
new name[MAX_PLAYER_NAME],query[128],passwort[35];
GetPlayerName(playerid,name,sizeof(name));
if(strlen(inputtext)>3)
{
//Registrierungsfunktion
mysql_escape_string(inputtext,passwort,dbhandle);
format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
mysql_function_query(dbhandle,query,false,"","");
}else{
//Kleiner als 4 Zeichen
SendClientMessage(playerid,ROT,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
}
}else{
Kick(playerid);
}
}
public OnPasswordResponse(playerid)
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
//Passwort richtig
SendClientMessage(playerid,GELB,"Du hast dich erfolreich eingeloggt!");
sInfo[playerid][pEingeloggt] = 1;
sInfo[playerid][pLevel] = cache_get_field_content_int(0,"level",dbhandle);
sInfo[playerid][pAdmin] = cache_get_field_content_int(0,"adminlevel",dbhandle);
sInfo[playerid][pPoints] = cache_get_field_content_int(0,"points",dbhandle);
sInfo[playerid][pKills] = cache_get_field_content_int(0,"kills",dbhandle);
sInfo[playerid][pTod] = cache_get_field_content_int(0,"tode",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][pLevel]);
sInfo[playerid][PlayerID] = cache_get_field_content_int(0,"id",dbhandle);
GivePlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
}
else
{
//Passwort falsch
SendClientMessage(playerid,ROT,"Das eingegebene Passwort ist falsch.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
}
return 1;
} -
einfach als integer
format(query,sizeof(query),"UPDATE user SET `premium`='%d' WHERE id='%i'",ZetAbgelaufen,sInfo[playerid][PlayerID]);
und wie lese ich das aus, weil i.wo muss man ja das gespeichert haben oder nicht? -
Klar, die Funktion "gettime()" (Ohne Parameterangaben) gibt dir nen aktuellen Timestamp aus.
Auf diesen rechnest Du einfach 7 Tage in Sekunden drauf (7*24*60*60 = 604800)Sprich:
new ZeitAbgelaufenIn = gettime()+604800;
Abfragen kannste das dann mit:
if(gettime() >= ZeitAbgelaufenIn)Ist in diesem Fall nur ein Beispiel. Das kannst Du im prinzip auch mit jedem anderen Zeitintervall durchziehen.
Die nötige Zeit für einen Tag wäre z.B. zu errechnen durch: 24*60*60 = 86400
Ah jetzt verstehe ich das :), ich dank dir.
Doch, wie speichere ich das jetzt?
format(query,sizeof(query),"UPDATE user SET premium WHERE id='%i'",ZetAbgelaufen,sInfo[playerid][PlayerID]);
mysql_function_query(dbhandle,query,false,"",""); -
Dank dir, doch könnte vielleicht einer ein Beispiel machen, wie das so ungefähr mit dem 7Tage Premium geht?
Wäre korrektmfg
-
Hey,
Ich wollte ein Premiumsystem machen, das man halt 7Tage Premium bekommt und es automatich wieder entfernt.
Doch ich weiß nicht wie ich anfangen soll, da ich eh Probleme mit Timestamp habe da ich es einfach nicht verstehemfg
-
Also, wenn ich ein String auslesen möchte, gibt er mir immer im Chat "NULL" aus?
Wieso kommt das
public OnUserCheckBan(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
new str[128];
new destination[25];cache_get_row(0, 3, destination);
format(str,128,"Grund: %s",destination);
SendClientMessage(playerid,ROT,str);
}
return 1;
}mfg
-
Nicht zwingend notwendig, wenn du nur 1 Verbindung im Script aufbaust.
kannst du natürlich aber trotzdem machen:
cache_get_row(0, X, destination, dbhandle);MfG
müsste das gehen? xd
public OnUserCheckBan(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
new str[128];
new destination[25];cache_get_row(0, 3, destination);
format(str,128,"Grund: %s",destination);
SendClientMessage(playerid,ROT,str);
}
return 1;
}// Da kommt Grund: NULL
-
Sollte auch so funktionieren:
new destination[25];cache_get_row(0, X, destination);bei X musst du dann die ID vom Feld grund einfügen,
sprich hast du eine Tabelle:0) id,
1)name,
2)password,
3)score,
4)money,
5)grundwär Grund (also X) = 5, da von 0 an gezählt wird
Muss nicht da irgendwo noch die dbhandle hin? xd -
Das ist mir schon klar.
Guck dir mal die Parameter an.- row - Hast du in dem Fall 0
- field_name - In deine Fall "grund" <- So sollte auch der Spaltenname lauten
- destination - Hast du keine. Du musst den string auch irgendwo lagern.
new destination[25];
cache_get_field_content(0,"grund",destination,dbhandle);Hier mein Ban Befehl, wo kann ich den Grund speichern blicke gerade nicht durch xd
COMMAND:ban(playerid,params[])
{
new grund[32],string[128],pID,query[128];
if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid,GRAU,"** Du bist nicht eingeloggt!");
if(!IsPlayerTheAdmin(playerid,3)) return SendClientMessage(playerid,GRAU,"Du bist nicht berechtigt diesen Befehl zu benutzen!");
if(sscanf(params,"us[32]",pID,grund)) return SendClientMessage(playerid,GRAU,"Benutze: /ban [SpielerName/ID] [Grund]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,GRAU,"Dieser Spieler ist nicht online");
format(string,128,"[KICK] Admin %s hat den Spieler %s vom Server gebannt, Grund: %s",PlayerName(playerid),PlayerName(pID),grund);
SendClientMessageToAll(ROT,string);
format(query,sizeof(query),"INSERT INTO bannedplayers (username,admin,grund) VALUES ('%s','%s','%s')",PlayerName(pID),PlayerName(playerid),grund);
mysql_function_query(dbhandle,query,false,"","");
Kick(pID);
return 1;
} -
Du musst den Grund auch irgendwo reintun
Code(row, const field_name[], destination[], connectionHandle = 1, max_len = sizeof(destination)) rowThe row's index (starts at '0'). const field_name[]The field's name. destination[]The string to store the data into. connectionHandleThe connection handle this will be processed on (optional). max_lenThe size of the destination string (optional).
Ich will, das man den Grund aus der DB liest -
cache_get_field_content
error 035: argument type mismatch (argument 3)
cache_get_field_content(0,"grund",dbhandle); -
Wie liest man beim Mysql Plugin R34 ein String aus der Datenbank?
Will z.b einen Namen auslesenmfg