29.03.2012, 19:00
I am having a problem with this piece spamming players ingame when they refuel. it spams "Your vehicles tank has been refilled" and charges them every time. Any ideas on what is causing the problem?
Код:
#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; }