Hallo,
wenn ich /hauskaufen wird in die Tabelle der Häuser der Hausbesitzer des Hauses nicht auf die KontoID vom User gesetzt und der Hauskäufer bekommt HausID 1 eingetragen ob wohl die ID des gekauften Hauses 0 ist. Hier mein Befehl:
dcmd_hauskaufen(playerid,params[])
{
#pragma unused params
new string[256];
for(new i=0; i<MAX_PLAYER_HAUS; i++)
{
if(IsPlayerInRangeOfPoint(playerid,2,Hauser[i][H_X],Hauser[i][H_Y],Hauser[i][H_Z]))
{//{FF0000} = ROT
format(string,sizeof(string),"Hallo und vielen Dank für Ihr Interesse!\nDas Mindeslevel beläuft sich auf %d.\nDas Haus kostet %d€\nDrücken Sie Fortfahren um zur Auswahl der Zahlungsart zu kommen.\nDrücken Sie Abbrechen um abzubrechen.",Hauser[i][MinLevel],Hauser[i][Preis]);
ShowPlayerDialog(playerid,DIALOG_HAUSKAUF,DIALOG_STYLE_MSGBOX,"Hauskauf",string,"Fortfahren","Abbrechen");
}
else
{
//SPAM
}
}
return 1;
}
Dann werden ein paar Dialoge durchgenommen und nach dem letzten Dialog soll er dann die Aktionen ausführen:
if(dialogid == DIALOG_HAUSKAUF_BARBESTAETIGEN)
{
if(response)
{
for(new i=0; i<MAX_PLAYER_HAUS; i++)
{
if(IsPlayerInRangeOfPoint(playerid,2,Hauser[i][H_X],Hauser[i][H_Y],Hauser[i][H_Z]))
{
if(PlayerInfo[playerid][pHausID] == -1)
{
new str[128];
PlayerInfo[playerid][pMoney] -= Hauser[i][Preis];
Hauser[i][Besitzer] = PlayerInfo[playerid][p_id];
PlayerInfo[playerid][pHausID] = Hauser[i][Besitzer];
Hauser[i][ID] = PlayerInfo[playerid][pHausID];
PlayerPlaySound(playerid,1062,Hauser[i][H_X],Hauser[i][H_Y],Hauser[i][H_Z]);
GameTextForPlayer(playerid,"~g~Glückwunsch!~w~Haus gekauft.",5,3);
format(str,sizeof(str),"Ihnen wurden %d€ Bargeld abgezogen.",Hauser[i][Preis]);
SendClientMessage(playerid,COLOR_LIGHTBLUE,str);
}
else
{
SendClientMessage(playerid,COLOR_RED,"Sie sind bereits Eigentümer eines Hauses.");
}
}
}
}
else
{
//NIX
}
return 1;
}
Hoffe mir kann jemand helfen, mit freundlichem Gruß,
SebMcpepp