/createhouse help, REP !
#4

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;
}
I'm just going to assume that when a house does not exist, its 'hValue' is equal to 0. Thus when a house value does not equal 0, we can assume that it already exists and we can skip it in the loop by using 'continue'.

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.
Reply


Messages In This Thread
/createhouse help, REP ! - by xWarrior - 06.01.2015, 14:38
Re: /createhouse help, REP ! - by Ironboy - 06.01.2015, 14:53
Re: /createhouse help, REP ! - by rickisme - 06.01.2015, 14:55
Re: /createhouse help, REP ! - by Threshold - 06.01.2015, 14:56
Re: /createhouse help, REP ! - by xWarrior - 06.01.2015, 15:19

Forum Jump:


Users browsing this thread: 1 Guest(s)