Erro na float? - guigowbr -  03/09/2021
 
 
Olá rapazes!  
 
 
Meu sistema de Gasolina está em Float, todo veiculo tem VehicleData[c][vFuel] = 100.0; 
 
https://imgur.com/a/3HaMHN2 
 
Porém o TextDrawn carrega 112, como arrumar isto? 
 
Essa é minha função que mostra a Velocidade e a Gasolina 
Código PHP:     format(string, sizeof(string), "Gasolina: %d", VehicleData[vehicleid][vFuel]); //%03d     PlayerTextDrawSetString(playerid, viewgasolina[playerid], string);     PlayerTextDrawShow(playerid, viewgasolina[playerid]); 
 
  
Está é a função que diminui a gasolina quando ligado o veiculo 
Código PHP: forward FuelTimer(vehicleid); public FuelTimer(vehicleid) {     new engine, lights, alarm, doors, bonnet, boot, objective;     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);     if(engine > 0)     {         VehicleData[vehicleid][vFuel] -= 0.08;         return 1;     }     if(VehicleData[vehicleid][vFuel] <= 0)     {         VehicleData[vehicleid][vFuel] = 0.00;         SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);          KillTimer(VehicleData[vehicleid][vTimer]);         for(new i = 0; i < MAX_PLAYERS; i++) // Se der algo problema na gasolina, tirar isso         {             if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 0)             {                 SendClientMessage(i, -1, "Veículo sem combutível!");                 break;             }         }     }     return 1; } 
 
  
 
 
 
RE: Erro na float? - SrBlue -  03/09/2021
 
 
 (03/09/2021 22:16)guigowbr Escreveu:  Olá rapazes!  
 
 
Meu sistema de Gasolina está em Float, todo veiculo tem VehicleData[c][vFuel] = 100.0; 
 
https://imgur.com/a/3HaMHN2 
 
Porém o TextDrawn carrega 112, como arrumar isto? 
 
Essa é minha função que mostra a Velocidade e a Gasolina 
Código PHP:     format(string, sizeof(string), "Gasolina: %d", VehicleData[vehicleid][vFuel]); //%03d     PlayerTextDrawSetString(playerid, viewgasolina[playerid], string);     PlayerTextDrawShow(playerid, viewgasolina[playerid]); 
 
  
Está é a função que diminui a gasolina quando ligado o veiculo 
Código PHP: forward FuelTimer(vehicleid); public FuelTimer(vehicleid) {     new engine, lights, alarm, doors, bonnet, boot, objective;     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);     if(engine > 0)     {         VehicleData[vehicleid][vFuel] -= 0.08;         return 1;     }     if(VehicleData[vehicleid][vFuel] <= 0)     {         VehicleData[vehicleid][vFuel] = 0.00;         SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);          KillTimer(VehicleData[vehicleid][vTimer]);         for(new i = 0; i < MAX_PLAYERS; i++) // Se der algo problema na gasolina, tirar isso         {             if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 0)             {                 SendClientMessage(i, -1, "Veículo sem combutível!");                 break;             }         }     }     return 1; } 
 
   
 
tenta utilizar: 
 
Código PHP: format(string, sizeof(string), "Gasolina: %d%", VehicleData[vehicleid][vFuel]); //%03d 
 
  
 
 
 
RE: Erro na float? - ProKillerPa -  03/09/2021
 
 
Voce esta utilizando %d ao inves de usar %f. 
 
Lembre-se, %d = INT, %f = FLOAT. 
 
Código PHP: format(string, sizeof(string), "Gasolina: %f%", VehicleData[vehicleid][vFuel]); //%03d 
 
  
Abraços
 
 
 
RE: Erro na float? - guigowbr -  03/09/2021
 
 
 (03/09/2021 22:16)guigowbr Escreveu:  Olá rapazes!  
 
 
Meu sistema de Gasolina está em Float, todo veiculo tem VehicleData[c][vFuel] = 100.0; 
 
https://imgur.com/a/3HaMHN2 
 
Porém o TextDrawn carrega 112, como arrumar isto? 
 
