CMD:buyprop(playerid,params[])
{
new done=0;
for(new i = 0; i < MAX_HOUSES; i++)
{
if(IsPlayerInRangeOfPoint(playerid,2,HouseInfo[i][hX],HouseInfo[i][hY],HouseInfo[i][hZ]))
{
if(GetPlayerMoney(playerid) >= HouseInfo[i][hPrice])
{
if(pInfo[playerid][House] == 0)
{
if(strcmp(HouseInfo[i][hOwner],"",false))
{
format(HouseInfo[i][hOwner],24,"%s",pName(playerid));
pInfo[playerid][House] = i;
format(string,sizeof(string),"You've successfully bought property named \"%s\"",HouseInfo[i][hName]);
SendClientMessage(playerid,COLOR_YELLOW,string);
format(string,sizeof(string),"purchased a property named %s",HouseInfo[i][hName]);
DestroyDynamicPickup(HouseInfo[i][hPickup]);
DestroyDynamicMapIcon(HouseInfo[i][hIcon]);
GivePlayerMoney(playerid,-HouseInfo[i][hPrice]);
format(string,sizeof(string),"Owner: %s",HouseInfo[i][hOwner]);
HouseInfo[i][hText] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, HouseInfo[i][hX],HouseInfo[i][hY],HouseInfo[i][hZ], 50, INVALID_PLAYER_ID,INVALID_VEHICLE_ID, 0, -1,0);
HouseInfo[i][hPickup] = CreateDynamicPickup(1272,1,HouseInfo[i][hX],HouseInfo[i][hY],HouseInfo[i][hZ],-1,0,-1,50.0);
format(query,sizeof(query),"INSERT INTO `timeline` (name,date,text) VALUES ('%s',CURDATE(),'%s')",pName(playerid),string);
mysql_query(query);
done=1;
return 1;
}
else return SendClientMessage(playerid,COLOR_GREY,"That house is already owned by someone else.");
}
else return SendClientMessage(playerid,COLOR_GREY,"You already own a house.");
}
else return SendClientMessage(playerid,COLOR_GREY,"You don't have enough money to buy this property.");
}
else return SendClientMessage(playerid,COLOR_GREY,"You're nowhere close to any house.");
}
return 1;
}
if(GetPlayerMoney(playerid) >= HouseInfo[i][hPrice])
{
if(pInfo[playerid][House] == 0)
{
stock LoadHouses()
{
new id = 1;
while(id < MAX_HOUSES)
{
format(query,sizeof(query),"SELECT * FROM `houses` WHERE `id` = '%d'",id);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows())
{
if(mysql_fetch_row_format(query,"|"))
{
sscanf(query,"p<|>fffis[128]ii",HouseInfo[id][hX],HouseInfo[id][hY],HouseInfo[id][hZ],HouseInfo[id][hInt],HouseInfo[id][hName],HouseInfo[id][hPrice],HouseInfo[id][hMoney]);
CreateHouse(HouseInfo[id][hX],HouseInfo[id][hY],HouseInfo[id][hZ],HouseInfo[id][hInt],HouseInfo[id][hName],HouseInfo[id][hPrice]);
HouseInfo[id][hIcon] = CreateDynamicMapIcon(HouseInfo[id][hX],HouseInfo[id][hY],HouseInfo[id][hZ],31,-1,-1,-1,-1,50.0);
}
}
id++;
}
return 1;
}
stock LoadHouses()
{
new id = 1;
while(id < MAX_HOUSES)
{
format(query,sizeof(query),"SELECT * FROM `houses` WHERE `id` = %d",id);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows())
{
if(mysql_fetch_row_format(query,"|"))
{
sscanf(query,"p<|>fffis[128]ii",HouseInfo[id][hX],HouseInfo[id][hY],HouseInfo[id][hZ],HouseInfo[id][hInt],HouseInfo[id][hName],HouseInfo[id][hPrice],HouseInfo[id][hMoney]);
CreateHouse(HouseInfo[id][hX],HouseInfo[id][hY],HouseInfo[id][hZ],HouseInfo[id][hInt],HouseInfo[id][hName],HouseInfo[id][hPrice]);
HouseInfo[id][hIcon] = CreateDynamicMapIcon(HouseInfo[id][hX],HouseInfo[id][hY],HouseInfo[id][hZ],31,-1,-1,-1,-1,50.0);
printf("hX %f", HouseInfo[id][hX]);
}
}
id++;
}
return 1;
}
Any suggestion how to check if money is greater than the house price without loop? Or I create another loop above this one?
|
new houseid = -1;
for(new i = 0; i < MAX_HOUSES; i++)
{
if(IsPlayerInRangeOfPoint(playerid,2,HouseInfo[i][hX],HouseInfo[i][hY],HouseInfo[i][hZ]))
{
houseid = i;
break;
}
}
if(houseid == -1)
{
// Not in range
return 1;
}
if(GetPlayerMoney(playerid) >= HouseInfo[houseid][hPrice])
{
// etc, etc
}