Frage zu einen Befehl.

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
  • Moin



    Also ich habe mir mal einen Befehl gemacht '/perso' nennt sich der Befehl wenn der spieler an einer Bestimmten stelle '/perso' eingiebt kommt ein Dialog wo driene steht ob er sich den Perso Kaufen will oder Nicht wenn man auf Kaufen klickt kriegt man den Perso, aber irgend wie habe ich das problem das er den Befehl nochmals erneut eingeben kann woran Liegt es ?( ..


    Der Dialog



    // =====| Perso |=====
    if(dialogid==DIALOG_PERSO)
    {
    if(response == 0)
    {
    PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
    }
    if(response == 1)
    {
    SetPVarInt(playerid,"Perso",1);
    SendClientMessage(playerid,GELB,"{AAAAAA}Du hast dir einen {FFC800}Personalausweis {9BE700}Gekauft");
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    }
    }



    Der Befehl:


    ocmd:perso(playerid,params[])
    {
    if(!HatPlayerAnPerso(playerid,0))return SendClientMessage(playerid,DUNKELROT,"Du hast Bereits einen Personalausweis");
    if(IsPlayerInRangeOfPoint(playerid,2.0,362.3691,173.6315,1008.3828))
    {
    ShowPlayerDialog(playerid,DIALOG_PERSO,DIALOG_STYLE_MSGBOX,"Personalausweis","Personalausweiß","Kaufen","Abbrechen");
    }
    return 1;
    }



    Der Stock wo alles abgefragt wird:

    stock HatPlayerAnPerso(playerid,personumer)
    {
    if(GetPVarInt(playerid,"Perso")>=personumer)return 1;
    return 0;
    }

  • Probir es mal so Aus





    // =====| Perso |=====
    if(dialogid==DIALOG_PERSO)
    {
    if(response == 0)
    {
    SetPVarInt(playerid,"Perso",1);
    SendClientMessage(playerid,GELB,"{AAAAAA}Du hast dir einen {FFC800}Personalausweis {9BE700}Gekauft");
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
    }
    }

  • if(!HatPlayerAnPerso(playerid,0))return SendClientMessage(playerid,DUNKELROT,"Du hast Bereits einen Personalausweis");
    Pseudo-Code:
    Wenn HatPlayerAnPerso null zurück gibt, wird eine Nachricht mit der Farbe DUNKELROT an die ClientID playerid mit folgendem Inhalt gesendet: "Du hast einen Personalausweis."

    Du übergibst der Funktion 2 Daten, einmal playerid & einmal 0.
    Füllen wir mal die Parameter mit den Daten aus:
    if(GetPVarInt(playerid,"Perso")>=0)return 1;
    Das heißt er gibt 1 zurück, wodurch die Abfrage false ergibt und somit NICHT die Nachricht versendet wird.