MySQL Script Problem

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
  • Hallo,


    ich habe das Problem, dass irgendwas mit dem Laden und Speichern nicht funktioniert.
    Mein Name wird in der MySQL Tabelle eingetragen.
    Doch nach dem einloggen bin ich irgendwie Level -1, im nirgendwo und nicht am Spawn.
    Was mach ich falsch?


    //Edit: Habe auch nochmal mein Account aus der Tabelle entfernt und nochmal Probiert. Ohne Erfolg.

    2 Mal editiert, zuletzt von Degtyarev ()

  • Was für Errors?
    Es gibt keine Errors oder Warnings.
    Sonst hätte ich das geschrieben.


    Woher soll ich wissen welche Zeile Probleme macht.
    Wenn ich auf dem Server komme kann ich mich Registrieren und Einloggen.
    Doch dann Spawne ich im Nichts und bin Level -1.


  • public OnPlayerRequestClass(playerid, classid)
    {
    if(!IsPlayerNPC(playerid)){
    //TextDrawShowForPlayer(playerid,lbt);
    //TextDrawShowForPlayer(playerid,lbb);
    DTAC_Player[playerid][apSpawnClass] = classid;
    RandScreen(playerid);
    if(GetPVarInt(playerid,"Eingeloggt") == 0)
    {
    if(mysql_CheckAccount(playerid) == 0)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> [Streetlifehistory] heißt dich Willkommen <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Die Datenbank vermisst dich, registriere dich bitte!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"{E0D01B}Registrierung","Dein Passwort soll lauten?:","Registrieren","Verlassen");
    }
    else if(mysql_CheckAccount(playerid) == 1)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________-> [Streetlifehistory] heißt dich Willkommen <-________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Schön dich wieder zu sehen, melde dich nun wieder an!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{E0D01B}Anmeldung","Bitte gib dein Passwort ein:","Anmelden","Verlassen");
    }
    }
    for (new a=1;a<=10;a++)
    {
    SendClientMessage(playerid,COLOR_YELLOW, "\n");
    SendClientMessage(playerid, COLOR_YELLOW,"\n");
    SendClientMessage(playerid,COLOR_YELLOW, "\n");
    SendClientMessage(playerid, COLOR_YELLOW,"\n");
    SendClientMessage(playerid, COLOR_YELLOW,"\n");
    }}
    return 1;
    }



    switch(dialogid)
    {
    case DIALOG_REGISTER:
    {
    if(response)
    {
    if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Dein Passwort ist zu Kurz..\nBitte gib ein neues Passwort ein:","Registrieren","Verlassen");
    return 1;
    }
    else
    {
    SavePlayer(playerid);
    CreateAccount(playerid, inputtext); //Account wird erstellt
    SetPVarInt(playerid,"Eingeloggt",1); //Die variable wird auf 1 gesetzt, damit wir nun die Skin Auswahl benutzen können ohne wieder nach unserem Passwort gefragt zu werden.
    SpawnPlayer(playerid);
    return 1;
    }
    }
    else
    {
    Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
    }
    }
    case DIALOG_LOGIN:
    {
    if(response)
    {
    if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung","Das angegebene Passwort ist Falsch..\nBitte wiederhole den Vorgang erneut:","Anmelden","Verlassen");
    return 1;
    }
    else
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
    if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true)) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
    {
    SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin auswahl benutzen können.
    LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
    SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
    return 1;
    }
    else
    {
    //Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der Spieler das Richtige Passwort eingibt.
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung","Falsches Passwort.\nBitte melde dich jetzt mit dem richtigen Passwort an:","Anmelden","Verlassen");
    return 1;
    }
    }
    }
    else
    {
    Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
    }
    }

  • Dann zeig doch lieber mal wie du versuchst die Daten aus der Datenbank auszulesen:
    LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.


  • 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)
    {
    if(GetPlayerInterior(playerid) > 0)
    {
    TogglePlayerControllable(playerid,0);
    SetTimerEx("Unfreeze",1000,false,"d",playerid);
    new int = GetPlayerInterior(playerid);
    SetPlayerInterior(playerid, int);
    }
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pGeld] = SetPlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName])); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Tode" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pRang] = mysql_GetInt("accounts", "Rang", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pMember] = mysql_GetInt("accounts", "Member", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pLeader] = mysql_GetInt("accounts", "Leader", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pBank] = mysql_GetInt("accounts", "Bankgeld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pInterior] = SetPlayerInterior(playerid,mysql_GetInt("accounts", "Int", "Name", SpielerInfo[playerid][pName]));
    SpielerInfo[playerid][pDrugsP] = mysql_GetInt("accounts", "Pflanze", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pDrugs] = mysql_GetInt("accounts", "Drogen", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pUserLevel] = SetPlayerScore(playerid,mysql_GetInt("accounts", "UserLevel", "Name", SpielerInfo[playerid][pName]));
    SpielerInfo[playerid][pRespekt] = mysql_GetInt("accounts", "Respekt", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pWanted] = mysql_GetInt("accounts", "Wanted", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pSkin] = SetPlayerSkin(playerid,mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]));
    SpielerInfo[playerid][Firstlogin] = mysql_GetInt("accounts", "Tutorial", "Name", SpielerInfo[playerid][pName]);
    SetPlayerPos(playerid,mysql_GetFloat("accounts", "x", "Name", SpielerInfo[playerid][pName]),mysql_GetFloat("accounts", "y", "Name", SpielerInfo[playerid][pName]),mysql_GetFloat("accounts", "z", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot0", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo0", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot1", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo1", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot2", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo2", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot3", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo3", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot4", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo4", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot5", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo5", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot6", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo6", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot7", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo7", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot8", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo8", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot9", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo9", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot10", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo10", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot11", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo11", "Name", SpielerInfo[playerid][pName]));
    _AC_GivePlayerWeapon(playerid,mysql_GetInt("accounts", "Slot12", "Name", SpielerInfo[playerid][pName]),mysql_GetInt("accounts", "Ammo12", "Name", SpielerInfo[playerid][pName]));
    SpielerInfo[playerid][pSex] = mysql_GetInt("accounts", "Geschlecht", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pAge] = mysql_GetInt("accounts", "Age", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGehalt] = mysql_GetInt("accounts", "Gehalt", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pSchein] = mysql_GetInt("accounts", "Schein", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pFirmenlohn] = mysql_GetInt("accounts", "Firmenlohn", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pJob] = mysql_GetInt("accounts", "Job", "Name", SpielerInfo[playerid][pName]);
    }
    return 1;
    }