Problem mit Keys und Abfrage

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
  • Guten Morgen,


    momentan habe ich ein kleines Problem mit der Abfrage, ob der Motor eines Fahrzeuges an- oder ausgeschaltet ist.
    Sobald ich eine bestimmte Taste drücke sollte dies überprüft werden und dementsprechend gehandelt werden.
    Allerdings wird dies nicht so gehandelt wie ich es mir gedacht habe.
    Hier erstmal die Codes:


    Allgmeine Parameter-Abfrage aller Fahrzeuge, diese wird bei GameModeInit ausgeführt.
    public LoadVehicleParams()
    {
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    GetVehicleParamsEx(i,engine[i],lights[i],alarm[i],doors[i],bonnet[i],boot[i],objective[i]);
    }
    print(" -> Parameter erfolgreich geladen");
    return 1;
    }
    Hier wird die bestimmte Taste abgefragt und demnach gehandelt.
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    switch(newkeys)
    {
    case KEY_ANALOG_DOWN:
    {
    if(!IsPlayerInAnyVehicle(playerid)) return 1;
    new vehicleid=GetPlayerVehicleID(playerid);
    if(engine[vehicleid] == 0)
    {
    engine[vehicleid]=1;
    SendClientMessage(playerid,GRUEN," Motor wurde gestartet.");
    }
    else if(engine[vehicleid] == 1)
    {
    engine[vehicleid]=0;
    SendClientMessage(playerid,ROT," Motor wurde ausgeschaltet.");
    }
    SetVehicleParamsEx(vehicleid,engine[vehicleid],lights[vehicleid],alarm[vehicleid],doors[vehicleid],bonnet[vehicleid],boot[vehicleid],objective[vehicleid]);
    }
    }
    }


    Ich schätze mal das es an der if-Abfrage scheitert, verstehe aber nicht wieso.
    Danke schon mal im Voraus.

  • Probier mal so:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_ANALOG_DOWN)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return 1;
    new vehicleid=GetPlayerVehicleID(playerid);
    if(engine[vehicleid] == 0)
    {
    engine[vehicleid]=1;
    SendClientMessage(playerid,GRUEN," Motor wurde gestartet.");
    }
    else if(engine[vehicleid] == 1)
    {
    engine[vehicleid]=0;
    SendClientMessage(playerid,ROT," Motor wurde ausgeschaltet.");
    }
    SetVehicleParamsEx(vehicleid,engine[vehicleid],lights[vehicleid],alarm[vehicleid],doors[vehicleid],bonnet[vehicleid],boot[vehicleid],objective[vehicleid]);
    }
    }