Shops können nicht aus der Datenbank gelesen werden

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
  • Guten Tag,


    aktuell bin ich dabei ein Shop System zu erstellen und habe nun schonmal das System für das Laden angefangen. Allerdings stellt sich mir derzeit eine frage warum sich die Shops nicht InGame mit einem Pickup erstellen.


    Hier erstmal der Lade Code


    new shop[100][shopEnum];
    forward OnShopLoad();
    public OnShopLoad()
    {
    for(new i=0; i<cache_num_rows(); i++)
    {
    new id = getFreeShopID();
    cache_get_value_int(i, "id", shop[id][shop_id] );//Integer
    cache_get_value_name_float(i, "sx", shop[id][sx] );//Integer
    cache_get_value_name_float(i, "sy", shop[id][sy]); //Float
    cache_get_value_name_float(i, "sz", shop[id][sz] );//Integer
    cache_get_value_name_float(i, "ishop_x", shop[id][ishop_x] );//Integer
    cache_get_value_name_float(i, "ishop_y", shop[id][ishop_y] );//Integer
    cache_get_value_name_float(i, "ishop_z", shop[id][ishop_z] );//Integer
    cache_get_value_name_float(i, "rob_x", shop[id][rob_x] );//Integer
    cache_get_value_name_float(i, "rob_y", shop[id][rob_y] );//Integer
    cache_get_value_name_float(i, "rob_z", shop[id][rob_z] );//Integer
    cache_get_value_name_float(i, "interior", shop[id][s_interior] );//Integer
    cache_get_value_int(i, "pickup", shop[id][s_pickup] );//Integer
    shop[id][s_pickup]=CreatePickup(1239, 1, shop[id][sx], shop[id][sy], shop[id][sz], -1);
    printf("ID:%d",shop[i][shop_id]);


    }


    }


    und der Fehler sieht auch lustig aus laut log


    [12:52:16] [plugins/mysql] Ä


  • Zu deinem printf ist zu sagen, dass du als Index statt id, i verwendest.


    Füge einfach folgendes zur Schleife hinzu:
    printf("%d, %.1f,%.1f,%.1f",id, shop[id][sx], shop[id][sy], shop[id][sz]);


    Sollten dort valide Koordinaten (so nenne ich einfach mal alle Koordinaten, die nicht gleich 0.0 sind) erscheinen, porte dich zu diesen und überprüfe, ob diese richtig sind.


    Zusätzlich setze unter Zeile 20 folgenden Code:
    printf("PICKUP-ID: %d", shop[id][s_pickup]);


    Falls dort -1 ausgegeben wird, hast du bereits das Pickup Limit erreicht. Zusätzlich frage ich mich, warum du in Zeile 19 scheinbar eine PickupID ausließt, die du direkt in Zeile 20 wieder überschreibst? Da würde ich mir dein Speicher und die Rechenleistung sparen und auf die Speicherung / Ladung dieser Information verzichten, vor allem weil, sofern es wirklich die unique pickup id ist, sich bei jedem Neustart verändern kann.