wieso wird tankstelle und haus nicht richtig gespeichert?

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,


    immer wenn ich ingame eine tankstelle oder ein haus erstelle dann kommt es dazu dass die tankstellen nicht mehr geladen werden.
    Immer wenn ich dann ingame bin und gmx gemacht hab wird der pickup nicht mehr geladen. Unter gamemodeexit lasse ich die häuser und tankstellen speichern aber und unter gamemodeinit lasse ich sie laden:


    Laden:


    public LoadTanken()
    {
    new rows, fields, count;
    cache_get_data(rows, fields);
    for(new i=0;i<rows;i++)
    {
    new tankeID = cache_get_field_content_int(i, "id");
    if(tankeID < MAX_TANKEN)
    {
    Tanke[tankeID][tCreated] = 1;
    Tanke[tankeID][tdbID] = cache_get_field_content_int(i, "id");
    Tanke[tankeID][tPickupX] = cache_get_field_content_float(i, "PickupX");
    Tanke[tankeID][tPickupY] = cache_get_field_content_float(i, "PickupY");
    Tanke[tankeID][tPickupZ] = cache_get_field_content_float(i, "PickupZ");
    cache_get_field_content(i, "Besitzer", Tanke[tankeID][tBesitzer], myCon, 32);
    cache_get_field_content(i, "Name", Tanke[tankeID][tName], myCon, 32);
    cache_get_field_content(i, "Teilhaber", Tanke[tankeID][tTeilhaber], myCon, 32);
    Tanke[tankeID][tPreis] = cache_get_field_content_int(i, "Preis");
    Tanke[tankeID][tLock] = cache_get_field_content_int(i, "Lock");
    Tanke[tankeID][tPreisProLiter] = cache_get_field_content_int(i, "PreisProLiter");
    Tanke[tankeID][tLiter] = cache_get_field_content_float(i, "Liter");
    Tanke[tankeID][tMaxLiter] = cache_get_field_content_float(i, "MaxLiter");
    Tanke[tankeID][tKasse] = cache_get_field_content_int(i, "Kasse");
    Tanke[tankeID][tBenzinAnkauf] = cache_get_field_content_int(i, "BenzinAnkauf");
    Tanke[tankeID][tOwned] = cache_get_field_content_int(i, "Owned");
    Tanke[tankeID][tText] = Create3DTextLabel("Laedt ...", COLOR_ALPHA_WHITE, Tanke[tankeID][tPickupX], Tanke[tankeID][tPickupY], Tanke[tankeID][tPickupZ], 20.0, 0);
    if(Tanke[tankeID][tOwned] == 1)
    {
    Tanke[tankeID][tPickup] = CreatePickup(TANK_OWNER, 1, Tanke[tankeID][tPickupX], Tanke[tankeID][tPickupY], Tanke[tankeID][tPickupZ], 0);
    }
    else if(Tanke[tankeID][tOwned] == 0)
    {
    Tanke[tankeID][tPickup] = CreatePickup(NO_TANK_OWNER, 1, Tanke[tankeID][tPickupX], Tanke[tankeID][tPickupY], Tanke[tankeID][tPickupZ], 0);
    }
    UpdateTankLabel(tankeID, Tanke[tankeID][tOwned]);
    count++;
    printf("[LOAD] Tankstellen geladen: %d/%d", count, MAX_TANKEN);
    }
    }
    return 1;
    }


    public LoadHouses()
    {
    new rows, fields, count;
    cache_get_data(rows, fields);
    for(new i=0;i<rows;i++)
    {
    new houseID = cache_get_field_content_int(i, "id");
    if(houseID < MAX_HOUSES)
    {
    Haus[houseID][hCreated] = 1;
    Haus[houseID][hdbID] = cache_get_field_content_int(i, "id");
    Haus[houseID][EnterX] = cache_get_field_content_float(i, "EnterX");
    Haus[houseID][EnterY] = cache_get_field_content_float(i, "EnterY");
    Haus[houseID][EnterZ] = cache_get_field_content_float(i, "EnterZ");
    Haus[houseID][ExitX] = cache_get_field_content_float(i, "ExitX");
    Haus[houseID][ExitY] = cache_get_field_content_float(i, "ExitY");
    Haus[houseID][ExitZ] = cache_get_field_content_float(i, "ExitZ");
    Haus[houseID][hInterior] = cache_get_field_content_int(i, "Interior");
    cache_get_field_content(i, "Besitzer", Haus[houseID][hBesitzer], myCon, 32);
    cache_get_field_content(i, "Name", Haus[houseID][hName], myCon, 32);
    Haus[houseID][hPreis] = cache_get_field_content_int(i, "Preis");
    Haus[houseID][hMieten] = cache_get_field_content_int(i, "Mieten");
    Haus[houseID][hLock] = cache_get_field_content_int(i, "Lock");
    Haus[houseID][hMietPreis] = cache_get_field_content_int(i, "MietPreis");
    Haus[houseID][hKasse] = cache_get_field_content_int(i, "Kasse");
    Haus[houseID][hOwned] = cache_get_field_content_int(i, "Owned");
    Haus[houseID][hHealthUpgrade] = cache_get_field_content_int(i, "HealthUpgrade");
    Haus[houseID][hArmorUpgrade] = cache_get_field_content_int(i, "ArmorUpgrade");
    Haus[houseID][hText] = Create3DTextLabel("Laedt ...", COLOR_ALPHA_WHITE, Haus[houseID][EnterX], Haus[houseID][EnterY], Haus[houseID][EnterZ], 20.0, 0);
    if(Haus[houseID][hOwned] == 1)
    {
    Haus[houseID][hPickup] = CreatePickup(OWNER_PICKUP, 1, Haus[houseID][EnterX], Haus[houseID][EnterY], Haus[houseID][EnterZ], 0);
    }
    else if(Haus[houseID][hOwned] == 0)
    {
    Haus[houseID][hPickup] = CreatePickup(NO_OWNER_PICKUP, 1, Haus[houseID][EnterX], Haus[houseID][EnterY], Haus[houseID][EnterZ], 0);
    }
    UpdateHouseLabel(houseID, Haus[houseID][hOwned]); // 0 = Ohne Besitzer, 1 = Besitzer
    count++;
    }
    }
    printf("[LOAD] Häuser geladen: %d/%d", count, MAX_HOUSES);
    return 1;
    }


    Speichern:


    public SaveTanken()
    {
    new count = 0, mainQuery[1537], secondQuery[256];
    for(new i=1;i<MAX_TANKEN;i++)
    {
    if(Tanke[i][tCreated] == 1)
    {
    format(secondQuery, sizeof(secondQuery), "UPDATE `script_tanken` SET `PickupX`='%f', `PickupY`='%f', `PickupZ`='%f', `Besitzer`='%s', ",
    Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ], Tanke[i][tBesitzer]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`Owned`='%d', `Name`='%s', `Preis`='%d', `Teilhaber`='%s', `Lock`='%d', `BenzinAnkauf`='%d', ",
    Tanke[i][tOwned], Tanke[i][tName], Tanke[i][tPreis], Tanke[i][tTeilhaber], Tanke[i][tLock], Tanke[i][tBenzinAnkauf]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`PreisProLiter`='%d', `Liter`='%f', `MaxLiter`='%f', `Kasse`='%d' WHERE `id`='%d'",
    Tanke[i][tPreisProLiter], Tanke[i][tLiter], Tanke[i][tMaxLiter], Tanke[i][tKasse], Tanke[i][tdbID]);
    strcat(mainQuery, secondQuery);
    mysql_function_query(myCon, mainQuery, false, "", "");
    count++;
    }
    }
    printf("[SAVE] Tankstellen wurden gespeichert. (%d/%d)", count, MAX_TANKEN);
    return 1;
    }


    public SaveHouses()
    {
    new count = 0, mainQuery[1537], secondQuery[256];
    for(new i=1;i<MAX_HOUSES;i++)
    {
    if(Haus[i][hCreated] == 1)
    {
    format(secondQuery, sizeof(secondQuery), "UPDATE `script_houses` SET `EnterX`='%f', `EnterY`='%f', `EnterZ`='%f', `ExitX`='%f', `ExitY`='%f', `ExitZ`='%f', `Owned`='%d', ",
    Haus[i][EnterX], Haus[i][EnterY], Haus[i][EnterZ], Haus[i][ExitX], Haus[i][ExitY], Haus[i][ExitZ], Haus[i][hOwned]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`Interior`='%d', `Besitzer`='%s', `Name`='%s', `Preis`='%d', `Mieten`='%d', `Lock`='%d', `MietPreis`='%d', `Kasse`='%d', ",
    Haus[i][hInterior], Haus[i][hBesitzer], Haus[i][hName], Haus[i][hPreis], Haus[i][hMieten], Haus[i][hLock], Haus[i][hMietPreis], Haus[i][hKasse]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "`HealthUpgrade`='%d', `ArmorUpgrade`='%d' WHERE `id`='%d'",
    Haus[i][hHealthUpgrade], Haus[i][hArmorUpgrade], Haus[i][hdbID]);
    strcat(mainQuery, secondQuery);
    mysql_function_query(myCon, mainQuery, false, "", "");
    strdel(mainQuery, 0, sizeof(mainQuery));
    count++;
    }
    }
    printf("[SAVE] Häuser wurden gespeichert. (%d/%d)", count, MAX_HOUSES);
    return 1;
    }


    und dass steht auch noch unter gamemodeinit:


    mysql_function_query(myCon, "SELECT * FROM `script_fvehicles`", true, "LoadFVehicles", "");
    mysql_function_query(myCon, "SELECT * FROM `script_rang`", true, "LoadFRank", "");
    mysql_function_query(myCon, "SELECT * FROM `script_houses`", true, "LoadHouses", "");
    mysql_function_query(myCon, "SELECT * FROM `script_others`", true, "LoadOthers", "");
    mysql_function_query(myCon, "SELECT * FROM `script_biz`", true, "LoadBizes", "");
    mysql_function_query(myCon, "SELECT * FROM `script_tanken`", true, "LoadTanken", "");


    Wieso funkt das nicht so richtig? Bin schon fast am verzweifeln ;(


    Bitte um Hilfe


    Danke im vorraus


    LG Exon