28.10.2012, 14:35
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;
}