Problem with MAX_FUELSTATIONS and /fuel
#3

pawn Код:
CMD:fuel(playerid, params[]) {
    new iCount = 0;
    for(new x = 0; x < MAX_FUELSTATIONS; x++) {
        if(IsPlayerInRangeOfPoint(playerid, 5.0, fuelVariables[x][fsPos][0], fuelVariables[x][fsPos][1], fuelVariables[x][fsPos][2])) {
            iCount++;
            new vid = GetClosestVehicle(playerid),
                fPercent,
                fPercentTime,
                price;
            if(IsPlayerInRangeOfVehicle(playerid, vid, 5.0)) {
                if(IsPlayerInAnyVehicle(playerid))
                    return SendClientMessage(playerid, COLOR_GREY, "You must be standing outside of your vehicle to fill it.");
                if(sscanf(params, "d", fPercent)) {
                    SendClientMessage(playerid, COLOR_GREY, SYNTAX_MESSAGE"/fuel [percentage]");
                    return 1;
                }
                price = fuelVariables[x][fsFuelPrice] * fPercent;
                if(vehicleVariables[vid][vVehicleFuel] + fPercent > MAX_VEHICLE_FUEL)
                    fPercent = MAX_VEHICLE_FUEL - vehicleVariables[x][vVehicleFuel];
                if(playerVariables[playerid][pMoney] >= price) {
                    format(szMessage, sizeof(szMessage), "* %s sticks the end of the fuel-hose nozzle into the %s and squeezes the trigger.", playerVariables[playerid][pNormalName], VehicleNames[vid - 400]);
                    nearByMessage(playerid, COLOR_PURPLE, szMessage);
                    fPercentTime = fPercent * 200;
                    playerVariables[playerid][pMoney] -= price;
                    SetTimerEx("fuelvehicle", fPercentTime, false, "ddd", playerid, vid, fPercent);
                    TogglePlayerControllable(playerid, 0);
                }
                else {
                    format(szMessage, sizeof(szMessage), "You do not have enough money! ($%d)", price);
                    SendClientMessage(playerid, COLOR_GREY, szMessage);
                    break;
                }
            }
            else {
                SendClientMessage(playerid, COLOR_GREY, "You are not near your vehicle!");
                break;
            }
        }
    }
    if(iCount == 0) {
        SendClientMessage(playerid, COLOR_GREY, "You are not at a fuel station!");
    }
    return 1;
}
Don't send a message in a loop... I also added a break for when the code doesn't need to continue - Not near vehicle, not enough money...
Reply


Messages In This Thread
Problem with MAX_FUELSTATIONS and /fuel - by Eric - 28.10.2012, 07:03
Re: Problem with MAX_FUELSTATIONS and /fuel - by Eric - 28.10.2012, 13:54
Re: Problem with MAX_FUELSTATIONS and /fuel - by ryansheilds - 28.10.2012, 14:35
Re: Problem with MAX_FUELSTATIONS and /fuel - by Eric - 28.10.2012, 14:49

Forum Jump:


Users browsing this thread: 1 Guest(s)