Invite Befehl mit Anfrage??

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
  • Also ich habe mein Fraktionssystem gerade mal ein wenig ausgebaut und sitze jetzt an einem Invitebefehl
    Es gibt scho /giverank /setleader /uninvite und wer sich jetzt denkt naja /invite ist doch das umgekehrte von /uninvite der liegt zumindest was mein Problem angeht falsch
    Ich hab mir das so gedacht, dass man jmd per /invite eine Anfrage schickt, welcher der andere mit annehmen oder ablehnen kann aber ich hab ka wie ich diese CMs
    verbinde Wer den Code ließt wird sich denken können wie ich das machen wollte aber das Problem ist, dass in dem annehmen Befehl ja nicht mer die playerid des invitenden und der Frakid von ihm ist


    ocmd:invite(playerid,params[])
    {
    if(pInfo[playerid][Fraktion] == 1)return 1;
    if(!IstPlayerLeader(playerid,2))return SCM(playerid,rot,"Du besitzt nicht die nötigen Leaderrechte");
    new pID,string1[128],string2[128],string3[128],Fraktioni[50];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,rot,"Benutze /invite [ID]");
    if(pInfo[pID][Fraktion] != 1)return SCM(playerid,hellrot,"Dieser Spieler ist bereits in einer anderen Fraktion");
    switch(pInfo[playerid][Fraktion])
    {
    case 1:{Fraktioni="Zivilist";}
    case 2:{Fraktioni="SAPD";}
    case 3:{Fraktioni="FBI";}
    case 4:{Fraktioni="US Army";}
    case 5:{Fraktioni="Fahrschule";}
    case 6:{Fraktioni="BBC";}
    case 7:{Fraktioni="US Government";}
    case 8:{Fraktioni="Medics";}
    case 9:{Fraktioni="Ordnungsamt";}
    case 10:{Fraktioni="Yakuza";}
    case 11:{Fraktioni="Ndrangheta";}
    case 12:{Fraktioni="Brigada";}
    case 13:{Fraktioni="Sacra Corona Unita ";}
    case 14:{Fraktioni="Triaden";}
    }
    format(string1,sizeof(string1),"%s möchte dich in die Fraktion %s inviten.",Spielername(playerid),pInfo[playerid][Fraktion]);
    format(string2,sizeof(string2),"Benutze /annehmen um den Invite zu akzeptieren oder /cancel um ihn abzulehnen");
    format(string3,sizeof(string3),"Du hast %s angeboten in deine Fraktion invited zu werden",Spielername(pID));
    SCM(pID,orange,string1);
    SCM(pID,orange,string2);
    SCM(playerid,orange,string3);
    Anfrage(pID)=1;
    return 1;
    }


    ocmd:annehmen(playerid,params[])
    {
    if(Anfrage[playerid]==1)
    {
    Anfrage[playerid]=0;

    }
    if(Anfrage[playerid]==0)
    {
    SCM(playerid,hellrot,"Du hast keine Anfrage erhalten");
    }
    return 1;
    }


    Ich hoffe ihr könnt mir helfen

    Einmal editiert, zuletzt von MrMonkey ()

  • Du hast da einige möglichkeiten.
    Hier könnte man es zb so machen :


    Unter CMD:invite:
    SetPVarInt(pID,"EinladungVon",playerid);// Speichert die SpielerID von den Leader der die Anfrage sendet



    Und nu könntest du unter
    CMD: annehmen:


    ocmd:annehmen(playerid,params[])
    {
    if(Anfrage[playerid]!=1) return SCM(playerid,hellrot,"Du hast keine Anfrage erhalten");
    {
    Anfrage[playerid]=0;
    new lid = GetPVarInt(playerid,"EinladungVon");//Speichert nun die Leader ID auf lid
    new msg[100];
    pInfo[playerid][Fraktion]=pInfo[lid][Fraktion]// Wir setzen den Spieler den Fraktions Wert wie der Leader
    format(msg,sizeof msg,"%s hat die Einladung angenommen.",Spielername(playerid));
    SendClientMessage(lid,farbe,msg);
    }
    return 1;
    }