Moin zusammen,
habe folgendes Problem:
Wenn man sich ein Haus kauft oder auch ein Haus verkauft, überlappen sich die 3DTextLabel.
Das heißt es steht einmal da: HausID: XY Besitzer: Muster usw. und einmal: HausID: XY Besitzer: Zu Verkaufen usw.
Das heißt es Updatet bzw. Reloaded die TextLabel nicht und das Haussymbol wird ebenfalls nicht geupdatet.
Hier mal der Befehl für das Hauskaufen, würde mich interessieren, ob ihr hier einen Fehler findet oder ob ihr einen Rat habt.
if(strcmp(cmd, "/hauskaufen", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(IsPlayerInRangeOfPoint(playerid,2.0, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 0)
{
if(HouseInfo[h][hCreated] == 0) {
format(string, sizeof(string), "Dieses Haus wurde nicht erstellt!");
SendClientMessage(playerid, COLOR_GRAD5, string);
return 1;
}
if(SpielerInfo[playerid][pAge] < 3)
{
format(string, sizeof(string), " Du musst mindestens Level 3 sein um ein Haus kaufen zu können!");
SendClientMessage(playerid, COLOR_GRAD5, string);
return 1;
}
if(SpielerInfo[playerid][pPhousekey] != 999 && strcmp(playername, HouseInfo[SpielerInfo[playerid][pPhousekey]][hOwner], true) == 0)
{
SendClientMessage(playerid, COLOR_WHITE, " Dir gehört bereits ein Haus, gib /sellhouse ein um dein altes zu verkaufen !");
return 1;
}
if(GetPlayerMoney(playerid) > HouseInfo[h][hValue])
{
new str1[100];
SpielerInfo[playerid][pPhousekey] = h;
HouseInfo[h][hOwned] = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(IsPlayerInRangeOfPoint(playerid,2.0, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 0)
{
if(HouseInfo[h][hCreated] == 0) {
format(string, sizeof(string), "Dieses Haus wurde nicht erstellt!");
SendClientMessage(playerid, COLOR_GRAD5, string);
return 1;
}
if(SpielerInfo[playerid][pAge] < 3)
{
format(string, sizeof(string), " Du musst mindestens Level 3 sein um ein Haus kaufen zu können!");
SendClientMessage(playerid, COLOR_GRAD5, string);
return 1;
}
if(SpielerInfo[playerid][pPhousekey] != 999 && strcmp(playername, HouseInfo[SpielerInfo[playerid][pPhousekey]][hOwner], true) == 0)
{
SendClientMessage(playerid, COLOR_WHITE, " Dir gehört bereits ein Haus, gib /sellhouse ein um dein altes zu verkaufen !");
return 1;
}
if(GetPlayerMoney(playerid) > HouseInfo[h][hValue])
{
new str1[100];
SpielerInfo[playerid][pPhousekey] = h;
HouseInfo[h][hOwned] = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
new query[256];
format(query, sizeof(query), "UPDATE `accounts` SET `housekey` = '%d' WHERE `name` = '%s'", SpielerInfo[playerid][pPhousekey], sendername);
mysql_query(query);
strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
PlayerMoney[playerid] = PlayerMoney[playerid]-HouseInfo[h][hValue];
PlayerPlayMusic(playerid);
SetPlayerInterior(playerid,HouseInfo[h][hInt]);
SetPlayerPos(playerid,HouseInfo[h][hExitx],HouseInfo[h][hExity],HouseInfo[h][hExitz]);
GameTextForPlayer(playerid, "~w~Willkommen zu Hause~n~Du kannst das Haus an deiner Haustür mit /exit verlassen.", 5000, 3);
SpielerInfo[playerid][pInt] = HouseInfo[h][hInt];
SpielerInfo[playerid][pLocal] = h;
SendClientMessage(playerid, COLOR_WHITE, "Gratulation zu deinem neuen Kauf !");
SendClientMessage(playerid, COLOR_WHITE, "Gib /helpum Hilfe zu bekommen !");
format(str1, sizeof(str1), "==== [HausID: %d] ====\nBesitzer: %s\nPreis: %d$\nMiete: %d$\n Müll: %d",h,HouseInfo[h][hOwner],HouseInfo[h][hValue],HouseInfo[h][hRent],HouseInfo[h][hMuell]);
Update3DTextLabelText(HouseInfo[h][h_text],COLOR_YELLOW,str1);
DateProp(playerid);
SaveProperty(h);
//PlayerUpdate(playerid);
SaveMysqlPlayer(playerid);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, " Du hast nicht genug Geld !");
return 1;
}
}
}
}
return 1;
}
format(query, sizeof(query), "UPDATE `accounts` SET `housekey` = '%d' WHERE `name` = '%s'", SpielerInfo[playerid][pPhousekey], sendername);
mysql_query(query);
strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
PlayerMoney[playerid] = PlayerMoney[playerid]-HouseInfo[h][hValue];
PlayerPlayMusic(playerid);
SetPlayerInterior(playerid,HouseInfo[h][hInt]);
SetPlayerPos(playerid,HouseInfo[h][hExitx],HouseInfo[h][hExity],HouseInfo[h][hExitz]);
GameTextForPlayer(playerid, "~w~Willkommen zu Hause~n~Du kannst das Haus an deiner Haustür mit /exit verlassen.", 5000, 3);
SpielerInfo[playerid][pInt] = HouseInfo[h][hInt];
SpielerInfo[playerid][pLocal] = h;
SendClientMessage(playerid, COLOR_WHITE, "Gratulation zu deinem neuen Kauf !");
SendClientMessage(playerid, COLOR_WHITE, "Gib /helpum Hilfe zu bekommen !");
format(str1, sizeof(str1), "==== [HausID: %d] ====\nBesitzer: %s\nPreis: %d$\nMiete: %d$\n Müll: %d",h,HouseInfo[h][hOwner],HouseInfo[h][hValue],HouseInfo[h][hRent],HouseInfo[h][hMuell]);
Update3DTextLabelText(HouseInfo[h][h_text],COLOR_YELLOW,str1);
DateProp(playerid);
SaveProperty(h);
//PlayerUpdate(playerid);
SaveMysqlPlayer(playerid);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, " Du hast nicht genug Geld !");
return 1;
}
}
}
}
return 1;
}