Error im format

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 in dieser Zeile:


    stock SpielerSpeichern(playerid)
    {
    if(sInfo[playerid][pEingeloggt] == 0)return 1;
    new query[256];
    format(query, sizeof(query), "UPDATE user SET Level='%i', Respektpunkte='%i', BarGeld='%i', BankKonto='%i', BankGeld='%i', Fraktion='%i', FraktionRang='%i', Spawn='%i', Handy='%i', Handynummer='%i', PayDay='%i', Spielzeit='%i', Jail='%i', JailTime='%i', Prison='%i', PrisonCheckpoints='%i', AdminLevel='%i' WHERE id='%i'", GetPlayerScore(playerid), sInfo[playerid][pRespektpunkte], GetPlayerMoney(playerid), sInfo[playerid][pBankKonto], sInfo[playerid][pBankGeld], sInfo[playerid][pFraktion], sInfo[playerid][pFraktionRang], sInfo[playerid][pSpawn], sInfo[playerid][pHandy], sInfo[playerid][pHandynummer], sInfo[playerid][pPayDay], sInfo[playerid][pJail], sInfo[playerid][pJailTime], sInfo[playerid][pPrison], sInfo[playerid][pPrisonCheckpoints], sInfo[playerid][pAdminLevel],sInfo[playerid][pID]);
    mysql_function_query(Handle, query, false, "", "");
    SpielerReset(playerid);
    return 1;
    }


    Diesen Error:


    Code
    C:\Users\marci\Desktop\NewLife-Roleplay\Server\gamemodes\NewLife.pwn(417) : error 075: input line too long (after substitutions)
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.

    Ich vermute das mein query zu klein ist...
    Danke für euere Hilfe :D


    Gruß

  • Dein Format hat zuviel Inhalt, teil es in mehrere formats auf, beispielsweise:
    format(string, sizeof(string), "INHALT STRING1");
    format(string, sizeof(string), "%sINHALT STRING2", string);
    format(string, sizeof(string), "%sINHALT STRING3", string);
    format(string, sizeof(string), "%sINHALT STRING4", string);


    Und so weiter... (PS: Mach dein Query bitte auf 1024, allein der Inhalt mit %i, %d... hat schon knapp 300 Zeichen)

  • Also dann
    einennew query1; und new query2;
    und das dann reinschreiben...
    und dann mysql_function_query(handle, query1, false, "", "");
    und mysql_function_query(handle, query2, false, "", "");


    oder wie muss ich das verstehen?

  • Die Zeile ist dem Compiler zu lang.
    Versuche es so:
    stock SpielerSpeichern(playerid)
    {
    if(sInfo[playerid][pEingeloggt] == 0)return 1;
    new query[512];
    format(query, sizeof(query), "UPDATE user SET Level='%i', Respektpunkte='%i', BarGeld='%i', BankKonto='%i', BankGeld='%i', Fraktion='%i', FraktionRang='%i', Spawn='%i', Handy='%i',",
    GetPlayerScore(playerid), sInfo[playerid][pRespektpunkte], GetPlayerMoney(playerid), sInfo[playerid][pBankKonto], sInfo[playerid][pBankGeld], sInfo[playerid][pFraktion],
    sInfo[playerid][pFraktionRang], sInfo[playerid][pSpawn], sInfo[playerid][pHandy], sInfo[playerid][pHandynummer]);
    format(query, sizeof(query), "%sHandynummer='%i', PayDay='%i', Spielzeit='%i', Jail='%i', JailTime='%i', Prison='%i', PrisonCheckpoints='%i', AdminLevel='%i' WHERE id='%i'",
    query, sInfo[playerid][pPayDay], sInfo[playerid][pJail], sInfo[playerid][pJailTime], sInfo[playerid][pPrison], sInfo[playerid][pPrisonCheckpoints],
    sInfo[playerid][pAdminLevel],sInfo[playerid][pID]);
    mysql_function_query(Handle, query, false, "", "");
    SpielerReset(playerid);
    return 1;
    }

  • Die Zeile ist dem Compiler zu lang.
    Versuche es so:
    stock SpielerSpeichern(playerid){ if(sInfo[playerid][pEingeloggt] == 0)return 1; new query[512]; format(query, sizeof(query), "UPDATE user SET Level='%i', Respektpunkte='%i', BarGeld='%i', BankKonto='%i', BankGeld='%i', Fraktion='%i', FraktionRang='%i', Spawn='%i', Handy='%i',", GetPlayerScore(playerid), sInfo[playerid][pRespektpunkte], GetPlayerMoney(playerid), sInfo[playerid][pBankKonto], sInfo[playerid][pBankGeld], sInfo[playerid][pFraktion], sInfo[playerid][pFraktionRang], sInfo[playerid][pSpawn], sInfo[playerid][pHandy], sInfo[playerid][pHandynummer]); format(query, sizeof(query), "%sHandynummer='%i', PayDay='%i', Spielzeit='%i', Jail='%i', JailTime='%i', Prison='%i', PrisonCheckpoints='%i', AdminLevel='%i' WHERE id='%i'", query, sInfo[playerid][pPayDay], sInfo[playerid][pJail], sInfo[playerid][pJailTime], sInfo[playerid][pPrison], sInfo[playerid][pPrisonCheckpoints], sInfo[playerid][pAdminLevel],sInfo[playerid][pID]); mysql_function_query(Handle, query, false, "", ""); SpielerReset(playerid); return 1;}

    Nein kommt immer noch der gleiche Error :/


  • stock SpielerSpeichern(playerid)
    {
    if(sInfo[playerid][pEingeloggt] == 0)return 1;
    new result[1024], query[1024];


    format(query, sizeof(query), "Level='%i', Respektpunkte='%i', BarGeld='%i', BankKonto='%i', BankGeld='%i', Fraktion='%i', FraktionRang='%i', Spawn='%i', Handy='%i', Handynummer='%i'",
    GetPlayerScore(playerid), sInfo[playerid][pRespektpunkte], GetPlayerMoney(playerid), sInfo[playerid][pBankKonto], sInfo[playerid][pBankGeld], 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', AdminLevel='%i'",
    query, sInfo[playerid][pPayDay], sInfo[playerid][pJail], sInfo[playerid][pJailTime], sInfo[playerid][pPrison], sInfo[playerid][pPrisonCheckpoints], sInfo[playerid][pAdminLevel]);


    format(result, sizeof(result), "UPDATE user SET %s WHERE id='%i'", query, sInfo[playerid][pID]);
    mysql_function_query(Handle, result, false, "", "");

    SpielerReset(playerid);
    return 1;
    }


    Sollte der Fehler weiterhin auftreten, teilst du es einfach weiter.
    Und wenn der result/query voll ist sprich 1024 Zeichen erreicht machst du erst einen zweiten query.

  • So, ... hab es hinbekommen...


    Hier für den der mal das gleiche Problem hat:


    stock SpielerSpeichern(playerid){if(sInfo[playerid][pEingeloggt] == 0)return 1;new query[1024];format(query, sizeof(query), "UPDATE user SET Level='%i', Respektpunkte='%i', BarGeld='%i', BankKonto='%i', BankGeld='%i', Fraktion='%i', FraktionRang='%i', Spawn='%i', Handy='%i', Handynummer='%i', PayDay='%i', Spielzeit='%i', Jail='%i', JailTime='%i', Prison='%i', PrisonCheckpoints='%i', AdminLevel='%i' WHERE id='%i'",GetPlayerScore(playerid), sInfo[playerid][pRespektpunkte], GetPlayerMoney(playerid), sInfo[playerid][pBankKonto], sInfo[playerid][pBankGeld], sInfo[playerid][pFraktion], sInfo[playerid][pFraktionRang], sInfo[playerid][pSpawn], sInfo[playerid][pHandy], sInfo[playerid][pHandynummer], sInfo[playerid][pPayDay], sInfo[playerid][pJail], sInfo[playerid][pJailTime], sInfo[playerid][pPrison], sInfo[playerid][pPrisonCheckpoints], sInfo[playerid][pAdminLevel], sInfo[playerid][pID]);mysql_function_query(Handle, query, false, "", "");SpielerReset(playerid);return 1;}


    Einfach nach den "" im Format einen Zeilenumbruch und einrücken ^^