14.07.2010, 23:39
A loop will be messed up when using else for positions or anything else in loops, just copy this.
pawn Код:
stock IsPlayerNearAnyHouse(playerid) {
for(h = 0; h < sizeof(HausInfo); h ++ ) {
if(IsPlayerInRangeOfPoint(playerid, 3.0, HausInfo[h][eX], HausInfo[h][eY], HausInfo[h][eZ])) return i;
}
return 0;
}
if(strcmp(cmd,"/kaufen",true)==0)
{
new h = IsPlayerNearAnyHouse(playerid);
if(!h) return GameTextForPlayer(playerid, "You're not near a house", 3000, 5);
if(SpielerInfo[playerid][pHaus] == 0)
{
if(GetPlayerMoney(playerid) < HausInfo[h][Preis])return 1;
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
GivePlayerMoney(playerid, - HausInfo[h][Preis]);
strmid(HausInfo[h][Besitzer], Name, 0, strlen(Name), 24);
HausInfo[h][Vergeben] = 1;
SpielerInfo[playerid][pHaus] = 1;
SpielerInfo[playerid][pId] = h+1;
WennSpielerUpdatet(playerid);
Kauf(playerid);
SendClientMessage(playerid,FARBE_WEIЯ,"Du hast dir ein Haus gekauft, die befehle kannst du unter /hh sehen!");
return 1;
}
else
{
SendClientMessage(playerid,FARBE_WEIЯ,"Du hast bereits ein Haus, dieses musst du verkaufen!");
return 1;
}
return 1;
}