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