PlayerKeys funktionieren nicht

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
  • Ich suche jetzt schon die ganze Zeit nach einer Lösung, aber ich finde es einfach nicht herraus.


    Bei folgendem Code soll der Motor, wenn man C auf der Tastatur drückt, ein und ausgeschaltet werden.
    Das ganze funktioniert aber nur, wenn ich die TogglePlayerControllable rausnehme. Wenn ich die drin lasse, kann ich den Motor einmal einschalten und dann wird nichts mehr erkannt.


    public OnPlayerUpdate(playerid)
    {
    new newkeys,ud,lr;
    GetPlayerKeys(playerid,newkeys,ud,lr);


    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new i3 = GetPlayerVehicleID(playerid);
    new i2 = GetVehicleModel(i3);
    new str1[64];
    if(newkeys == KEY_CROUCH)
    {
    if(VI[i3][benzin] < tank[i2-400] && tank[i2-400] != 999)
    {
    if(!VI[i3][engine])
    {
    if(!VI[i3][starting])
    {
    VI[i3][starting] = 1;
    format(str1, 64, "** %s startet den Motor.", GetPname(playerid));
    ToPlayerInRange(playerid, CL_PURP, str1);
    SetTimerEx("StartEngine",2800,0,"ii",playerid,i3);
    }
    } else {
    format(str1, 64, "** %s hat den Motor gestoppt.", GetPname(playerid));
    ToPlayerInRange(playerid, CL_PURP, str1);
    VI[i3][engine] = 0;
    TogglePlayerControllable(playerid, false);
    }
    }
    } else if(newkeys == KEY_SECONDARY_ATTACK)
    {
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid, true);
    }
    }
    return 1;
    }

  • Hab die Funktion vergessen zu posen. Der Motor lässt sich nur abschalten, wenn ich hier den TogglePlayerControllable Befehl rausnehme.



    public StartEngine(id, vid)
    {
    VI[vid][starting] = 0;
    new rnd = random(10);
    if(rnd == 7)
    {
    SendClientMessage(id, CL_PURP, "** Fehlgeschlagen.");
    } else {
    VI[vid][engine] = 1;
    //TogglePlayerControllable(id, true);
    SendClientMessage(id, CL_PURP, "** Motor gestartet.");
    }
    return 1;
    }


    Edit: Wenn ich mich über mein Adminmenu einfriere, dann kann ich den Motor stoppen.

    Einmal editiert, zuletzt von Arcanum ()