Essa é minha função que mostra a Velocidade e a Gasolina 
Código PHP:     format(string, sizeof(string), "Gasolina: %d", VehicleData[vehicleid][vFuel]); //%03d     PlayerTextDrawSetString(playerid, viewgasolina[playerid], string);     PlayerTextDrawShow(playerid, viewgasolina[playerid]); 
 
  
Está é a função que diminui a gasolina quando ligado o veiculo 
Código PHP: forward FuelTimer(vehicleid); public FuelTimer(vehicleid) {     new engine, lights, alarm, doors, bonnet, boot, objective;     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);     if(engine > 0)     {         VehicleData[vehicleid][vFuel] -= 0.08;         return 1;     }     if(VehicleData[vehicleid][vFuel] <= 0)     {         VehicleData[vehicleid][vFuel] = 0.00;         SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);          KillTimer(VehicleData[vehicleid][vTimer]);         for(new i = 0; i < MAX_PLAYERS; i++) // Se der algo problema na gasolina, tirar isso         {             if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 0)             {                 SendClientMessage(i, -1, "Veículo sem combutível!");                 break;             }         }     }     return 1; } 
 
   
Amigo, infelizmente não mudou nada.
 
 
 
RE: Erro na float? - SrBlue -  03/09/2021
 
 
então tente utilizar: 
format(string, sizeof(string), "Gasolina: %0f", VehicleData[vehicleid][vFuel]);
 
 
 
RE: Erro na float? - ProKillerPa -  03/09/2021
 
 
Manda a função inteira onde voce usa esse format pra alterar a string da txd.
 
 
 
RE: Erro na float? - xbruno1000x -  03/09/2021
 
 
Existe chance do VehicleData[vehicleid][vFuel] estar sendo aumentado em algum lugar?
 
 
 
RE: Erro na float? - guigowbr -  03/09/2021
 
 
Pessoal eu não deixei mais a vFuel como Float e deu certo.  
 
O sistema é o seguinte, o player liga o veiculo e chama uma função de 1 em um segundo, perdendo -1 de gasolina. 
 
Está funcionando tudo corretamente, porém isso daria apenas 100 segundos de combustível.  Alguém tem uma sugestão? Se eu deixar em Float buga novamente. 
 
--------------------------------------------------- 
 
Código PHP: forward FuelTimer(vehicleid); public FuelTimer(vehicleid) {     new engine, lights, alarm, doors, bonnet, boot, objective;     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);     if(engine > 0)     {         VehicleData[vehicleid][vFuel] -= 1;     }     if(VehicleData[vehicleid][vFuel] <= 0)     {         VehicleData[vehicleid][vFuel] = 0;         SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);          KillTimer(VehicleData[vehicleid][vTimer]);         for(new i = 0; i < MAX_PLAYERS; i++) // Se der algo problema na gasolina, tirar isso         {             if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 0)             {                 SendClientMessage(i, -1, "Sua gasolina acabou!");                 SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);                 break;             }         }     }     return 1; } 
 
  
Esse aqui é o Código que edita o TextDrawn ( meu velocimetro ). 
 
Código PHP: forward ProcessGasolina(playerid); public ProcessGasolina(playerid) {     new vehicleid = GetPlayerVehicleID(playerid);     if(!IsPlayerInVehicle(playerid, vehicleid))     {         PlayerTextDrawHide(playerid, viewgasolina[playerid]);         PlayerTextDrawHide(playerid, viewlataria[playerid]);         return 1;     }     new string[14], string2[22];     format(string, sizeof(string), "Gasolina: %d%", VehicleData[vehicleid][vFuel]);//%03d     PlayerTextDrawSetString(playerid, viewgasolina[playerid], string);     PlayerTextDrawShow(playerid, viewgasolina[playerid]);      if(GetPlayerSpeed(playerid, true) >= 150)     {         format(string2,sizeof(string2),"Velocidade: %d Km/h",GetPlayerSpeed(playerid, true));         PlayerTextDrawSetString(playerid, viewlataria[playerid], string2);         PlayerTextDrawShow(playerid, viewlataria[playerid]);     }     else     {         format(string2,sizeof(string2),"Velocidade: %d Km/h",GetPlayerSpeed(playerid, true));         PlayerTextDrawSetString(playerid, viewlataria[playerid], string2);         PlayerTextDrawShow(playerid, viewlataria[playerid]);     }     return 1; } 
 
  
 
 
 
RE: Erro na float? - Um cara ai -  03/09/2021
 
 
Eu queria saber porque no format o float esta sendo tratado como um valor inteiro '-' 
 
COMO ESTA: 
format(string, sizeof(string), "%d", valor_float); 
 
COMO CORRIGIR: 
format(string, sizeof(string), "%f", valor_float); 
 
OU: 
format(string, sizeof(string), "%d", floatround(valor_float));
 
 
 
 |