Beiträge von Pride

    Was du mal versuchen kannst, da gab es auch schon mal Probleme: Entferne alle die MD5's, also alle MD5('%s') bzw MD5('%e') zu: '%s' bzw '%e'
    Geht es dann?

    Wenn ich alle MD5's entferne dann geht es wunderbar :)


    //EDIT:
    Wie kann ich das jetzt trz. hashen?


    //EDIT

    Mal so ne Frage was ich wenn ich die rows einfach drehe oder geht das nicht?

    War doch schon da oben ^^ egal habs ja an manchen Stellen nochmal editiert:

    forward OnPasswordResponse(playerid);
    public OnPasswordResponse(playerid)
    {
    new num_fields, num_rows;
    cache_get_data(num_rows, num_fields);
    if(num_rows == 0)
    {
    //Passwort falsch..
    /* Kamerafahrt */
    InterpolateCameraPos(playerid, 410.214721, -1902.890136, 1.724467, 702.832702, -1904.377319, 3.244797, 100000);
    InterpolateCameraLookAt(playerid, 410.543914, -1897.903930, 1.554080, 699.028930, -1901.132202, 3.214741, 100000);
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung - Passwort falsch", "Dein Passwort ist nicht richtig\nsolltest du es vergessen haben\nmelde dich im Forum.", "Anmelden", "Abbrechen");
    SetSpawnInfo(playerid,0,0,0,0,0,0,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    }
    else
    {
    //Passwort richtig..
    SendClientMessage(playerid,gelb, "Erfolgreich eingeloggt.");
    pInfo[playerid][pEingeloggt] = 1;
    LoadAccount(playerid);
    SpawnPlayer(playerid);
    }
    return 1;
    }

    Hier ist die Log:


    Meinst du das mit Login Code?

    if(dialogid == DIALOG_LOGIN)
    {
    if(!response)
    {
    return Kick(playerid);
    }
    new query[256];
    mysql_format(Handle, query, sizeof(query), "SELECT * FROM user WHERE username='%e' AND passwort=MD5('%e')", Spielername(playerid), inputtext);
    mysql_tquery(Handle, query, "OnPasswordResponse", "i", playerid);
    }

    Hier einmal das Spieler speichern:

    /* Account Speichern und Laden */
    stock LoadAccount(playerid)
    {
    pInfo[playerid][pEingeloggt] = 1;
    pInfo[playerid][pGeld] = cache_get_field_content_int(0, "Geld", Handle), GivePlayerMoney(playerid, pInfo[playerid][pGeld]);
    pInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level", Handle), SetPlayerScore(playerid, pInfo[playerid][pLevel]);
    pInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Adminlevel", Handle), SetPlayerScore(playerid, pInfo[playerid][pAdmin]);
    return 1;
    }
    stock SpielerSpeichern(playerid)
    {
    if(!pInfo[playerid][pEingeloggt])return 1;
    new query[128];
    mysql_format(Handle, query, sizeof query, "UPDATE `users` SET `Geld`='%i',`Level`='%i',`Adminlevel`='%i' WHERE `username`='%e'",GetPlayerMoney(playerid),GetPlayerScore(playerid),pInfo[playerid][pAdmin],Spielername(playerid)),
    mysql_pquery(Handle, query, "", "");
    return 1;
    }


    Ich habe auch gerade den MD5 Code kopiert und in den Dialog als Passwort eingefügt ist auch falsch wird ja auch eigentlich wieder
    zurück ins normale Passwort gehasht aber irgendwie kann ich da eingeben was ich will es kommt immer Passwort ist falsch,
    hab es mit nem Neuen Acc. auch getestet es ist das richtige Passwort.

    Nun wenn man vom Teufel spricht ich habe glaube ich ein Fehler in dieser Ecke.

    forward OnPasswordResponse(playerid);
    public OnPasswordResponse(playerid)
    {
    new num_fields, num_rows;
    cache_get_data(num_rows, num_fields);
    if(num_rows == 0)
    {
    //Passwort falsch..
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung - Passwort falsch", "Dein Passwort ist nicht richtig\nsolltest du es vergessen haben\nmelde dich im Forum.", "Anmelden", "Abbrechen");
    }
    else
    {
    //Passwort richtig..
    SendClientMessage(playerid,gelb, "Erfolgreich eingeloggt.");
    pInfo[playerid][pEingeloggt] = 1;
    LoadAccount(playerid);
    SpawnPlayer(playerid);
    }
    return 1;
    }


    Ich kann mich Registrieren bekomme mein "Test" Geld und "Test" Level dann logge ich mich aus doch wenn ich mich nun anmelden möchte
    kommt mein Passwort ist falsch.. Ich teste es eben nochmal mit nem neuen Acc. eventuell hab ich echt nen falsches Pw drinnen x'D
    Aber eigentlich sollte ich es richtig eingetippt haben.

    Hab ich auch nicht als Kritik aufgefasst wollte nur den Unterhaltungs Wert heben da meine beiden Monitore voll mit Script Sprache sind :D


    Noch ne Frage ist das noch aktuell mit dem

    Code
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, Handle);


    In seinem Tutorial hat irgendwer mal als Antwort geschrieben dort gibt es schon bessere Varianten
    ich würde gern von Anfang an nur das beste lernen. ^^

    Er hat nur einmal "password" verwendet, sonst immer "passwort"


    Bin ja schon still :p


    Wenn ich jetzt auf den Server komme kann ich mich mit dem Dialog registrieren es wird auch ein Eintrag in der Datenbank gemacht nun reloggte ich um zu
    testen ob ich mich jetzt anmelden muss aber nein, ich muss mir wieder ein Acc. erstellen.



    public OnPlayerConnect(playerid)
    {
    new query[256];
    format(query, sizeof(query), "SELECT * FROM user WHERE username='%e'", Spielername(playerid));
    mysql_tquery(Handle, query, "UserCheck", "i", playerid);
    ClearChat(playerid);
    return 1;
    }


    stock Spielername(playerid)
    {
    new name[24];
    GetPlayerName(playerid, name, 24);
    return name;
    }


    forward UserCheck(playerid);
    public UserCheck(playerid)
    {
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, Handle);
    if(num_rows == 0)
    {
    //Register..
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Neuanfang", "Herzlich willkommen, auf unserem Server\nBitte erstelle nun ein neuen Charakter.", "Anmelden", "Abbrechen");
    }
    else
    {
    //Login..
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Dein Charakter wartet schon auf dich, los logg dich ein.", "Anmelden", "Abbrechen");
    }
    }

    Meine Schuld wenn ich nur C & P mache und du solltest eventuell 'passwort' mit 'd' (password) schreiben sonst kommen da noch mehr fragen auf. ^^
    Weil in dem Tutorial von MrPawn immer 'password' verwendet wird.
    Ich teste es mal eben..


    if(dialogid == DIALOG_REGISTER)
    {
    if(!response)
    {
    return Kick(playerid);
    }
    if(strlen(inputtext) < 4)return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Anmeldung", "Dein Passwort ist zu kurz!", "Anmelden", "Abbrechen");
    new query[256], key[50], name[MAX_PLAYER_NAME];
    format(key, sizeof(key), inputtext);
    mysql_escape_string(Spielername(playerid), name);
    mysql_escape_string(key, key);
    format(query, sizeof(query), "INSERT INTO (username, passwort) VALUES ('%s',MD5('%s'))", name, key);
    mysql_tquery(Handle, query);
    SendClientMessage(playerid, 0xFFFFFFFF, "Dein Account wurde erstellt.");
    GivePlayerMoney(playerid, 50000);
    SetPlayerScore(playerid, 10);
    }

    Werde jetzt wahrscheinlich für ne halbe Stunde nicht antworten bin Essen aber noch eins jetzt bekomme ich ein Dialog kann auch ein PW eingeben und oben steht auch "Dein Account wurde erstellt." nur wenn ich dann ausmache und in die Datenbank schaue steht da kein Eintrag hier mal die Log.


    Ich bereue die Script Pause.. soviele Fragen in meinem Kopf :D

    Das ist mir jetzt ein wenig peinlich diese Worte in meine Tastatur reinzuhauen aber ich habe bei.. ach seh selbst :D

    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);
    if(mysql_errno() < 1)print("MySQL: Die Verbindung wurde erfolgreich hergestellt."),mysql_log(LOG_ALL); else print("MySQL: Die Verbindung zur MySQL Datenbank konnte nicht hergestellt werden | Der Server wird nun heruntergefahren."), SendRconCommand("exit");
    return 1;
    }


    Nun habe ich es dort entfernt und bei OnGameModeInit eingefügt... doch wenn ich auf dem Server join wieder nichts..


    MySQL Log:

    Ich habe gerade den ganzen Server noch mal geschlossen und gestartet nun die Log.


    Wieder

    Code
    [WARNING] CMySQLHandle::Create - connection already exists


    und eine Verbindung wird doch hier erstellt oder liege ich dort Falsch?
    //EDIT PWN Code berichtigt.

    public OnGameModeInit()
    {
    DisableInteriorEnterExits();
    ShowNameTags(1);
    EnableStuntBonusForAll(0);
    SetGameModeText("Roleplay Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATA, MYSQL_PASS);
    if(mysql_errno() < 1)print("MySQL: Die Verbindung wurde erfolgreich hergestellt."),mysql_log(LOG_ALL); else print("MySQL: Die Verbindung zur MySQL Datenbank konnte nicht hergestellt werden | Der Server wird nun heruntergefahren."), SendRconCommand("exit");
    return 1;
    }

    Demnach müsste doch nur eine Verbindung erstellt werden weil nirgendswo anders im Script ist mysql_connect.

    Hallo nach einer langen Pause wollte ich wieder Anfangen mit einem kleinem Gamemode,
    ich habe das Tutorial von MrPawn verwendet (LINK) ich habe eigentlich alles so geschrieben
    wie er, leichte Optimierungen durch andere Forum User. Nun wenn ich auf den Server join
    kommt kein Dialog es kommt einfach nichts da es noch ein Blank Script ist kann ich einfach auf
    Spawn klicken und es tut sich nichts kein Dialog kein garnichts..


    Ich vermute es liegt an der Datenbank Verbindung da ich so lange nichts mehr damit am Hut hatte
    weis ich aber auch nicht mehr genau wo da jetzt das Problem ist.



    //EDIT1 (MySQL Daten hinzugefügt)

    /* MySQL */
    #define MYSQL_HOST "127.0.0.1"
    #define MYSQL_USER "root"
    #define MYSQL_DATA "samp"
    #define MYSQL_PASS ""

    //EDIT2 (Enum und Datenbank hinzugefügt)

    enum PD {
    pEingeloggt,
    pGeld,
    pLevel,
    };
    new pInfo[MAX_PLAYERS][PD];


    Mmhh.. Ich habe alles so gemacht wie hier im Tutorial (Ist noch ein Blank Script nur dein Account System drinnen) und wenn ich auf dem Server komme kann ich auf Spawn klicken und nichts passiert..


    Ich meine damit schnellere und bessere Möglichkeiten es zu scripten.