Befehle bei Benutzung eines anderen Befehls deaktivieren?!

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


    da ich gerade an einem Deathmatch Script arbeite und ich noch ein Newbie im Scripten bin, brauche ich bei der Deaktivierung mehrerer Befehle eure Hilfe.
    Also, wenn ein Spieler z.B. den Befehl /dm1 benutzt, sollen dann Befehle wie /dm2 blockiert werden.
    Leider habe ich im Internet nicht viel zu dem Thema gefunden und ich würde mich über eure Hilfe freuen
    //Falls ihr den Code braucht bitte schreiben.


    Mit freundlichen Grüßen
    Xeytex

  • Zuerst erstellst du eine neue globale Boolean-Variable. (sie ist standardmäßig auf false)


    Dann fragst du bei dem /dm1-Befehl ab, ob die Variable auf true ist.
    Wenn sie auf false ist, setzt du sie auf true.
    Wenn sie auf true ist verweigerst du dem Spieler die weitere Ausführung.


    Und wenn du dann /exitdm machst (z.B.) setzt du die Variable wieder auf false :)

  • Ich, nach langer Pause mit'm Scripten, würde per "SetPVarInt(playerid,"DMAKT",1);" kurz DMAKT auf 1 setzen, wenn man /dm1 eingibt, und dann halt bei /dm2, /dm3, /dmblablabla abfragen, ob DMAKT auf 1 ist, wenn ja, einfach n Fehlermeldung losschicken
    /e: Natürlich soll DMAKT auch bei /dm2 und anderen auf 1 gesetzt werden, achja, beim Verlassen daran denken, dass DMAKT auf 0 gesetzt werden muss.


    ocmd:dm1(playerid){
    if(GetPVarInt(playerid,"DMAKT")==1){
    SendClientMessage(playerid,-1,"[FEHLER:] Du bist bereits in einer Arena drinne, bitte verlasse diese mit BEFEHEL");
    }
    //Was passiert, wenn dmakt auf 0 ist
    return 1;
    }
    ocmd:dm2(playerid){
    if(GetPVarInt(playerid,"DMAKT")==1){
    SendClientMessage(playerid,-1,"[FEHLER:] Du bist bereits in einer Arena drinne, bitte verlasse diese mit BEFEHEL");
    }
    //Was passiert, wenn dmakt auf 0 ist
    return 1;
    }
    ...