Frage (/accept, /cancel...)

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
  • Hmm, also ich hab so 'nen Befehl noch nicht gemacht, aber ich würde den höchstwahrscheinlich mit Variablen so in der Art machen:


    Also z.B. erstmal ne Variable:


    new bool:command[MAX_PLAYERS];


    dcmd_command(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,Farbe,"Benutze /command ID");


    command[pID] = true;
    return 1;
    }


    dcmd_accept(playerid,params[])
    {
    whatever[56];
    if(sscanf(params,"s",whatever)) return SendClientMessage(playerid,Farbe,"Benutze /accept Whatever");
    if(!strcmp(whatever, "command", true, 4) && command[playerid] != true) return SendClientMessage(playerid,FArbe,"Du wurdest nicht gecommandet!"); // oder so :P


    if (!strcmp(whatever, "command", true, 4)) { SetPlayerHealth(playerid, 100); }
    return 1;
    }


    So, jetzt kann einer /command ID machen, und ID kann dann /accept Command machen und fertig is die Laube :P


    Sollte eig. funktionieren, is jetzt einfach mal so ausm Kopf.


    LG


    //Edit: Fehler behoben

    Einmal editiert, zuletzt von pwnfl4sh ()

  • dcmd und ocmd, der Unterschied ist eig. minimal ^^


    Naja, ist ja jetzt mal egal.


    Also, die Variable command
    new bool:command[MAX_PLAYERS];
    Brauchst du um zu prüfen ob der Spieler dann später z.B. invited wurde (geht natürlich auch mit new:bool WurdeInvitet[MAX_PLAYERS]; etc).


    Und jetzt z.B. ein Befehl zum Inviten:


    ocmd:invite(playerid,params[])
    {
    new pid; // später die ID die bei /invite angegeben wird
    if(sscanf(params, "i",pid)) return SendClientMessage(playerid,Farbe,"Invite (ID)");


    command[pid] = true; // also, jetzt wurde die Variable "Command" bei pid (die ID) auf "true" gesetzt
    return 1;
    }


    Und bei /accept command überprüfst du anhand einer if-Abfrage ob command beim Spieler auf wahr ist (true).
    Ganz einfach :)


    LG

  • Die Variable "Command" ist später z.B dafür nötig um zu checken, ob der Spieler gerade invited wurde wobei die Variable auf true gesetzt wird. Damit der Spieler zB nicht einfach /accept invite machen kann ohne das ihn jemand eingeladen hat ;)


    du kannst in der Variable command (dafür darf sie kein boolean sein) auch die Fraktionsid speichern. Beispiel:


    SInfo[playerid] [Fraktion] = command[playerid];


    LG