Beiträge von Jeffry

    Es muss so aussehen, so habe ich es dir auch gepostet:
    stock SpielerSpeichern(playerid)
    {
    if(sInfo[playerid][pEingeloggt] == 0)return 1;
    new query[1024], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);

    format(query, sizeof(query), "UPDATE user SET Age='%i', Geschlecht='%i', AdminLevel='%i', Mapper='%i', Scripter='%i', Premium='%i', Level='%i', Respektpunkte='%i', ",
    sInfo[playerid][pAge], sInfo[playerid][pSex], sInfo[playerid][pAdminLevel], sInfo[playerid][pMapper], sInfo[playerid][pScripter],
    sInfo[playerid][pPremium], sInfo[playerid][pLevel], sInfo[playerid][pRespektpunkte]);

    format(query, sizeof(query), "%sBarGeld='%i', BankKonto='%i', BankGeld='%i',Skin='%i', Fraktion='%i', FraktionRang='%i', Spawn='%i', Handy='%i', Handynummer='%i', ",
    query, GetPlayerMoney(playerid), sInfo[playerid][pBankKonto], sInfo[playerid][pBankGeld],sInfo[playerid][pSkin], sInfo[playerid][pFraktion],
    sInfo[playerid][pFraktionRang], sInfo[playerid][pSpawn], sInfo[playerid][pHandy], sInfo[playerid][pHandynummer]);

    format(query, sizeof(query), "%sPayDay='%i', Spielzeit='%i', Jail='%i', JailTime='%i', Prison='%i', PrisonCheckpoints='%i' WHERE username='%s'",
    query, sInfo[playerid][pPayDay], sInfo[playerid][pSpielzeit], sInfo[playerid][pJail], sInfo[playerid][pJailTime],
    sInfo[playerid][pPrison], sInfo[playerid][pPrisonCheckpoints], name);

    mysql_function_query(Handle, query, false, "", "");
    return 1;
    }


    Du hast die Query-Übergabe jeweils entfernt.

    Möglicherweise besteht da sogar ein ähnliches Problem.
    Aber schaue dir dafür das an, was ich in dem anderen Thread dazu geschrieben habe. :)

    fInfo[i][f_name] = cache_get_field_content(i, "fname", fInfo[i][f_name], Handle, 128);
    zu:
    cache_get_field_content(i, "fname", fInfo[i][f_name], Handle, 128);


    Ebenso bei den Rangnamen, das vor dem Gleichzeichen und das Gleichzeichen entfernen.

    Ah, so machst du das. Das sieht mir dann aber korrekt aus.
    Was mir da eigentlich nur in den Sinn kommt ist, dass du die pID irgendwo überschreibst.


    Versuche es doch mal so:
    stock SpielerSpeichern(playerid)
    {
    if(sInfo[playerid][pEingeloggt] == 0)return 1;
    new query[1024], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);

    format(query, sizeof(query), "UPDATE user SET Age='%i', Geschlecht='%i', AdminLevel='%i', Mapper='%i', Scripter='%i', Premium='%i', Level='%i', Respektpunkte='%i', ",
    sInfo[playerid][pAge], sInfo[playerid][pSex], sInfo[playerid][pAdminLevel], sInfo[playerid][pMapper], sInfo[playerid][pScripter],
    sInfo[playerid][pPremium], sInfo[playerid][pLevel], sInfo[playerid][pRespektpunkte]);

    format(query, sizeof(query), "%sBarGeld='%i', BankKonto='%i', BankGeld='%i',Skin='%i', Fraktion='%i', FraktionRang='%i', Spawn='%i', Handy='%i', Handynummer='%i', ",
    query, GetPlayerMoney(playerid), sInfo[playerid][pBankKonto], sInfo[playerid][pBankGeld],sInfo[playerid][pSkin], sInfo[playerid][pFraktion],
    sInfo[playerid][pFraktionRang], sInfo[playerid][pSpawn], sInfo[playerid][pHandy], sInfo[playerid][pHandynummer]);

    format(query, sizeof(query), "%sPayDay='%i', Spielzeit='%i', Jail='%i', JailTime='%i', Prison='%i', PrisonCheckpoints='%i' WHERE username='%s'",
    query, sInfo[playerid][pPayDay], sInfo[playerid][pSpielzeit], sInfo[playerid][pJail], sInfo[playerid][pJailTime],
    sInfo[playerid][pPrison], sInfo[playerid][pPrisonCheckpoints], name);

    mysql_function_query(Handle, query, false, "", "");
    return 1;
    }


    Dann dürfte die Bedingung auf jeden Fall korrekt sein, da über den Name zugegriffen wird.

    Ja, die Daten eben, die in der Tabelle stehen (erster Button in phpMyAdmin).


    @Jony
    Ließ dir bitte den Thread von letztem mal nochmal durch, deine Ansicht dass dies falsch ist ist falsch. Mehr sage ich dazu nicht mehr. Das Query ist mit den Ticks absolut korrekt.

    In der Änderung sind 0 Datensätze betroffen, sprich die WHERE Bedingung passt nicht.


    Das Query ist korrekt.


    Poste bitte den Screenshot der Daten aus der Tabelle, also das wo du den Name und das Passwort siehst.

    Du hast das Query falsch zusammenformatiert.
    Versuche es so:
    stock SpielerSpeichern(playerid)
    {
    if(sInfo[playerid][pEingeloggt] == 0)return 1;
    new query[1024];
    format(query, sizeof(query), "UPDATE user SET Age='%i', Geschlecht='%i', AdminLevel='%i', Mapper='%i', Scripter='%i', Premium='%i', Level='%i', Respektpunkte='%i', ",
    sInfo[playerid][pAge], sInfo[playerid][pSex], sInfo[playerid][pAdminLevel], sInfo[playerid][pMapper], sInfo[playerid][pScripter],
    sInfo[playerid][pPremium], sInfo[playerid][pLevel], sInfo[playerid][pRespektpunkte]);

    format(query, sizeof(query), "%sBarGeld='%i', BankKonto='%i', BankGeld='%i',Skin='%i', Fraktion='%i', FraktionRang='%i', Spawn='%i', Handy='%i', Handynummer='%i', ",
    query, GetPlayerMoney(playerid), sInfo[playerid][pBankKonto], sInfo[playerid][pBankGeld],sInfo[playerid][pSkin], sInfo[playerid][pFraktion],
    sInfo[playerid][pFraktionRang], sInfo[playerid][pSpawn], sInfo[playerid][pHandy], sInfo[playerid][pHandynummer]);

    format(query, sizeof(query), "%sPayDay='%i', Spielzeit='%i', Jail='%i', JailTime='%i', Prison='%i', PrisonCheckpoints='%i' WHERE id='%i'",
    query, sInfo[playerid][pPayDay], sInfo[playerid][pSpielzeit], sInfo[playerid][pJail], sInfo[playerid][pJailTime],
    sInfo[playerid][pPrison], sInfo[playerid][pPrisonCheckpoints], sInfo[playerid][pID]);

    mysql_function_query(Handle, query, false, "", "");
    return 1;
    }

    Was wird dir im Server Log ausgegeben, wenn du es so schreibst?
    ocmd:fraktion(playerid, params[])
    {
    printf("Fraktion: %d", sInfo[playerid][pFraktion]);
    printf("Name: %s", fInfo[sInfo[playerid][pFraktion]][f_name]);
    printf("Rang: %s", fInfo[sInfo[playerid][pFraktion]][f_rang1]);
    printf("ID: %d", fInfo[sInfo[playerid][pFraktion]][f_id]);
    new str[145];
    format(str, sizeof(str), "* Hinweis: "HTML_WEIS"Du bist in der Fraktion %s, dein Rang heißt %s, und die Frakid ist %d.", fInfo[sInfo[playerid][pFraktion]][f_name], fInfo[sInfo[playerid][pFraktion]][f_rang1], fInfo[sInfo[playerid][pFraktion]][f_id],Handle);
    SendClientMessage(playerid, COLOR_ROT, str);
    return 1;
    }

    @SebMcpepp
    Wenn du dem Spieler das Geld bei OnPlayerSpawn gibst, dann musst du ihm es aber vorher mit ResetPlayerMoney zurücksetzen, sonst verdoppelt sich sein Geld jedes mal wenn er spawnt.


    Ich schätze allerdings, dass du irgendwo zwischen Login und Spawn das schon drin hast, und der Spieler deshalb das Geld nicht bekommt, denn wenn du dir den Cache Wert des Geldes direkt nach dem Auslesen ausgibst, dann steht da der korrekte Wert drin (da er ja auch bei OnPlayerSpawn korrekt ist und dazwischen nicht verändert wird).



    @Markuslobicher für was denn? Das wichtigste ist ja dass es funktioniert, egal wer die Lösung oder den Hinweis bringt, wie im Fußball :)