Hausbesitzer Name wird nicht ausgelesen?

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
  • Hey bin dabei ein Haussystem zu erstellen, jedoch habe ich ein Problem wenn ich die Häuser laden lasse, wird nicht angezeigt das Spieler XYZ das Haus besitzt wenn es als VARCHAR in der DB hinterlegt ist.

    meine Häuser laden funktion:


    und falls nötig mein hausEnum

  • Hast du den Debug mysql log, wird denn alles richtig in der Datenbank gespeichert?


    Was steht denn Schlussendlich im Label?


    Mit print kannst du dir den Namen auch mal ausgeben lassen und validieren was drinnen steht :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kaliber OnHausesLoad wird so aufgerufen unter OnGameModeInit:

    Code
        new query[256];
        format(query,sizeof(query)," SELECT * FROM users_houses");
        mysql_pquery(handle, query, "OnHausesLoad");

    das Public ist dieses:

    und die Struktur meiner DB sieht so aus:

    pasted-from-clipboard.png

  • OnHausesLoad wird so aufgerufen unter OnGameModeInit

    Nur als Info, wenn du kein format nutzen musst, dann nutze es nicht ^^ Das spart dir viel Speicher & Zeit, kannst es einfach so schreiben:


    C
        mysql_pquery(handle, "SELECT * FROM users_houses", "OnHausesLoad");


    das Public ist dieses:

    Kannst es so schreiben:



    und die Struktur meiner DB sieht so aus:

    Jaaa, das ist auch gut zu wissen, mich würde nur viel Lieber interessieren, ob da wirklich Namen drinnen stehen.

    Also was die Einträge in der Tabelle sind :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hatte damals es so genutzt, ka sehr alt und evtl. nicht gut :D, aber hatte bei mir gefunkt.


    Code
    new tmp_name[MAX_PLAYER_NAME];
            cache_get_field_content(i, "besitzer", tmp_name, dbhandle);
            strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
  • Okay, ändere den print mal ab und poste das Resultat nochmal ^^


    C
    printf("%d|%d|Besitzer: %s\n",i,hInfo[id][h_id],hInfo[id][h_besitzer]);

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Perfekt hat mit dem geklappt hatte es mal so ähnlich versuch (wie MrMonat im Tutorial) aber leider hatte ich keinen erfolg aber hab es jetzt abgeändert das Public OnHausesLoad() sieht jetzt so aus (falls es jemand gebrauchen kann der auch das Haussystem benötigt :D)

  • Gerade mal in der Doku nachgeschaut:


    You have to provide the size (max_len) by yourself if you use an enum-array as destination.

    Also schreib es mal so und versuch es erneut:


    C
    cache_get_value_name(i,"besitzer", hInfo[id][h_besitzer], MAX_PLAYER_NAME); //<< das wäre eine deutlich sauberere Lösung

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Warum wird der alte Pickup nicht gelöscht genau so wie das Textlabel in meiner SQL log steht folgendes drin falls es damit zusammenhängen kann:

    Code
    [17:41:46] [ERROR] error #1064 while executing query "UPDATE users_houses SET besitzer 'Frank_Escobar', h_preis='150' WHERE id='1'": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''Frank_Escobar', h_preis='150' WHERE id='1'' at line 1


    meine query dazu:

    Code
    saveHouse(id)
    {
        new query[128];
        format(query, sizeof(query), "UPDATE users_houses SET besitzer '%s', h_preis='%i' WHERE id='%i'", hInfo[id][h_besitzer], hInfo[id][h_preis],  hInfo[id][h_id]);
        mysql_pquery(handle, query);
        return 1;

    Mein CMD:Buyhouse indem saveHouse aufgerufen wird:


  • Beitrag von RaPTiiC ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: hat sich erledigt hab saveHouse und updatehouse bei CMD:buyhouse getauscht ().
  • Kaliber mein updateHouse sieht so aus:



    Beim ersten Haus sieht es wie folgt aus:

    pasted-from-clipboard.png



    Kaufe ich ein weiteres Haus was eigentlich nicht möglich sein sollte sieht es so aus:

    Screenshot_5.png


    meine hasHouse funktion