OCMD /accept Befehl wie aufbauen?

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 habe hier folgenden OCMD:


    ocmd:333(playerid,params[])
    {
    for (new p = 0; p < MAX_PLAYERS; p++)
    {
    if(SpielerInfo[p][pJob] == 1)
    {
    new string[128],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(string,sizeof(string),"%s benötigt ein Taxi. Tippe /accept um den Auftrag anzunehmen.",name);
    SendClientMessage(p,COLOR_YELLOW,string);
    }
    }
    return 1;
    }


    Wie realisiere ich nun das der erste aus der Zielgruppe daher die mit [pJob]== 1 der /accept (spielerid) eingibt einen Checkpoint beim Taxirufer gezeigt bekommt? Muss ich dafür ein neues cmd erstellen oder lässt sich das auch im aktuellem realisieren? Für einen späteren Taxifahrer soll es logischerweise nicht mehr möglich sein da ja bereits ein Taxifahrer den Auftrag hat.


    Mfg Zyan

  • Hier ein Beispiel von mir



    ocmd:invite(playerid,params[])
    {
    if(SpielerInfo[playerid][pLeader] != 0)
    {
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_WHITE,"Verwendung: /învite [SpielerName/SpielerID]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_WHITE,"Der angegebene Spieler ist nicht mit dem Spiel verbunden!");
    if(pID == playerid) return SendClientMessage(playerid,COLOR_WHITE,"Du kannst sich nicht selber inviten!");
    if(SpielerInfo[pID][pFraktion] != 0 || SpielerInfo[pID][pLeader] != 0) return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler ist noch als Member in irgendeiner Fraktion tätig!");
    {
    new string[128];
    SpawnPlayer(pID);
    format(string,sizeof(string),"Du hast %s Member der Fraktion %s eingeladen.",SpielerName(pID), FraktionsNamen(playerid));
    SendClientMessage(playerid,COLOR_BLAU,string);
    format(string,sizeof(string),"%s hat dich zur Fraktion %s eingeladen",SpielerName(playerid),FraktionsNamen(playerid));
    SendClientMessage(pID,COLOR_BLAU,string);
    SendClientMessage(pID,COLOR_BLAU,"Mit /accept invite kannst du diese Einladung annehmen!");
    caninvite[pID] = 1, frakid[pID] = SpielerInfo[playerid][pLeader], inviterid[pID] = playerid;
    }
    return 1;
    }
    else return SendClientMessage(playerid,COLOR_WHITE,"Dieser Befehl ist nur für Leader gemacht!");
    }
    ocmd:accept(playerid,params[])
    {
    new accept[64];
    if(sscanf(params,"s",accept)) return SendClientMessage(playerid,COLOR_WHITE,"Verwendung: /accept [Name]");
    {
    if(!strcmp(accept,"invite",true))
    {
    if(caninvite[playerid] == 1)
    {
    SendClientMessage(inviterid[playerid],COLOR_WHITE,"Der Spieler hat deine Einladung angenommen!");
    SpielerInfo[playerid][pFraktion] = frakid[playerid];
    SendClientMessage(playerid,COLOR_WHITE,"Du hast die Einladung angenommen!");
    SpawnPlayer(playerid);
    caninvite[playerid] = 0, frakid[playerid] = 0, inviterid[playerid] = 0;
    return 1;
    }
    else return SendClientMessage(playerid,COLOR_WHITE,"Dir hat keiner eine Fraktioneinladung unterbreitet!");
    }
    }
    return 1;
    }