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

    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

    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;
    }


    Ah jetzt verstehe ich das :), ich dank dir.
    Doch, wie speichere ich das jetzt? :D



    format(query,sizeof(query),"UPDATE user SET premium WHERE id='%i'",ZetAbgelaufen,sInfo[playerid][PlayerID]);
    mysql_function_query(dbhandle,query,false,"","");

    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

    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


    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 ^^