06.01.2015, 14:56
pawn Код:
CMD:createhouse(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, COLOR_GRAD2,""COL_RED"You are not authorized to use this command!");
if(!AdminDuty[playerid] && PlayerInfo[playerid][pAdmin] < 6) return SCM(playerid,COLOR_WHITE,""COL_RED"You're not on-duty as admin. To access your admin commands you must be on-duty. Type /aduty to go on-duty.");
new price, level;
if(sscanf(params, "dd", price, level)) return SCM(playerid, COLOR_GRAD1, ""COL_BLUE"USAGE:"COL_WHITE" /createhouse [price] [level]");
for(new idx = 1; idx < MAX_HOUSES; idx++)
{
if(HouseInfo[idx][hValue]) continue; //If the house exists, its value would be greater than 0. So skip owned houses...
GetPlayerPos(playerid, HouseInfo[idx][hExteriorX], HouseInfo[idx][hExteriorY], HouseInfo[idx][hExteriorZ]);
GetPlayerFacingAngle(playerid, HouseInfo[idx][hExteriorA]);
HouseInfo[idx][hValue] = price;
HouseInfo[idx][hLevel] = level;
HouseInfo[idx][hOwned] = 0;
HouseInfo[idx][hLock] = 1;
format(string, sizeof(string), "This house is for sale!\n Level: %d\nID: %d\nPrice: $%d\nTo buy this house type /buyhouse",HouseInfo[idx][hLevel],idx,HouseInfo[idx][hValue]);
HouseInfo[idx][hTextID] = CreateDynamic3DTextLabel(string, COLOR_HOUSEGREEN, HouseInfo[idx][hExteriorX], HouseInfo[idx][hExteriorY], HouseInfo[idx][hExteriorZ]+0.5,3);
HouseInfo[idx][hPickupID] = CreateDynamicPickup(1273, 23, HouseInfo[idx][hExteriorX], HouseInfo[idx][hExteriorY], HouseInfo[idx][hExteriorZ]);
SaveHouses();
format(string, sizeof(string), "AdmcCmd: %s has created house ID %d.", GetPlayerNameEx(playerid), idx);
ABroadCast(COLOR_LIGHTRED, string, 2);
break;
}
return 1;
}
Also, I'm not sure why you used idx = MAX_HOUSES; but you can just use 'break' to break a loop and stop it from continuing.