Savemysql Player

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
  • Morgen zusammen,


    eine Frage habe ich noch,
    habe jetzt Savemysql Player im Script stehen.


    Das Problem ist, das der Spieler Account zwar angelegt wird,
    jedoch nicht die Stats, dass heißt ich gebe mir bsp. 5.000$.
    Logge mich nach 30 Minuten aus und habe dann wieder nur 400 (Standart Anfang)


    Woran könnte es noch liegen?
    Bzw. könnte es sein, dass ich etwas vergessen habe?

  • forward SaveMysqlPlayer(playerid);


    public OnPlayerDisconnect(playerid,reason)
    {
    SaveMysqlPlayer(playerid);
    SpielerInfo[playerid][pOnline] = 1;
    gPlayerLogged[playerid] = 1;
    SaveMysqlPlayer(playerid);
    SpawnPlayer(playerid);


    Beim einlogg fenster:


    format(query, sizeof(query), "INSERT INTO `accounts` (name,passwort) VALUES ('%s','%s')", playername, inputtext);
    mysql_query(query);
    gPlayerLogged[playerid] = 1;
    SaveMysqlPlayer(playerid);



    Hier die komplette Funktion:
    public SaveMysqlPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(gPlayerLogged[playerid] == 1) //Und hier ob er noch eingeloggt ist.
    {
    new query[2048];
    SpielerInfo[playerid][pCash] = PlayerMoney[playerid];
    format(query, sizeof(query), "UPDATE `accounts` SET banned = '%d',admin = '%d',donater = '%d',upgradepoints = '%d',reg = '%d',sex = '%d',exp = '%d',level = '%d',hand = '%d',konto = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pAdmin],SpielerInfo[playerid][pDonateRank],SpielerInfo[playerid][gPupgrade],SpielerInfo[playerid][pReg],
    SpielerInfo[playerid][pSex],SpielerInfo[playerid][pExp],SpielerInfo[playerid][pAge],SpielerInfo[playerid][pCash],SpielerInfo[playerid][pAccount], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET crimes = '%d',arrested = '%d',wanteddeaths = '%d',phonebook = '%d',lottonr = '%d',fishes = '%d',biggestfish = '%d',job = '%d',kills = '%d',deaths = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pCrimes],SpielerInfo[playerid][pArrested],SpielerInfo[playerid][pWantedDeaths],SpielerInfo[playerid][pPhoneBook],SpielerInfo[playerid][pLottoNr],
    SpielerInfo[playerid][pFishes],SpielerInfo[playerid][pBiggestFish],SpielerInfo[playerid][sJob],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pDeaths], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET jobgehalt = '%d',headvalue = '%d',jailed = '%d',jailtime = '%d',mats = '%d',gras = '%d',lsd = '%d',kokain = '%d',helmid = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pJobGehalt],SpielerInfo[playerid][pHeadValue],SpielerInfo[playerid][pJailed],SpielerInfo[playerid][pJailTime],
    SpielerInfo[playerid][pMats],SpielerInfo[playerid][pGras],SpielerInfo[playerid][pLSD],SpielerInfo[playerid][pKokain],SpielerInfo[playerid][pHelmID], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET kmedizin = '%d',gmedizin = '%d',member = '%d',rank = '%d',charakter = '%d',contracttime = '%d',health = '%d',interior = '%d',local = '%d',team = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pKMedizin],SpielerInfo[playerid][pGMedizin],SpielerInfo[playerid][sMember],SpielerInfo[playerid][pRank],SpielerInfo[playerid][pChar],
    SpielerInfo[playerid][pContractTime],SpielerInfo[playerid][pHealth],SpielerInfo[playerid][pInt],SpielerInfo[playerid][pLocal],SpielerInfo[playerid][pTeam], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET pnumber = '%d',housekey = '%d',bizzkey = '%d',carlic = '%d',flylic = '%d',motolic = '%d',lkwlic = '%d',ALG = '%d',carinsurance = '%d',lifeinsurance = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pPnumber],SpielerInfo[playerid][pPhousekey],SpielerInfo[playerid][pPbiskey],SpielerInfo[playerid][pCarLic],SpielerInfo[playerid][pFlyLic],
    SpielerInfo[playerid][pMotoLic],SpielerInfo[playerid][pLKWLic],SpielerInfo[playerid][pARG],SpielerInfo[playerid][pCarInsurance],SpielerInfo[playerid][pLifeInsurance], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET boxmats = '%d',boxgras = '%d', boxlsd = '%d',boxkokain = '%d',boatlic = '%d',fishlic = '%d',gunlic = '%d',gun1 = '%d',gun2 = '%d',gun3 = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pBoxMats],SpielerInfo[playerid][pBoxGras],SpielerInfo[playerid][pBoxLSD],SpielerInfo[playerid][pBoxKokain],SpielerInfo[playerid][pBoatLic],
    SpielerInfo[playerid][pFishLic],SpielerInfo[playerid][pGunLic],SpielerInfo[playerid][pGun1],SpielerInfo[playerid][pGun2],SpielerInfo[playerid][pGun3], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET gun4 = '%d',gun5 = '%d',ammo1 = '%d',ammo2 = '%d',ammo3 = '%d',ammo4 = '%d',ammo5 = '%d',cartime = '%d',payday = '%d',paydayhad = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pGun4],SpielerInfo[playerid][pGun5],SpielerInfo[playerid][pAmmo1],SpielerInfo[playerid][pAmmo2],SpielerInfo[playerid][pAmmo3],
    SpielerInfo[playerid][pAmmo4],SpielerInfo[playerid][pAmmo5],SpielerInfo[playerid][pCarTime],SpielerInfo[playerid][pPayDay],SpielerInfo[playerid][pPayDayHad], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET cdplayer = '%d',wins = '%d',loses = '%d',alcoholperk = '%d',drugperk = '%d',miserperk = '%d',painperk = '%d',traderperk = '%d',detskill = '%d',sexskill = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pCDPlayer],SpielerInfo[playerid][pWins],SpielerInfo[playerid][pLoses],SpielerInfo[playerid][pAlcoholPerk],SpielerInfo[playerid][pDrugPerk],
    SpielerInfo[playerid][pMiserPerk],SpielerInfo[playerid][pPainPerk],SpielerInfo[playerid][pTraderPerk],SpielerInfo[playerid][pDetSkill],SpielerInfo[playerid][pSexSkill], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET boxskill = '%d',lawskill = '%d',mechskill = '%d',jackskill = '%d',carskill = '%d',newsskill = '%d',cockskill = '%d',fishskill = '%d',farmerskill = '%d',tut = '%d',warns = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pBoxSkill],SpielerInfo[playerid][pLawSkill],SpielerInfo[playerid][pMechSkill],SpielerInfo[playerid][pJackSkill],SpielerInfo[playerid][pCarSkill],SpielerInfo[playerid][pNewsSkill],
    SpielerInfo[playerid][pCookSkill],SpielerInfo[playerid][pFishSkill],SpielerInfo[playerid][pFarmerSkill],SpielerInfo[playerid][pTut],SpielerInfo[playerid][pWarns], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET fuel = '%d',married = '%d',marriedto = '%s',kampfstil = '%d',spawnchange = '%d',wanteds = '%d',sflic = '%d',lvlic = '%d',uhrid = '%d',ownperso = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pFuel],SpielerInfo[playerid][pMarried],SpielerInfo[playerid][pMarriedTo],SpielerInfo[playerid][pKampfstil],
    SpielerInfo[playerid][pSpawnChange],GetPlayerWantedLevel(playerid),SpielerInfo[playerid][pSFLic],SpielerInfo[playerid][pLVLic],SpielerInfo[playerid][pUhrID],SpielerInfo[playerid][pOwnPerso],SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET pinb = '%d',handyid = '%d',handyton = '%d',handyakku = '%d',zigid = '%d',zig = '%d',zigsucht = '%d',handygeld = '%d',handyver = '%d',GWD = '%.3f',playminutes = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pPinB],SpielerInfo[playerid][pHandyID],SpielerInfo[playerid][pHandyTon],SpielerInfo[playerid][pHandyAkku],SpielerInfo[playerid][pZigID],SpielerInfo[playerid][pZig],
    SpielerInfo[playerid][pZigSucht],SpielerInfo[playerid][pHandyGeld],SpielerInfo[playerid][pHandyVer],SpielerInfo[playerid][pGWD],SpielerInfo[playerid][pPlayMinutes], SpielerInfo[playerid][Name]);
    mysql_query(query);


    format(query, sizeof(query), "UPDATE `accounts` SET gesamtminutes = '%d',pfandflaschen = '%d',coins = '%d', lastonline = '%d', frakinvited = '%d', online = '%d' WHERE `name` = '%s'",
    SpielerInfo[playerid][pGesamtMinutes],SpielerInfo[playerid][sPfandflaschen],SpielerInfo[playerid][pCoins],SpielerInfo[playerid][pLastOnline],SpielerInfo[playerid][pFrakInvited],SpielerInfo[playerid][pOnline], SpielerInfo[playerid][Name]);
    mysql_query(query);
    return 1;
    }
    }
    return 1;
    }


    PS:
    Admin Level wird auch nicht gespeichert und Spielerlevel auch nicht ?(

  • Sofern in der Variable 'PlayerMoney' immer der aktuelle Betrag gespeichert wird, liegt's nicht an der Speicherung. Hier wäre das Auslesen der Daten interessant und ob der Betrag richtig in die Datenbank geschrieben wird. Am besten auch noch bei SaveMysqlPlayer folgende Zeile zur Überprüfung hinzufügen:
    printf("Betrag auf der Hand: %d - Betrag auf der Hand (laut Inhalt von PlayerMoney): %d",GetPlayerMoney(playerid),PlayerMoney[playerid]);

  • Also wenn der Spieler online ist und ich etwas an ihn verändert habe per Ingame, wird dies auch übernommen.


    Aber wenn er sich dann wieder einloggt, wird es nicht geladen.
    Das komische ist daran nur, dass er aber sein richtiges Passwort eingeben muss, dass heißt, dass ja irgendwie der Account bei dieser Stelle doch geladen wird.