Abfragen ob der Motor an ist

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
  • Hallo Com,


    ich scripte grade ein Carsystem für den Server wo ich scripte - allerdings seh ich grade schwarz: Ich möchte nur, dass Benzin weggeht wenn der Motor an ist. Allerdings leuchtet mir nicht ein wie ich das Abfragen könnte. Hab schon irgendwie gedacht mit "if(GetVehicleParamsEx(vid, engine) == on)" oder sowas, aber ich denke mal so einfach ist das nicht.


    Naja, jedenfalls bitte ich jetzt euch um Hilfe ;)


    Lg

    Liebe Grüße


    Marcel

  • Ich weiß nicht genau welchen Wert GetVehicleParamsEx zurückgibt (Boolean, VEHICLE_PARAMS_OFF/ON, on/off, ...), aber sonst versuche es einfach damit, dass du eine globale Boolean-Variable für jedes Fahrzeug erstellst (mit MAX_VEHICLES) und diese beim Motor Ein-/Ausschalten auf true/False setzt. In deinem Tanktimer kannst du dort einfach überprüfen ob diese Boolean = true ist, dann setzt du den Tank runter.


    Mit freundl. Grüßen
    Padarom

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Genau.
    motoran[vehicleid] = true;
    Und dann mit if(motoran[vid] == true) ZieheTankAb();

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Vielen Dank für eure Hilfe, läuft ;)


    //Edit:


    Habe es jetzt mal Ingame getestet: Der Wagen verliert keinen Sprit - egal ob an oder aus.
    Hier mal ein paar Infos:
    public CheckGas(playerid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    new vid = GetPlayerVehicleID(i);
    new Float: verbrauch = GetPlayerVehicleVerbrauch(i);
    new tank = speedcount[i]/130;
    if(GetVehicleModel(vid) == 481
    || GetVehicleModel(vid) == 509
    || GetVehicleModel(vid) == 510
    || IsAnEventCar(vid)) return 1;
    new engine,lights,alarm,doors,bonnet,boot,objective;
    if(IsANPCCar(vid)) return 1;
    if(spawncar_gas[vid] > 1)
    {
    if(tank < 1)
    {
    if(motor[vid] == true)
    {
    spawncar_gas[vid] -= 0.1;
    speedcount[i] = 0;
    }
    }
    if(tank >= 1 && tank <= 20)
    {
    if(motor[vid] == true)
    {
    spawncar_gas[vid] -= verbrauch;
    speedcount[i] = 0;
    }
    }
    if(tank > 20 && tank <= 60)
    {
    if(motor[vid] == true)
    {
    spawncar_gas[vid] -= verbrauch*2;
    speedcount[i] = 0;
    }
    }
    if(tank > 60)
    {
    if(motor[vid] == true)
    {
    spawncar_gas[vid] -= verbrauch*2;
    speedcount[i] = 0;
    }
    }
    }
    else
    {
    NoFuel[vid] = 1;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    motor[vid] = 0;
    PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0);
    return 1;
    }
    }
    }
    }
    return 0;
    }
    ocmd:motor(playerid,params[])
    {
    new status[4];
    if(sscanf(params,"s",status))return SendClientMessage(playerid,0xFF0000,"Info: /motor [an/aus]");
    new engine,lights,alarm,doors,bonnet,boot,objective;
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vid = GetPlayerVehicleID(playerid);
    if(strcmp(status,"an",true) == 0)
    {
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    motor[vid] = true;
    SendClientMessage(playerid,0xFF0000,"Du hast den Motor gestartet!");
    }
    else
    if(strcmp(status,"aus",true) == 0)
    {
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    motor[vid] = false;
    SendClientMessage(playerid,0xFF0000,"Du hast den Motor abgewürgt!");
    }
    }
    return 1;
    }


    Hoffe ihr könnt mir helfen :rolleyes:


    //E2: Brauche immer noch Hilfe :/ ?( //E3: Problem hat sich immer noch nicht aufgehoben :/

    Liebe Grüße


    Marcel

    3 Mal editiert, zuletzt von marcel97p ()