Guten Abend meine Freunde,
ich habe ein Problem mit meinem Haussystem.
Vorerst: ich habe mich im Forum umfangreich umgeschaut aber bin nicht fündig geworden.
Folgendes Problem habe ich ingame:
Wenn ich ein Haus erstelle, dann passiert erstmal alles wie gewollt, Pickup und 3DText werden geladen und das Haus legt
sich auch direkt in der Datenbank an, sobald ich das haus lösche, verschwindet es auch aus der Datenbank, weshalb ich einen ladefehler ausschließe.
nun zum Problem: sobald ich ein zweites Haus erstelle, so verschwindet das erste Hausicon samt Text und Pickup, jedoch ist es weiterhin in der Datenbank vorhanden.
Auch an der stelle kann ich das haus nicht löschen.
Ich vermute mal es liegt an meinem /hcreate befehl, jedoch finde ich nichts was auf den Fehler hindeuten könnte...
ocmd:chouse(playerid,params[])
{
if(!isAdmin(playerid,3))return SendClientMessage(playerid,RED,"You dont have permissions to do this.");
new Float:xc, Float: yc, Float: zc;
GetPlayerPos(playerid, xc, yc, zc);
new id=getFreeHausID();
hInfo[id][h_x]=xc;
hInfo[id][h_y]=yc;
hInfo[id][h_z]=zc;
hInfo[id][ih_x]=0.0;
hInfo[id][ih_y]=0.0;
hInfo[id][ih_z]=0.0;
hInfo[id][h_interior]=0;
strmid(hInfo[id][h_besitzer], "", 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME);
hInfo[id][h_preis]=1;
updateHaus(id);
new query[256];
format(query, sizeof(query), "INSERT INTO haus (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis) VALUES ('%f', '%f', '%f', '0.0', '0.0', '0.0', '0', '1')", xc, yc, zc);
mysql_function_query(dbhandle, query, true, "OnHausCreated", "i", id);
return 1;
}
Alles anzeigen
So lade ich meine Häuser
public OnHousesLoad()
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
new id=getFreeHausID();
hInfo[id][h_x]=cache_get_field_content_float(i,"h_x", dbhandle);
hInfo[id][h_y]=cache_get_field_content_float(i,"h_y", dbhandle);
hInfo[id][h_z]=cache_get_field_content_float(i,"h_z", dbhandle);
hInfo[id][ih_x]=cache_get_field_content_float(i,"ih_x", dbhandle);
hInfo[id][ih_y]=cache_get_field_content_float(i,"ih_y", dbhandle);
hInfo[id][ih_z]=cache_get_field_content_float(i,"ih_z", dbhandle);
hInfo[id][h_interior]=cache_get_field_content_int(i,"h_interior", dbhandle);
new tmp_name[MAX_PLAYER_NAME];
cache_get_field_content(i, "besitzer", tmp_name, dbhandle);
strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
hInfo[id][h_id]=cache_get_field_content_int(i,"id", dbhandle);
hInfo[id][h_preis]=cache_get_field_content_int(i,"h_preis", dbhandle);
updateHaus(id);
}
return 1;
}
Alles anzeigen
Und noch ein paar Infos zu den Icons/Texten, da diese immer verschwinden sobald ich ein neues Haus erstelle.
updateHaus(id)
{
new string[128];
if(hInfo[id][h_pickup])
{
DestroyPickup(hInfo[id][h_pickup]);
}
if(hInfo[id][h_text])
{
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), "House for sale\nPrice: %i$\nUse: /buyhouse", hInfo[id][h_preis]);
hInfo[id][h_text]=Create3DTextLabel(string, RED, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
else
{
hInfo[id][h_pickup]=CreatePickup(19522, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
format(string,sizeof(string), "House owner: %s\nUse: /enter", hInfo[id][h_besitzer]);
hInfo[id][h_text]=Create3DTextLabel(string, WHITE, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
}
return 1;
}
Alles anzeigen
Das System ist auf MrMonat angelehnt, da ich seine Arbeit sehr sauber finde.
Ich hoffe, dass mir jemand helfen kann, bis dahin mache ich mich weiter auf die Fehlersuche.
MFG