30.03.2012, 18:38
crossfire here again, this time when go to compile into 0.3E it is successful, however when i go to go ingame and /refuel my vehicles its continually spams the fuel and price, can anyone please help me
here is the current coding in the script
can anyone tell me what is wrong with it please, keep in mind it continually spams the price of the fuel by charging the player that had purchased the fuel
here is the current coding in the script
Код:
#define SendFormattedMessage(%0,%1,%2) do{new _str[128]; format(_str,128,%2); SendClientMessageEx(%0,%1,_str);}while(FALSE) CMD:refuel(playerid, params[]) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid); new engine,lights,alarm,doors,bonnet,boot,objective; GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective); if(engine == VEHICLE_PARAMS_ON) return SendClientMessageEx(playerid, COLOR_RED, "You need to shut off the engine before filling up (/car engine)."); if(!IsAtFuelStation(playerid)) return SendClientMessageEx(playerid, COLOR_RED, "You're not at a fuel station."); if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510) return SendClientMessageEx(playerid,COLOR_RED,"This vehicle doesn't need fuel."); if(VehicleFuel[vehicleid] >= 100.0) return SendClientMessageEx(playerid, COLOR_RED, "This vehicle's tank is already full."); if(RefuelingVehicle[playerid] == 1) return SendClientMessageEx(playerid, COLOR_RED, "You are refilling your vehicle's tank."); SendClientMessageEx(playerid, COLOR_WHITE, "Refueling your vehicle's tank, please wait."); RefuelingVehicle[playerid] = 1; RefuelingVehicleTimer[playerid] = SetTimerEx("ReFill", 1000, true, "i", playerid); } return 1; } public ReFill(playerid) { if(!IsAtFuelStation(playerid) || !IsPlayerInAnyVehicle(playerid) || VehicleFuel[GetPlayerVehicleID(playerid)] >= 100.0 || GetPlayerCash(playerid) < 1) { StopRefueling(playerid); } else { new engine,lights,alarm,doors,bonnet,boot,objective; GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective); if(engine == VEHICLE_PARAMS_ON) return StopRefueling(playerid); VehicleFuel[GetPlayerVehicleID(playerid)] += 1.0; RefuelingVehiclePrice[playerid] += 30; if(VehicleFuel[GetPlayerVehicleID(playerid)] >= 100.0) VehicleFuel[GetPlayerVehicleID(playerid)] = 100.0; } return true; } stock StopRefueling(playerid) { GivePlayerCash(playerid, -RefuelingVehiclePrice[playerid]); SendFormattedMessage(playerid, COLOR_WHITE,"Your vehicle's tank has been refilled for $%d.", RefuelingVehiclePrice[playerid]); new mypoint = -1; for (new i=0; i<MAX_POINTS; i++) { if(strcmp(Points[i][Name], "Fossil Fuel Company", true) == 0) { mypoint = i; } } for(new i = 0; i < sizeof(FamilyInfo); i++) { if(strcmp(Points[mypoint][Owner], FamilyInfo[i][FamilyName], true) == 0) { FamilyInfo[i][FamilyBank] = FamilyInfo[i][FamilyBank]+(RefuelingVehiclePrice[playerid]/10); } } RefuelingVehicle[playerid] = 0; RefuelingVehiclePrice[playerid] = 0; KillTimer(RefuelingVehicleTimer[playerid]); return true; }