Die daten wie z.B. Geld, Level, Cars verschwinden nach Server restart

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 comunity,


    ich habe probeleme mit Speichern..
    Die daten von Usern werden nciht gespeichert.. Die müssen sich manchmal neu registrieren und etc.
    Mein Server läuft auf mysql.. also bitte dringend um hilfe.. :S


    Danke im voraus.


    Viele grüße
    Akman

    Zitat von Akman

    Morqen ist heute schon wieder qestern, weil heute qestern morqen und qestern morqen übermorqen war..



    Fragen/Probleme? Einfach PN!

  • hast du auch bei deinen restart befehl das drin das alle gespeichert werden?

  • Ja /saveplayer.. doch jedesmal kann ich doch nicht das befehl da eingeben.. gibt es da was anderes, dass ich machen kann?

    Zitat von Akman

    Morqen ist heute schon wieder qestern, weil heute qestern morqen und qestern morqen übermorqen war..



    Fragen/Probleme? Einfach PN!

  • Hää wo meinst du jetzt Blunt?^^
    public OnPlayerDisconnect(playerid, reason)
    {
    //SavePlayer(playerid);
    if(!IsPlayerNPC(playerid))
    {
    Spieler[playerid][Eingeloggt] = 0;
    Spieler[playerid][Money] = GetPlayerMoney(playerid);
    GetPlayerName(playerid, Spieler[playerid][Name], MAX_PLAYER_NAME);
    mysql_SetInt("accounts", "Admin", Spieler[playerid][Admin], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Level", Spieler[playerid][Level], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Respekt", Spieler[playerid][Respekt], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Geschlecht", Spieler[playerid][Geschlecht], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Exp", Spieler[playerid][Exp], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Eingeloggt", Spieler[playerid][Eingeloggt], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Tut", Spieler[playerid][Tut], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "PayDay", Spieler[playerid][PayDay], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "PayDayHad", Spieler[playerid][PayDayHad], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Leader", Spieler[playerid][Leader], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Team", Spieler[playerid][Team], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Rank", Spieler[playerid][Rank], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Job", Spieler[playerid][Job], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Money", Spieler[playerid][Money], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Festgeld", Spieler[playerid][Festgeld], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Morde", Spieler[playerid][Morde], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Gestorben", Spieler[playerid][Gestorben], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Verbrechen", Spieler[playerid][Verbrechen], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Spielzeit", Spieler[playerid][Spielzeit], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Knast", Spieler[playerid][Knast], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Wanteds", Spieler[playerid][Wanteds], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Verwarnungen", Spieler[playerid][Verwarnungen], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Mats", Spieler[playerid][Mats], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "SafeMats", Spieler[playerid][SafeMats], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Drugs", Spieler[playerid][Drugs], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "SafeDrugs", Spieler[playerid][SafeDrugs], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "DrugSkill", Spieler[playerid][DrugSkill], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "NewsSkill", Spieler[playerid][NewsSkill], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "AnglerSkill", Spieler[playerid][AnglerSkill], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "BusSkill", Spieler[playerid][BusSkill], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "AnwaltSkill", Spieler[playerid][AnwaltSkill], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "PilotSkill", Spieler[playerid][PilotSkill], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "BusExp", Spieler[playerid][BusExp], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "AnwaltExp", Spieler[playerid][AnwaltExp], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "BusMaxExp", Spieler[playerid][BusMaxExp], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "AnwaltMaxExp", Spieler[playerid][AnwaltMaxExp], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Skin", Spieler[playerid][Skin], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "DrivLic", Spieler[playerid][DrivLic], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "FlugLic", Spieler[playerid][FlugLic], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "BootLic", Spieler[playerid][BootLic], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "AngelLic", Spieler[playerid][AngelLic], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "DrivLicPoint", Spieler[playerid][DrivLicPoint], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "FestgeldTime", Spieler[playerid][FestgeldTime], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Spawnchange", Spieler[playerid][Spawnchange], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Hauskey", Spieler[playerid][Hauskey], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "pLocal", Spieler[playerid][pLocal], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "pInt", Spieler[playerid][pInt], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "pWorld", Spieler[playerid][pWorld], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Perso", Spieler[playerid][Perso], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Bizkey", Spieler[playerid][Bizkey], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "KH", Spieler[playerid][KH], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "JailTime", Spieler[playerid][JailTime], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Jailed", Spieler[playerid][Jailed], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "JailType", Spieler[playerid][JailType], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Muted", Spieler[playerid][Muted], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "MuteTime", Spieler[playerid][MuteTime], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "LottoZahl", Spieler[playerid][LottoZahl], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "HandyGeld", Spieler[playerid][HandyGeld], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Erstehilfe", Spieler[playerid][Erstehilfe], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "ContractGeld", Spieler[playerid][ContractGeld], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "PayDayGeld", Spieler[playerid][PayDayGeld], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Paintball", Spieler[playerid][Paintball], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Modcheck", Spieler[playerid][Modcheck], "Name", Spieler[playerid][Name]);
    mysql_SetInt("accounts", "Autoradio", Spieler[playerid][Autoradio], "Name", Spieler[playerid][Name]);
    }
    //Sicherheitsspeicherung
    // mysql_SetInt("accounts", "Kredit", Spieler[playerid][Kredit], "Name", Spieler[playerid][Name]);
    //Sicherheitsspeicherung -> Ende!
    //DeletePVar(playerid,"Eingeloggt");
    BankSpeichern(playerid);
    inHaus[playerid] = -1;
    KillTimer(bustimer[playerid]);
    KillTimer(shuttlebustimer[playerid]);
    KillTimer(reisebustimer[playerid]);
    KillTimer(khtimer[playerid]);
    KillTimer(pilottimer[playerid]);
    KillTimer(liefertimer[playerid]);
    DestroyVehicle(startbmx[playerid]);
    DestroyVehicle(SupCar[playerid]);
    //OnPlayerCarUpdate(playerid);
    SavePlayerCar(playerid);
    KillTimer(jetpack_timer[playerid]);
    KillTimer(armor_timer[playerid]);
    KillTimer(health_timer[playerid]);
    KillTimer(check_timer[playerid]);
    Spieler[playerid][Paintball] = 0;
    /*if(mysql_CheckAccount(playerid))
    {
    SetTimerEx("DIALOG_LOGIN", 4000, 0, "%i", playerid);
    }
    else
    {
    SetTimerEx("DIALOG_REG", 4000, 0, "%i", playerid);
    }*/
    return 1;
    }
    meinst du das?

    Zitat von Akman

    Morqen ist heute schon wieder qestern, weil heute qestern morqen und qestern morqen übermorqen war..



    Fragen/Probleme? Einfach PN!

  • ok ne, das geht mal garnicht was du da fabrizierst.


    Also erstmal brauchst du defintiv mehr Ordnung in deinem Script. Ausserdem, wenn "mysql_SetInt" genau so funktioniert wie "dini_setInt" dann rate ich dir sehr stark an, dass du mal das ganze Mysql System umschreibst! Denn wenn mehrere User eine exe bekommen, dann kratzt der Server ab, dass kann ich dir versichern.


    Dazu darfst du nicht einfach bei einem Disconnect sachen speichern! Denn wenn ein Spieler nicht eingeloggt ist, werden die Werte ja logischerweise nicht zugewiesen, was dann auch alles mit 0 abspeichert, daher anscheinend auch dein "Manchmal neu registrieren" problem.


    Ich rate dir stark an, das System neu zu schreiben, denn momentan ist es pures Chaos ^^


  • dazu ist es auch noch ratsam mit dem neuen mysql plugin zu arbeiten oder wenigstens OnQueryFinish zu verwenden um
    Lags oder Servercrashes, die in Verbindung mit MySQL auftreten können zu vermieden


  • dazu ist es auch noch ratsam mit dem neuen mysql plugin zu arbeiten oder wenigstens OnQueryFinish zu verwenden um
    Lags oder Servercrashes, die in Verbindung mit MySQL auftreten können zu vermieden

    Guck dir lieber das ganze an. Query wird geschlossen! Nur wieviele male, deswegen mein Einwand, wenn paar leute auf einmal dcen, crasht der Server. Der Query wird pro zeile auf gemacht, wird was geschrieben, zu gemacht und das ganze dann wieder von vorne. Das ist für mich eine Katastrophe, damit kannst du schnell und zielsicher dein MYSQL zeugs überlasten.

  • abgelehnt. Ich schreibe Grundsätzlich nicht einfach für jemanden den ich nicht kenne nen Code.


    Aber kleine Erklärung, warum deine Methode eine schlechte ist.
    Normalerweise muss man die Verbdinung zu einer MYSQL DB machen, danach holt man sich die ganzen Daten, schreibt diese in die Datenbank und schließt sie anschließend.


    Bei dir ist es aber der fall, dass du es wie folgt machst.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.
    Du machste dir eine Verbdinung, holst dir eine Sache, fügst sie ein, schliesst die verbindung.


    noch 50x wiederholen.



    Das heißt, selbst für nur einen Disconnect, ist das Extrem Ressourcenfressend, wenn du jetzt aber mehrere Leute, die auf einmal wegen einem Exenverteile oÄ den Server verlassen, kannst du damit rechnen, dass dein Rootserver und die Datenbank warscheinlich abstürzen werden.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen