OnPlayerKeyStateChange 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
  • Hallo Leute,


    ich habe ein kleines Problem, und zwar lasse ich den Motor und das Licht eines Fahrzeuges per Tasten an- und ausschalten.
    Das ganze funktioniert so auch eigentlich, jedoch wenn ich eine andere Taste gedrückt halte (zb. 'W' wenn ich gerade fahre)
    und dann das Licht anschalten will, passiert rein garnicht. - Ich muss zuerst 'W' los lassen, um das Licht anzuschalten.


    Hier mal der ausschnitt vom Code:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    new vehicleid = GetPlayerVehicleID(playerid), PlayerSeat = GetPlayerState(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    if(IsPlayerInAnyVehicle(playerid) && PlayerSeat == PLAYER_STATE_DRIVER)
    {
    if(newkeys == (KEY_ANALOG_DOWN))
    {
    if(licht[vehicleid] == 0)
    {
    licht[vehicleid] = 1;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    }
    else if(licht[vehicleid] == 1)
    {
    licht[vehicleid] = 0;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    }
    }
    }
    return 1;
    }


    Wäre nett, wenn mir jemand helfen würde!




    Gruß
    AlphaGen!

    DIVIDE ET IMPERA

  • Versuch mal folgendes:
    if(newkeys == (KEY_ANALOG_DOWN))
    Zu
    if(newkeys && (KEY_ANALOG_DOWN))


    Laut Wiki sollen die Keys nur mit "&&" abgefragt werden.
    Probiers mal ;)


    Hab ich gemacht, nun ist es ein komplettes Chaos.. ^^
    Nun kann ich mit jeder Taste die GTA kennt (Leertaste,ATL,STRG,H,W,S usw.) den Motor und das Licht gleichzeigit starten.. ^^

    DIVIDE ET IMPERA

  • Fragst du alle Einträge mit einem "&&" ab oder sind immernoch Keys da welche Du mit "==" abfragst?
    Wenn ja, alle "==" zu "&&" und nochmal testen ;)

    Ich lasse momentan nur motor und licht über Tasten an- und ausschalten (Licht: 'Numped 2', Motor: '2').


    Ich habe
    if(newkeys == (KEY_LOOK_BEHIND))
    if(newkeys == (KEY_ANALOG_DOWN))


    in
    if(newkeys && (KEY_LOOK_BEHIND))
    if(newkeys && (KEY_ANALOG_DOWN))
    geändert.

    DIVIDE ET IMPERA