Tacho - Tank Problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link

  • stock UpdatePlayerTacho(playerid)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new string[128],
    vehicleid,
    model,
    Float:CarHealth,
    CarHealthIni,
    Float:TankInProzent,
    Float:Tank;
    vehicleid = GetPlayerVehicleID(playerid);
    model = GetVehicleModel(vehicleid);
    //GetVehiclePos(vehicleid, Vehicle[vehicleid][vehPosX2], Vehicle[vehicleid][vehPosY2], Vehicle[vehicleid][vehPosZ2]);
    if(IsAFahrrad(model))return 1;
    TankInProzent = VehicleData[GetVehicleModel(vehicleid)-400][vehMaxTank]/100;
    Tank = Vehicle[vehicleid][vehFuel];
    GetVehicleHealth(vehicleid, CarHealth);
    CarHealthIni = floatround((CarHealth - 250.0) / 7.5, floatround_floor);
    if(CarHealthIni < 0) CarHealthIni = 0;
    format(string, sizeof(string), "~b~%s: ~w~%d%", VehicleName[GetVehicleModel(vehicleid)-400],CarHealthIni);
    PlayerTextDrawSetString(playerid, pTextSpeedo[playerid][3], string);
    format(string, sizeof(string), "%d km/h", GetVehicleSpeed(vehicleid));
    PlayerTextDrawSetString(playerid, pTextSpeedo[playerid][4], string);
    format(string, sizeof(string), "~b~KM-Stand:~w~ %.1f", Vehicle[vehicleid][vehKMStand]);
    PlayerTextDrawSetString(playerid, pTextSpeedo[playerid][2], string);
    new Float:position = 514.0;
    position += Tank/TankInProzent;
    PlayerTextDrawTextSize(playerid, pTextSpeedo[playerid][1], position, 0.0);
    if(Tank/TankInProzent >= 50 && Tank/TankInProzent <= 100){
    PlayerTextDrawBoxColor(playerid, pTextSpeedo[playerid][1], 828254308);
    }
    if(Tank/TankInProzent <= 49 && Tank/TankInProzent >= 25){
    PlayerTextDrawBoxColor(playerid, pTextSpeedo[playerid][1], -945203201);
    }
    if(Tank/TankInProzent >= 0 && Tank/TankInProzent <= 24){
    PlayerTextDrawBoxColor(playerid, pTextSpeedo[playerid][1], -1625941249);
    }
    PlayerTextDrawShow(playerid, pTextSpeedo[playerid][1]);
    format(string, sizeof(string), "~b~Tank: ~w~%d/%d ~b~L", floatround(Tank/TankInProzent));
    PlayerTextDrawSetString(playerid, pTextSpeedo[playerid][1], string);
    }
    return 1;
    }



    Hallo, es wird alles super angezeigt funktioniert auch.


    so wen ich aber in ein Fahrzeug steige vom Script her zeigt er mir Tank: 0 an das das Auto leer ist. wen ich /motor eingebe ist der Tank tatsächlich leer.
    Wen ich ein Fahrzeug ingame erstelle ist der Tank voll und wird auch gespeichert.
    Komisch ist das nur die Fahrzeuge Leer sind die ihm Script drinnen sind.

  • Hallo, es wird alles super angezeigt funktioniert auch.


    so wen ich aber in ein Fahrzeug steige vom Script her zeigt er mir Tank: 0 an das das Auto leer ist. wen ich /motor eingebe ist der Tank tatsächlich leer.
    Wen ich ein Fahrzeug ingame erstelle ist der Tank voll und wird auch gespeichert.
    Komisch ist das nur die Fahrzeuge Leer sind die ihm Script drinnen sind.

    Hey,


    was du probieren kannst ist unter OngamemodeInit nachdem(!) deine fahrzeuge erstellt wurden den tank auf 100 mit einer for schleife zu setzen.
    anschließend kannst du pro fahrzeug bei onvehiclespawn die richtigen liter setzen, wenn du verstehst was ich meine.


    je nach dem wie dus haben willst.


    mfg

    Mit freundlichen Grüßen,


    Keslo

  • Hey,
    was du probieren kannst ist unter OngamemodeInit nachdem(!) deine fahrzeuge erstellt wurden den tank auf 100 mit einer for schleife zu setzen.
    anschließend kannst du pro fahrzeug bei onvehiclespawn die richtigen liter setzen, wenn du verstehst was ich meine.


    je nach dem wie dus haben willst.


    mfg

    Die Frage ist an was es liegt. habe den Tacho verändert neu gemacht und überarbeitet vorhin ging es noch nun leider nicht mehr weiß aber nicht warum.



    //E:



    public OnVehicleTimer(vehicleid)
    {
    new model;
    new i = vehicleid;
    if(IsValidVehicle(i))
    {
    model = GetVehicleModel(i);
    if(!IsAFahrrad(model))
    {
    Vehicle[i][vehKMStandCount] += GetDistanceToLastPoint(i);
    if(Vehicle[i][vehKMStandCount] > 100)
    {
    Vehicle[i][vehKMStand] += 0.1;
    Vehicle[i][vehKMStandCount] = 0;
    }
    if(Vehicle[i][vehMotor] == true)
    {
    if(Vehicle[i][vehFuel] > 0.0)
    {
    Vehicle[i][vehTankKM] += GetDistanceToLastPoint(i);
    if(Vehicle[i][vehTankKM] > 150)
    {
    Vehicle[i][vehFuel] -= VehicleData[GetVehicleModel(i)-400][vehTankVerbrauch]/10;
    Vehicle[i][vehTankKM] = 0;
    }
    SaveVehicleCoords(i);
    }
    else if(Vehicle[i][vehFuel] <= 0.0)
    {
    Vehicle[i][vehFuel] = 0;
    Vehicle[i][vehMotor] = false;
    KillTimer(Vehicle[i][VehicleTimer]);
    GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(i, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    for(new j=0;i<GetMaxPlayers();j++)
    {
    if(IsLoggedIn(j))
    {
    if(GetPlayerVehicleID(j) == i)
    {
    if(GetPlayerVehicleSeat(j) == 0)
    {
    SendClientMessage(j, COLOR_GREY, "** Dein Tank ist leer!");
    break;
    }
    }
    }
    }
    }
    }
    }
    }
    return 1;
    }