Hallo, ich würde gerne meine Häuser Daten in bestimmten Minuten Takt Updaten lassen. Hierzu habe ich einen Timer in OnGameModeInitd erstellt.
Und folgenden Code als Abruf geschrieben
forward Hausupdate();
public Hausupdate()
{
for(new i=0; i<sizeof(hInfo); i++)
{
OnHausesLoad();
updateHaus(i);
}
return 1;
}
updateHaus(id)
{
new string[128];
if(hInfo[id][h_pickup] != -1)
{
DestroyPickup(hInfo[id][h_pickup]);
}
if(hInfo[id][h_text] != Text3D:-1)
{
Delete3DTextLabel(hInfo[id][h_text]);
}
if(!strlen(hInfo[id][h_besitzer]))
{
hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
hInfo[id][h_text]=Create3DTextLabel(string, COLOR_RED, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
else
{
hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
hInfo[id][h_text]=Create3DTextLabel(string, COLOR_BUSBLUE, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
return 1;
}
public OnHausesLoad()
{
new num_rows;
cache_get_row_count(num_rows);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
new id=getFreeHausID();
cache_get_value_name_float(i, "h_x", hInfo[id][h_x]); //Float
cache_get_value_name_float(i, "h_y", hInfo[id][h_y]); //Float
cache_get_value_name_float(i, "h_z", hInfo[id][h_z]); //Float
cache_get_value_name_float(i, "ih_x", hInfo[id][ih_x]); //Float
cache_get_value_name_float(i, "ih_y", hInfo[id][ih_y]); //Float
cache_get_value_name_float(i, "ih_z", hInfo[id][ih_z]); //Float
cache_get_value_name_int(i, "h_interior", hInfo[id][h_interior]); //Float
new tmp_name[MAX_PLAYER_NAME];
cache_get_value_name(i, "besitzer", hInfo[id][h_besitzer]); //Float
strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
cache_get_value_name_int(i, "id",hInfo[id][h_id]); //Float
cache_get_value_name_int(i, "h_preis",hInfo[id][h_preis]); //Float
new string[128];
if(!strlen(hInfo[id][h_besitzer]))
{
hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Zum Verkauf\nKosten: %i$\n/hauskaufen", hInfo[id][h_preis]);
hInfo[id][h_text]=Create3DTextLabel(string, COLOR_RED, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
else
{
hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "Besitzer: %s\n/enter", hInfo[id][h_besitzer]);
hInfo[id][h_text]=Create3DTextLabel(string, COLOR_BUSBLUE, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
}
return 1;
}
Die Häuser werden bei mir in jeder Sekunde kurz Destroyt und wieder hinzugefügt. Das ist aber nicht das Problem. Der Preis wird nicht geupdatet und das ist viel mehr das Problem.
//push 18.11.2016