Hey,
ich habe einen /kaufen Befehl erstellt um ein Haus zu kaufen.
Also hier erstmal der Code:
ocmd:kaufen(playerid,params[])
{
new i = GetNearestHouse(playerid), data[128];
if(i == INVALID_HOUSE_ID) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Hauses.");
if(GetPlayerHouse(playerid) != INVALID_HOUSE_ID) return SendClientMessage(playerid,-1,"Du besitzt bereits ein Haus.");
if(strcmp(HouseInfo[i][Besitzer],"Niemand",true)) return SendClientMessage(playerid,-1,"Dieses Haus gehört bereits einem Spieler!");
else if(GetPlayerMoney(playerid) < HouseInfo[i][Preis]) return SendClientMessage(playerid,-1,"Du hast nicht genügend Geld, um dir dieses Haus zu kaufen!");
else{
GivePlayerMoneyEx(playerid,-HouseInfo[i][Preis]);
format(HouseInfo[i][Besitzer],32,"%s",GetName(playerid));
HouseInfo[i][Mietbar]=0;
HouseInfo[i][Miete]=0;
HouseInfo[i][Locked]=1;
format(data,128,"Besitzer: %s\nMietbar: NEIN\nAbgeschlossen: %s",HouseInfo[i][Besitzer],GetLocked(i));
Update3DTextLabelText(House3D[i],0xFF6600FF,data);
format(data,128,"Du hast dir erfolgreich ein Haus gekauft, und erhältst den Schlüssel mit der Nr. %i ..",i);
SendClientMessage(playerid,-1,data);
//UpdateHouseInfo(GetPlayerHouse(playerid));
return 1;
}
}
{
new i = GetNearestHouse(playerid), data[128];
if(i == INVALID_HOUSE_ID) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Hauses.");
if(GetPlayerHouse(playerid) != INVALID_HOUSE_ID) return SendClientMessage(playerid,-1,"Du besitzt bereits ein Haus.");
if(strcmp(HouseInfo[i][Besitzer],"Niemand",true)) return SendClientMessage(playerid,-1,"Dieses Haus gehört bereits einem Spieler!");
else if(GetPlayerMoney(playerid) < HouseInfo[i][Preis]) return SendClientMessage(playerid,-1,"Du hast nicht genügend Geld, um dir dieses Haus zu kaufen!");
else{
GivePlayerMoneyEx(playerid,-HouseInfo[i][Preis]);
format(HouseInfo[i][Besitzer],32,"%s",GetName(playerid));
HouseInfo[i][Mietbar]=0;
HouseInfo[i][Miete]=0;
HouseInfo[i][Locked]=1;
format(data,128,"Besitzer: %s\nMietbar: NEIN\nAbgeschlossen: %s",HouseInfo[i][Besitzer],GetLocked(i));
Update3DTextLabelText(House3D[i],0xFF6600FF,data);
format(data,128,"Du hast dir erfolgreich ein Haus gekauft, und erhältst den Schlüssel mit der Nr. %i ..",i);
SendClientMessage(playerid,-1,data);
//UpdateHouseInfo(GetPlayerHouse(playerid));
return 1;
}
}
Mein Problem ist:
Immer wenn ich das Haus, mit der ID 0 kaufe, kann ich alles machen: abschließen, verkaufen usw.
Doch wenn ich ein anderes Haus kaufe, wird er gekauft: Geld abgezogen, 3DText geupdatet ust.
Doch trotzdem sagt mein Script dann, ich hätte kein Haus, obwohl "Besitzer" sogar auf "Sh12" steht.
Aber beim Haus 0 geht alles tadellos.. Aber warum? ;/