Huhu,
ich habe vor wenn der Server startet alle Häuser aus der MySQl-Tabelle in die Enumvariable zu setzen.
Es gibt max. 700 Häuser(MAX_HOUSES). Und da ich aktuell per Schleife 700 Datenbankanfragen habe, suche ich nach einer besseren alternative, die häuser anhand ihrer hID in die richtige Variable zu setzen.
Ein Haus, dass einmal die hID 15 hatte, soll diese nach dem Speichern und laden auch weiterhin behalten.
Soweit klappt es nur stört mich diese Schleife im....
...OnGameModeInit:
for(new i=0, j=MAX_HOUSES; i<=j; i++)
{
loadHouse(i);//Hier lade ich das Haus anhand seiner ID
}
new housesstring[64];
format(housesstring, sizeof(housesstring), "Geladene Häuser: %d", loadedHouses);
print(housesstring);
stock loadHouse(houseid):
stock loadHouse(houseid)
{
new query[256];
mysql_format(handle, query, sizeof(query), "SELECT * FROM houses WHERE h_id = '%d'", houseid);
mysql_pquery(handle, query, "onHouseLoaded", "d", houseid);
return 1;
}
onHouseLoaded:
forward onHouseLoaded(houseid);
public onHouseLoaded(houseid)
{
new rows;
cache_get_row_count(rows);
if(rows != 0)
{
cache_get_value_name_int(0, "h_db", hInfo[houseid][hDB]);
cache_get_value_name_float(0, "h_x", hInfo[houseid][hX]);
cache_get_value_name_float(0, "h_y", hInfo[houseid][hY]);
cache_get_value_name_float(0, "h_z", hInfo[houseid][hZ]);
cache_get_value_name_int(0, "h_owner", hInfo[houseid][hOwner]);
cache_get_value_name_int(0, "h_int", hInfo[houseid][hInt]);
cache_get_value_name_int(0, "h_price", hInfo[houseid][hPrice]);
cache_get_value_name_int(0, "h_rent", hInfo[houseid][hRent]);
cache_get_value_name_int(0, "h_rentable", hInfo[houseid][hRentable]);
cache_get_value_name_int(0, "h_level", hInfo[houseid][hLevel]);
cache_get_value_name(0, "h_db", hInfo[houseid][hDesc]);
updateHouse(houseid);
loadedHouses++;
}
return 1;
}
Alles anzeigen
Ich bedanke mich schonmal im Voraus und hoffe auf eine passendere Lösung.