public Fillup() { //foreach(Player, i) for(new i; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { new VID; new FillUp; new string[128]; VID = GetPlayerVehicleID(i); FillUp = 100 - Gas[VID]; if(Refueling[i] == 1) { if(PlayerInfo[i][pCash] >= FillUp+4) { Gas[VID] += FillUp; FillUp = 50; format(string,sizeof(string),"* You filled your Vehicle up for: $%d.",FillUp); SendClientMessage(i,COLOR_LIGHTBLUE,string); PlayerInfo[i][pCash] = PlayerInfo[i][pCash]-FillUp; GivePlayerMoney(i, - FillUp); Refueling[i] = 0; } else { SendClientMessage(i,COLOR_GREY," You can't afford that !"); } } } } return 1; }
Fuel[carid] -= 0.07;
I found out what makes it bug, but I don't know how to solve it.
Код:
Fuel[carid] -= 0.07; |
public Speedometer() { for(new i = 0; i < MAX_PLAYERS; i++) { new State = GetPlayerState(i); if(State == PLAYER_STATE_DRIVER && ShowSpeed[i] == 1 && IsPlayerInAnyVehicle(i)) { #define MULTIPLY_SPEED 3 new carid = GetPlayerVehicleID(i); new VehicleModel = GetVehicleModel(GetPlayerVehicleID(i)); new playerid; new Float:x, Float:y, Float:z, Float:health, string[256]; TextDrawDestroy(black); TextDrawDestroy(Speedom[i]); GetPlayerPos(i, x, y, z); GetVehicleHealth(GetPlayerVehicleID(i), health); new Float:Dis = floatsqroot(floatpower(floatabs(floatsub(OldCoordsX[i],x)),2) + floatpower(floatabs(floatsub(OldCoordsY[i],y)),2)); if(Fuel[carid] <= 0){ RemovePlayerFromVehicle(i); SendClientMessage(i, COLOR_LIGHTRED, "The gas tank is empty in this vehicle !"); } if(VehicleModel==509||VehicleModel==481||VehicleModel==510) { SetVehicleHealth(GetPlayerVehicleID(i), 1000); Fuel[carid] = 100; } if(VehicleModel==520||VehicleModel==476||VehicleModel==593||VehicleModel==553||VehicleModel==513||VehicleModel==512||VehicleModel==577||VehicleModel==592||VehicleModel==511||VehicleModel==539||VehicleModel==464||VehicleModel==519) { Fuel[carid] = 100; } new speed = (floatround(Dis)*MULTIPLY_SPEED); new vid = GetPlayerVehicleID(playerid); new Sspeed[15]; if( speed == 0) { format(Sspeed,sizeof(Sspeed),"~w~%dKM/H",(floatround(Dis)*MULTIPLY_SPEED)); } else if( speed >= 1 && speed <= 60 ){ format(Sspeed,sizeof(Sspeed),"~w~%dKM/H",(floatround(Dis)*MULTIPLY_SPEED)); Fuel[carid] -= 0.01; } else if( speed >= 61 && speed <= 120 ){ format(Sspeed,sizeof(Sspeed),"~w~%dKM/H",(floatround(Dis)*MULTIPLY_SPEED)); Fuel[carid] -= 0.02; } else if( speed >= 120 && speed <= 500 ){ format(Sspeed,sizeof(Sspeed),"~w~%dKM/H",(floatround(Dis)*MULTIPLY_SPEED)); Fuel[carid] -= 0.05; } format(string,sizeof(string),"~n~~Y~Speed:~w~%s~n~~Y~Fuel:~w~%d~n~" ,Sspeed,Fuel[vid]); black = TextDrawCreate(494.000000,379.000000,"_"); TextDrawTextSize(black,600.000000,0.000000); TextDrawAlignment(black,0); TextDrawFont(black,2); TextDrawLetterSize(black,1.700000,6.250000); TextDrawSetOutline(black,1); TextDrawSetProportional(black,1); TextDrawSetShadow(black,1); Speedom[i] = TextDrawCreate(495.000000,380.000000,string); TextDrawTextSize(Speedom[i],600.000000,0.000000); TextDrawAlignment(Speedom[i],0); TextDrawFont(Speedom[i],2); TextDrawLetterSize(Speedom[i],0.299999,1.000000); TextDrawSetOutline(Speedom[i],1); TextDrawSetProportional(Speedom[i],1); TextDrawSetShadow(Speedom[i],1); TextDrawShowForPlayer(i, black); TextDrawShowForPlayer(i, Speedom[i]); OldCoordsX[i] = x; OldCoordsY[i] = y; } else { TextDrawHideForPlayer(i, black); TextDrawHideForPlayer(i, Speedom[i]); } } return true; }