Buisiness Laden ... Unterscheiden welcher Typ

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
  • Moin,


    ich baue gerade mein Biz System ... Ich möchte allerdings mein System "Dynamisch" aufbauen. Ich habe angefangen mit der Unterscheidung ob es eine Tankstelle ist... Leider funktioniert es nicht so ganz...


    Meine enums:






    OnGameModeInit:

    Code
    //Lade Geschäfte
    	new query[2048];
    	mysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte");
    	mysql_pquery(handle, query, "loadBizzes");

    meine callbacks:


    Die Forwards:


    Code
    //Geschäfte
    forward loadBizzes();
    forward loadTanke(bizid);

    Als ergebnis steht in der Konsole:



    Code
    [14:23:45] Tankstelle: GS Tanke | X: 1928.579956 | Y: -1776.229980 | Z: 13.546899 | ID: 2 geladen
    [14:23:45] |__________Tankstellen wurden geladen__________|
    [14:23:45] Es wurden 1 Tankstellen geladen
    [14:23:45] Tankstelle: BSN Tanke | X: 1000.590026 | Y: -919.880004 | Z: 42.328098 | ID: 1 geladen
    [14:23:45] |__________Tankstellen wurden geladen__________|
    [14:23:45] Es wurden 1 Tankstellen geladen


    //EDIT Nachdem ich das erste Problem gelöst habe, habe ich nun ein weiteres kleines Problem^^



    MfG
    XonarZ

    2 Mal editiert, zuletzt von XonarZ ()

  • Was geht denn nicht?


    Dass dir das doppelt angezeigt wird liegt nur daran, dass das immer alles einzeln geladen wird.


    Solltest das so schreiben:


    Das Problem das ich hier sehe ist Array-Verschwendung.


    Also man kann es so lösen, aber das ist nicht gerade elegant, da wenn du z.B. 100 Unternehmen hast und davon ist index 30 und index 98 eine Tankstelle.


    Dann steht in tankInfo[30] etwas und in tankInfo[98] etwas.


    Der ganze Rest ist leer.


    Bräuchtest also eigentlich auch nur tankInfo[0] und tankInfo[1], sprich 2 Cells, wohingegen du hier 100 reservierst.


    Aber gut...das nur mal als Anmerkung.


    Und in Zeile 56 von meinem Code, da wolltest du doch bInfo[dbid][id_x] schreiben, oder? ^^


    Des weiteren wäre das effizienter nicht für jede Tankstelle einen Query auszuführen, sondern einfach einen JOIN zu benutzen und dann alle Tankstellen auf einmal zu laden.

    ast2ufdyxkb1.png


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

  • ich habe nun mal eine neue idee ausprobiert leider irgendwo einen denkfehler... Undzwar wie folgt:


    OnGameModeInit

    Code
    //Geschäfte
    	new query[2048];
    	mysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte");
    	mysql_pquery(handle, query, "OnLoadBiz");
    	//Tankstellen
    	mysql_format(handle, query, sizeof(query), "SELECT * FROM new_tankstellen");
    	mysql_pquery(handle, query, "OnLoadTanke");


    Callbacks & 1 Stock


    Geschäfte werden auch geladen (Textdraws erstellt usw)... Nun habe ich aber das Problem das mir die Konsole folgendes ausgibt:




    heißt er kommt bei OnLoadTanke ab dem zweiten durchgang nur bis print 3 ... weil eben die id nicht gleich der dbid ist (außer beim ersten mal) ... Nun ist meine Frage... Wo hab ich nen Denkfehler drinne ?


    //EDIT Neuer Versuch
    //EDIT2 Lösungsweg


    Ich habe nun eine Lösung gefunden...




    MfG
    XonarZ

    2 Mal editiert, zuletzt von XonarZ ()