MySQL Problem Speichern

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
  • Guten Tag Community,


    wir sind gerade dabei unser Script auf MySQL um zuschreiben.
    Ich habe das Tutorial von Maddin befolgt und alles so gemacht.


    Proble:


    Beim Disconnecten wird mir das Geld nicht in der Tabele ( Navicat ) angelegt,
    der wert bleibt immer auf 0.



    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
    {
    //Nun speichern wir die Daten in der Datenbank.
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }


    Bitte um Hilfe


    MFG
    Selfmade Records

  • Hi,


    so ein ähnliches Problen hatte ich bei der Funktion auch. Ich habe als erstes die Funktion "IsPlayerConnected" rausgemacht sowie die NPC-Abfrage (da ich derzeit keine Bots benutze). Diese habe ich mit der enum-Abfrage ersetzt, ob jemand online ist.


    Das zweite Problem bestand darin, dass negativ-Werte bei OnPlayerDisconnect (mehr oder weniger) geblockt werden, und es bei diesem Wert nicht weiter geht. Zudem kann es auch an der Art des Disconnects liegen. Dies kann man mit dem case of-Werten (Disconnect, Timeout, Crash) regeln.


    Regards, ThomasTailor93

  • Ja der savt das auch nicht du musst das dann so machen



    mysql_SetInt("accounts", "Geld", GetPlayerMoney(playerid),"Name", SpielerInfo[playerid][pName]);


    und beim Laden GivePlayerMoney=.....

  • Das selbe machst du auch mit den Skin....
    oder auch mit den Wantedlevel jenachdem

  • Bei mir ist es so: ich speicher alles in Variablen ab zum Beispiel bei einem /makeleader befehl setzt er die Variable Spieler[playerid][Fraktion] auf die gewünschte fraktion aber nach einem relog habe ich wieder die alte fraktion sowie die ganzen anderen alten sachen...
    mein stock:



    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    mysql_SetInt("samp_acc", "job", Spieler[playerid][job], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "autoschein", Spieler[playerid][autoschein], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "motoradschein", Spieler[playerid][motoradschein], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "flugschein", Spieler[playerid][flugschein], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "bootschein", Spieler[playerid][bootschein], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "bank", Spieler[playerid][bank], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "wanted", GetPlayerWantedLevel(playerid), "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "skin", Spieler[playerid][skin], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "sAdminLevel", Spieler[playerid][sAdminLevel], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "Rang", Spieler[playerid][Rang], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "Fraktion", Spieler[playerid][Fraktion], "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "Geld", GetPlayerMoney(playerid), "Name", SpielerName(playerid));
    mysql_SetInt("samp_acc", "Score", GetPlayerScore(playerid), "Name", SpielerName(playerid));
    }
    }
    return 1;
    }


    //edit: ich bekomme das mit dem Pawn code nicht hin, kann mir mal einer sagen wie der geht ? :D