Hey,
Frage spontan ob ich GTA 2 mal laufen lassen kann um bestimmte Sachen zu testen, geht so etwas?
Ich will das mein Tankstand nicht nur in Liter angezeigt wird sondern auch mit nach Komma Stellen wie mache ich das am besten?
Also anstatt 2/40 Liter 2.49/40 Liter ( Also nochmal das der Max Tank nicht in einer Float angezeigt wird. )
enum vehDataEnum {
e_fuel
};
new vehData[MAX_VEHICLES][vehDataEnum];
if((newstate == PLAYER_STATE_DRIVER) || (newstate == PLAYER_STATE_PASSENGER))
{
new vid = GetPlayerVehicleID(playerid);
new string[128], modelid = GetVehicleModel(GetPlayerVehicleID(playerid)), idx = modelid-400;
format(string, sizeof(string), "%d/%dLiter", vehData[vid][e_fuel],vehDefaultData[idx][e_maxFuel]);
PlayerTextDrawSetString(playerid, textdraw[5][playerid], string);
}
//Textdraw wo es angezeigt wird
{
new vehicleid,tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective,string[128],idx;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i)) continue;
vehicleid = GetPlayerVehicleID(i);
GetVehicleParamsEx(vehicleid, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
if(tmp_engine == 1)
{
if(vehData[vehicleid][e_fuel] < 1)
{
tmp_engine = 0;
SetVehicleParamsEx(vehicleid, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
}
else
{
if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
{
vehData[vehicleid][e_fuel]--;
}
idx = GetVehicleModel(vehicleid)-400;
if(idx < 0) continue;
format(string, sizeof(string), "%d/%dLiter", vehData[vehicleid][e_fuel],vehDefaultData[idx][e_maxFuel]);
PlayerTextDrawSetString(i, textdraw[5][i], string);
}
}
}
for(new i=0; i<MAX_VEHICLES; i++)
{
if(IsAnyDriverInVehicle(i)) continue;
GetVehicleParamsEx(i, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
if(tmp_engine == 1)
{
if(vehData[i][e_fuel] < 1)
{
tmp_engine = 0;
SetVehicleParamsEx(i, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
}
else
{
vehData[i][e_fuel]--;
}
}
}
return 1;
}
Alles anzeigen
Also ich weiß das ich dann einen Timer erstelle der dann 0.01 immer abzieht, aber das umzusetzen schaffe ich nicht, es ist kompliziert.
@Jeffry
@Kaliber
Das habe ich auch noch im Script gefunden und weiß nicht was es macht (?)
Nach meinem Auge wenn der Tank auf -1 ist macht er ihn wieder voll aber das passiert nie.
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(vehData[vehicleid][e_fuel] == -1)
{
new idx = GetVehicleModel(vehicleid) - 400;
vehData[vehicleid][e_fuel] = vehDefaultData[idx][e_maxFuel];
}
}