Problem mit OnPlayerKeyStateChange

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 Abend,


    ich verzweifel gerade an einer sache...


    Und zwar möchte ich, wenn ein Spieler an einer bestimmten Position steht und dabei Leertaste drückt ihm einen Dialog zeigen.


    Das klappt alles beim ersten mal, ich betone "beim ersten mal".
    Denn sobald ich das zweite mal Leertaste drücke wird mir der Dialog gezeigt und wenn ich ihn wegklicke wird er mir wieder gezeigt, weil ich angeblich Leertaste drücke.


    Hier mal mein Code:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_SPRINT){
    SendClientMessage(playerid, COLOR_YELLOW, "Leertaste");
    if(IsPlayerInRangeOfPoint(playerid, 2.0, -3055.8394, 469.5962, 10.3126)){
    SetPlayerPos(playerid, 384.808624, 173.804992, 1008.382812);
    SetPlayerInterior(playerid, 3);
    }else if(IsPlayerInRangeOfPoint(playerid, 2.0, -3055.8394, 469.5962, 10.3126)){
    ShowPlayerDialog(playerid, DIALOG_STADTHALLE, DIALOG_STYLE_LIST, "Stadthalle", "Berufe\nArbeitslosen Geld\nHeiratsgenehmigung", "Weiter", "Abbrechen");
    }else if(IsPlayerInRangeOfPoint(playerid, 1.0, -1862.4856, -145.2338, 11.8984)){
    ShowPlayerDialog(playerid, DIALOG_BERUFE_1, DIALOG_STYLE_MSGBOX, "Straßenreiniger", "Willst du den Beruf Straßenreiniger annehmen?\nDer Vertrag dauert 1 Stunde.", "Ja", "Nein");
    }else if(IsPlayerInRangeOfPoint(playerid, 1.0, -2234.1150, 117.0917, 35.3203)){
    ShowPlayerDialog(playerid, DIALOG_BERUFE_2, DIALOG_STYLE_MSGBOX, "Lieferant", "Willst du den Beruf Lieferant annehmen?\nDer Vertrag dauert 1 Stunde.", "Ja", "Nein");
    }
    }
    return 1;
    }


    Vielleicht mache ich da einen sehr großen fehler :( und habe ihn nur nicht erkannt oder ich bin einfach nur Blöd.


    Danke im vorraus.

    Einmal editiert, zuletzt von FREAK_exe ()

  • Teste mal :


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == KEY_SPRINT){
    SendClientMessage(playerid, COLOR_YELLOW, "Leertaste");
    if(IsPlayerInRangeOfPoint(playerid, 2.0, -3055.8394, 469.5962, 10.3126)){
    SetPlayerPos(playerid, 384.808624, 173.804992, 1008.382812);
    SetPlayerInterior(playerid, 3);
    }else if(IsPlayerInRangeOfPoint(playerid, 2.0, -3055.8394, 469.5962, 10.3126)){
    ShowPlayerDialog(playerid, DIALOG_STADTHALLE, DIALOG_STYLE_LIST, "Stadthalle", "Berufe\nArbeitslosen Geld\nHeiratsgenehmigung", "Weiter", "Abbrechen");
    }else if(IsPlayerInRangeOfPoint(playerid, 1.0, -1862.4856, -145.2338, 11.8984)){
    ShowPlayerDialog(playerid, DIALOG_BERUFE_1, DIALOG_STYLE_MSGBOX, "Straßenreiniger", "Willst du den Beruf Straßenreiniger annehmen?\nDer Vertrag dauert 1 Stunde.", "Ja", "Nein");
    }else if(IsPlayerInRangeOfPoint(playerid, 1.0, -2234.1150, 117.0917, 35.3203)){
    ShowPlayerDialog(playerid, DIALOG_BERUFE_2, DIALOG_STYLE_MSGBOX, "Lieferant", "Willst du den Beruf Lieferant annehmen?\nDer Vertrag dauert 1 Stunde.", "Ja", "Nein");
    }
    }
    return 1;
    }