[Problem]nach Motor ausschalten gefreezed nach austeigen![Frage]AutoHealthanzeige?

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
  • Frage: Wie kann ich den Healthstatus des autos herausfinden und in ein textdraw übertragen ??


    Also ich habe ein tacho gemacht mit Tank Km/h und Motor aber ich
    habe aber ein Problem wenn ich den Motor ausmache und dan austeige bin ich gefreezed aber nur wenn ich den Motor aus mache... und wenn der tank alle ist kann man trotzdem weiterfahren hier:
    public TankTimer()
    {
    new string[128],i = 0;
    for(; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && vEngine[GetPlayerVehicleID(i)] == 1)
    {
    GetPlayerPos(i, Xneu[i], Yneu[i], Zneu[i]);
    Num[i] = (Xneu[i] - Xalt[i]) - (Yneu[i] - Yalt[i]) - (Zneu[i] - Zalt[i]);
    Xalt[i] = Xneu[i]; Yalt[i] = Yneu[i]; Zalt[i] = Zneu[i];
    Num[i] = Num[i] * 4;
    if(Num[i] < 0)
    {
    Num[i] = Num[i] - Num[i] - Num[i];
    }
    if((vEngine[GetPlayerVehicleID(i)])==1)
    {
    if(Tankmenge[GetPlayerVehicleID(i)] > 1)format(string, sizeof(string), "TANK: %d/100~n~KM/H: %0.0f~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(i)],Num[i],(vEngine[GetPlayerVehicleID(i)]));
    else format(string, sizeof(string), "TANK: ~r~LEER~w~~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(i)]);
    TextDrawSetString(Tankanzeige[i], string);

    }
    else
    {
    TogglePlayerControllable(playerid,0);
    //hier sollte er gefreezed werden wenn der tank alle ist ...
    }
    }
    }
    return true;
    }


    Und hier das ganze weil ich dn Fehler net finde(mit dem motor aus und austeigen)
    also man macht /motor der motor ist aus man wird gefreezed steigt aus und ist immer noch gefreezed:
    dcmd_motor(playerid,params[])
    {
    #pragma unused params
    new vehicleid = GetPlayerVehicleID(playerid);
    if(vEngine[vehicleid] == 0)
    {
    vEngine[vehicleid] = 1;
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,COLOR,"Du hast den Motor angeschaltet ");


    }
    else
    {
    new string[128];
    vEngine[vehicleid] = 0;
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,COLOR,"Du hast den Motor ausgeschaltet ");
    format(string, sizeof(string), "TANK: %d/100~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(playerid)],(vEngine[GetPlayerVehicleID(playerid)]));
    TextDrawSetString(Tankanzeige[playerid], string);
    }
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if((newstate == PLAYER_STATE_DRIVER) && vEngine[GetPlayerVehicleID(playerid)] == 0)
    {
    TogglePlayerControllable(playerid,0);
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new tankstring[128];
    if((vEngine[GetPlayerVehicleID(playerid)])==1)format(tankstring, sizeof(tankstring), "TANK: %d/100~n~KM/H: %d~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(playerid)],Num[playerid]);
    else format(tankstring, sizeof(tankstring), "TANK: %d/100~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(playerid)]);
    Tankanzeige[playerid] = TextDrawCreate(142.000000, 363.000000, tankstring);
    TextDrawFont(Tankanzeige[playerid], 1);
    TextDrawLetterSize(Tankanzeige[playerid], 0.340000,1.300000);
    TextDrawColor(Tankanzeige[playerid], 0xCCCCCCFF);
    TextDrawSetOutline(Tankanzeige[playerid], 0);
    TextDrawShowForPlayer(playerid, Tankanzeige[playerid]);
    TextDrawTextSize(Tankanzeige[playerid],242.000000,-7.000000);
    }
    if(newstate == PLAYER_STATE_ONFOOT)TextDrawDestroy(Tankanzeige[playerid]);
    //ab hier komm die cars für fraktionen:
    new vehicleid = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new j = 0;j<sizeof sfpdauto;j++)
    {
    if(vehicleid == sfpdauto[j])
    {
    if(pInfo[playerid][team] == TEAM_SFPD)
    {
    }
    else if(pInfo[playerid][admin]>= 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new j = 0;j<sizeof mau;j++)
    {
    if(vehicleid == mau[j])
    {
    if(pInfo[playerid][team] == TEAM_SFMEDIC)
    {
    }
    else if(pInfo[playerid][admin]>= 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new j = 0;j<sizeof hau;j++)
    {
    if(vehicleid == hau[j])
    {
    if(pInfo[playerid][team] == TEAM_HITMAN)
    {
    }
    else if(pInfo[playerid][admin]>= 1)
    {
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    }
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new j = 0;j<sizeof fau;j++)
    {
    if(vehicleid == fau[j])
    {
    if(pInfo[playerid][team] == TEAM_FAHRS)
    {
    }
    else if(pInfo[playerid][admin]>= 1)
    {
    }
    else if(pfahrstunde[playerid]== 1)
    {
    }


    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }
    }
    }
    return 1;
    }


    MfG bad_company

  • also
    else
    {
    TogglePlayerControllable(playerid,0);
    //hier sollte er gefreezed werden wenn der tank alle ist ...
    }



    mit else if((vEngine[GetPlayerVehicleID(i)])==1)
    {
    if(tankalle variable == 1)
    {
    TogglePlayerControllable(playerid,0);
    SendClientMessage(playerid,Farbe,"Tank alle");
    return 1;
    }
    return 1;
    }



    musste testen ich weiß nicht genau

  • danke dir habe das problem aber grade gefunden und zwar hier:
    if((vEngine[GetPlayerVehicleID(i)])==1)
    {
    if(Tankmenge[GetPlayerVehicleID(i)] > 1)format(string, sizeof(string), "TANK: %d/100~n~KM/H: %0.0f~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(i)],Num[i],(vEngine[GetPlayerVehicleID(i)]));
    else format(string, sizeof(string), "TANK: ~r~LEER~w~~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(i)]);
    TextDrawSetString(Tankanzeige[i], string);

    }
    else
    {
    TogglePlayerControllable(playerid,0);
    }

    zu
    if((vEngine[GetPlayerVehicleID(i)])==1)
    {
    if(Tankmenge[GetPlayerVehicleID(i)] > 1)
    {
    format(string, sizeof(string), "TANK: %d/100~n~KM/H: %0.0f~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(i)],Num[i],(vEngine[GetPlayerVehicleID(i)]));
    TextDrawSetString(Tankanzeige[i], string);

    }
    else
    {
    TogglePlayerControllable(playerid,0);
    TextDrawSetString(Tankanzeige[i], "TANK: ~r~LEER~w~~n~KM/H: 0~n~MOTOR: ~r~AUS~w~");
    }


    und das andere hab ich nur schreibfehler gehabt damit wärs das dann ^^ close