/invite 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
  • Hallo,
    ich habe ein Problem mit meinem Invite Befehl. Ich möchte das ganze mit einem Dialog machen, weis aber nicht weiter.
    Befehl:

    ocmd:invite(playerid,params[])
    {
    if(PlayerInfo[playerid][pEingeloggt] < 1 ) return SendClientMessage(playerid,Rot,"Du kannst diesen Befehl nicht nutzen, weil du nicht eingeloggt bist.");
    if(PlayerInfo[playerid][pLeader] < 1 ) return SendClientMessage(playerid,Rot,"Du bist kein Leader!");
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Grau,"Benutze: /invite [playerid/PartOfName]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Grau,"Der angegebene Spieler ist nicht Online!");
    if(PlayerInfo[pID][pFraktion] >= 1 ) return SendClientMessage(playerid,Grau,"Der angegebe Spieler ist bereits in einer Fraktion!");
    new string[128],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"Du wurdest von %s in die Fraktion\n%s eingeladen.",name,LeaderRank(playerid));
    ShowPlayerDialog(pID,DIALOG_INVITE,DIALOG_STYLE_MSGBOX,"Fraktions Einladung",string,"Annehmen","Ablehnen");
    return 1;
    }


    Dialog:

    if(dialogid == DIALOG_INVITE)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast die Fraktions Einladung abgelehnt.");
    return 1;
    }
    if(response == 1)
    {
    //Einladung annehmen...
    return 1;
    }
    }

    Weiß echt net weiter. Bitte um Hilfe.

  • SetPVarInt(pID,"Invite_Frak",SpielerInfo[playerid][pFraktion]);
    Das in den Invite Befehl einfügen.
    Unter OnDialogResponse kannst du ihn dann halt die Fraktions-ID zuweisen ;)


    #edit:
    In Invite_Frak wird die FraktionsID von playerid gespeichert, um pID diese dann beim annehmen zu setzen.
    Auslesen musst du das ganze so:
    GetPVarInt(playerid,"Invite_Frak")

    Einmal editiert, zuletzt von AirM4X ()

  • Ich habe das doch auch gemacht.
    SetPVarInt, damit kannst du etwas zwischenspeichern, ist wie eine Variable.

  • Nein, so.
    if(response == 1)
    {
    SpielerInfo[playerid][pFraktion] = GetPVarInt(playerid,"Invite_Frak");
    SendClientMessage(playerid,Gruen,"Du hast die Fraktions Einladung angenommen.");
    return 1;
    }
    #edit:
    Du kannst ggf. den Wert Invite_Frak wieder auf 0 setzen, ist aber eigentlich nicht notwendig.