MySQL R5 Speichert meine Häuser nicht mehr, seit neuem Speichersystem.

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
  • Noch eine Frage.


    Muss ich bei dem System hier eine Pause einlegen oder kann ich immer weiter mit strcat arbeiten. Oder wie weit kann man das noch so weitermachen ?
    Kann man alles damit machen oder muss man es zweimal machen, zwei querys.


    public SpielerSpeichern(playerid)
    {
    new mainquery[4000];
    if(IsPlayerNPC(playerid))return SendClientMessage(playerid,COLOR_BRIGHTRED,"Dein Account konnte nicht gespeichert werden, da du ein NPC bist.");
    if(SpielerInfo[playerid][Eingeloggt]!=1)return SendClientMessage(playerid,COLOR_BRIGHTRED,"Dein Account konnte nicht gespeichert werden, da du nicht eingeloggt bist.");
    if(isttot[playerid]==0){tot[playerid]=0;}
    format(bigsql,sizeof(bigsql),"UPDATE `user` SET `Geld`='%i',`Wanteds`='%i',`Alevel`='%i',`Jail`='%i',`Mats`='%i',`Jailed`='%i',`Tut`='%i',`Death`='%i',`saving_start`='%i',",GetPlayerMoney(playerid),SpielerInfo[playerid][Wanteds],SpielerInfo[playerid][Admin],SpielerInfo[playerid][Jail],SpielerInfo[playerid][Mats],SpielerInfo[playerid][Jailed],SpielerInfo[playerid][contract],tot[playerid],gettime());
    strcat(mainquery,bigsql);
    format(bigsql,sizeof(bigsql),"`Spawnchange`='%i',`Baned`='%i',`Fraktion`='%i',`Rang`='%i',`Job`='%i',`HIN`='%i',`Level`='%i',`Respekt`='%i',`Car`='%i',",SpielerInfo[playerid][Spawnchange],SpielerInfo[playerid][ban],SpielerInfo[playerid][Frakt],SpielerInfo[playerid][Rank],SpielerInfo[playerid][Job],SpielerInfo[playerid][HIN],SpielerInfo[playerid][Level],SpielerInfo[playerid][Respekt],SpielerInfo[playerid][Car]);
    strcat(mainquery,bigsql);
    format(bigsql,sizeof(bigsql),"`Paytime`='%i',`Bank`='%i',`Motel`='%i',`pRank`='%i',`Geschlecht`='%i',`Skin`='%i',`phonebook`='%i',`rented`='%i',`alg`='%i',`flug`='%i',",SpielerInfo[playerid][Paytime],SpielerInfo[playerid][Bank],SpielerInfo[playerid][Motel],SpielerInfo[playerid][pRank],SpielerInfo[playerid][Geschlecht],SpielerInfo[playerid][Skin],SpielerInfo[playerid][phonebook],SpielerInfo[playerid][rented],SpielerInfo[playerid][alg],SpielerInfo[playerid][flug]);
    strcat(mainquery,bigsql);
    format(bigsql,sizeof(bigsql),"`WSchein`='%i',`bl`='%i',`C4`='%i',`pangel`='%i',`kirche`='%i',`frees`='%i',`gefischt`='%i',`gehalt`='%i',`robtime`='%i',`hanf`='%i',",SpielerInfo[playerid][WSchein],SpielerInfo[playerid][bl],SpielerInfo[playerid][C4],SpielerInfo[playerid][pangel],SpielerInfo[playerid][kirche],SpielerInfo[playerid][frees],SpielerInfo[playerid][gefischt],SpielerInfo[playerid][pgehalt],SpielerInfo[playerid][robtime],SpielerInfo[playerid][phanf]);
    strcat(mainquery,bigsql);
    format(bigsql,sizeof(bigsql),"`explodetime`='%i',`warn`='%i',`lsd`='%i',`dutyskin`='%i',`quittime`='%i',`drivingskill`='%i',`drivingpoints`='%i',`totx`='%f',`toty`='%f',`totz`='%f',`totvirtual`='%i',`totinterior`='%i',",SpielerInfo[playerid][explodetime],SpielerInfo[playerid][warn],SpielerInfo[playerid][lsd],SpielerInfo[playerid][dutyskin],SpielerInfo[playerid][quittime],SpielerInfo[playerid][drivingskill],SpielerInfo[playerid][drivingpoints],TotX[playerid],TotY[playerid],TotZ[playerid],totvirtual[playerid],totinterior[playerid]);
    strcat(mainquery,bigsql);
    format(bigsql,sizeof(bigsql),"`GWD`='%i',`lunch`='%i',`reisepass`='%i',`gang`='%i',`grank`='%i',`alka`='%i',`guser`='%s',`helm`='%i',`scheintime`='%i',`bike`='%i',",SpielerInfo[playerid][GWD],SpielerInfo[playerid][lunch],SpielerInfo[playerid][reisepass],SpielerInfo[playerid][gang],SpielerInfo[playerid][grank],SpielerInfo[playerid][alka],SpielerInfo[playerid][guser],SpielerInfo[playerid][helm],SpielerInfo[playerid][stime],SpielerInfo[playerid][bike]);
    strcat(mainquery,bigsql);
    format(bigsql,sizeof(bigsql),"`partner`='%s',`muted`='%i',`koks`='%i',`leader`='%i',`card`='%i',`eventwarn`='%i',`races`='%i',`wins`='%i',`handy`='%i',",SpielerInfo[playerid][partner],GetPVarInt(playerid,"muted"),SpielerInfo[playerid][koks],SpielerInfo[playerid][leader],SpielerInfo[playerid][card],SpielerInfo[playerid][eventwarn],SpielerInfo[playerid][races],SpielerInfo[playerid][wins],SpielerInfo[playerid][handy]);
    strcat(mainquery,bigsql);
    mysql_query(mainquery,1,playerid,mysql_save);
    return 1;
    }

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Du musst eben dein "mainquery" erhöhen, aber sonst kannst du es eigentlich ewig machen, mir wäre kein Limit bekannt.


    Beachte aber, dass dein Query oben Fehlerhaft ist, es fehlt am Ende die WHERE Bedingung.


    Aber die WHERE Bedinung kommt doch erst am ende, wenn ich fertig bin.

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Aber die WHERE Bedinung kommt doch erst am ende, wenn ich fertig bin.


    Dann ist gut, ich dachte du willst es so laufen lassen. 8o


    Ich habe auch nochmal nach einem möglichen Limit gegoogelt und im Englischen Forum gesucht, habe aber auch da nichts dazu gefunden, also tippe ich stark darauf, dass du keine Probleme wegen überschreiten von Limits haben solltest. :thumbup:


  • Dann ist gut, ich dachte du willst es so laufen lassen. 8o


    Ich habe auch nochmal nach einem möglichen Limit gegoogelt und im Englischen Forum gesucht, habe aber auch da nichts dazu gefunden, also tippe ich stark darauf, dass du keine Probleme wegen überschreiten von Limits haben solltest. :thumbup:


    Jeffry ? Wie hoch muss ich die größe des Arrays, denn einstellen, wenn jetzt nochmal soviel kommt wie ich schon geschrieben habe ?

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Kann ich schwer abschätzen.
    Die beste Möglichkeit ist Folgende:


    Du setzt das mainquery auf 10000, dann fügst du vor mysql_query das hier ein:
    printf("mainquery = %d", strlen(mainquery));


    Dann gehst du in den Server und lässt den Spieler speichern. Im Server Log steht dann, wie lang das mainquery war. Wenn dann da zum Beispiel

    Zitat

    mainquery = 4251


    steht, dann rundest du auf 5000 auf, und die Sache passt.


  • Aber kann das nicht eventuell verschieden sein ? Bei jeder Speicherung anders ?

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.