/invite mit Dialog 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
  • Guten Tag Breadfish, ich bin es mal wieder, da ich jeden Tag an meinem Selfmade arbeite, brauche ich halt auch etwas Hilfe hier :D
    Und zwar ist es so das bei meinem /invite Befehl, der User einfach Invitet wird jetzt wollte ich fragen wie ich es mache das, ein User in einem Dialog auswählen kann ob man die Einladung Annehmen oder Ablehnen will und dann soll als Nachricht an den Leader geschickt werden, "Die Person hat ihre Einladung Angenommen oder Abgelehnt".


    Hier der bisherige Befehl
    ocmd:invite(playerid, params[])
    {
    new pID,string1[256];
    new fraktname[128];
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:
    {
    fraktname="Zivilist";
    }
    case 1:
    {
    fraktname="SFPD";
    }
    case 2:
    {
    fraktname="Medic";
    }
    case 3:
    {
    fraktname="Ordnungsamt";
    }
    case 4:
    {
    fraktname="Fahrschule";
    }
    case 5:
    {
    fraktname="San News";
    }
    case 6:
    {
    fraktname="Regierung";
    }
    case 7:
    {
    fraktname="Grove Street";
    }
    case 8:
    {
    fraktname="Ballas";
    }
    case 9:
    {
    fraktname="Vagos";
    }
    case 10:
    {
    fraktname="Hells Angels";
    }
    }
    if(!isPlayerLeader(playerid,1)) return SendClientMessage(playerid,Rot,"Du bist kein Leader");
    {
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,Rot,"Benutzung: /invite [Spieler ID]");
    {
    format(string1,sizeof(string1),"Du bist nun in der Fraktion %s", fraktname);
    SetPVarInt(pID,"Fraktion",(GetPVarInt(playerid,"Fraktion")));
    if(GetPVarInt(pID,"Leader") == GetPVarInt(playerid,"Leader")) return SendClientMessage(playerid,Grau,"* Dieser Spieler ist bereits Leader einer Fraktion");
    SendClientMessage(pID,Hellgrün,string1);
    SetPVarInt(pID,"Leader",0);
    SpawnPlayer(pID);
    SendClientMessage(playerid,Blau,"Du hast ihn erfolgreich in deine Fraktion eingeladen!");
    }
    }
    return 1;
    }

    [tabmenu][tab=Ziele]100 Beiträge[x]
    150 Beiträge[x]
    200 Beiträge[x]
    250 Beiträge[x]
    300 Beiträge[x]
    350 Beiträge[x]
    400 Beiträge[x]
    450 Beiträge[x]
    500 Beiträge[ ]

  • Hier mal ein Beispiel aus meinem Script



    case DIALOG_INVITE:
    {
    if(response == 1)
    {
    new pID = strval(inputtext);
    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid,Rot,"Bitte gebe eine Spieler ID ein !");
    SetPVarInt(pID,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    SetPVarInt(pID,"FRank",1);
    SpawnPlayer(pID);
    SendClientMessage(playerid,Blau,"Du hast ihn Erfolgreich in deine Fraktion eingeladen!");
    }
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_LEADERMENU,DIALOG_STYLE_LIST,"Leader - Menu","Einladen\nAusladen\nRank Setzen","Bestätigen","Abbrechen");
    }
    }



    Sorry der PWN Code geht bei mir irgendwie nicht

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Dort bekomme ich irgendwo ein Fehler ^^ wenn ich es einfüge stürzt mein Pawn Compiler ab.

    [tabmenu][tab=Ziele]100 Beiträge[x]
    150 Beiträge[x]
    200 Beiträge[x]
    250 Beiträge[x]
    300 Beiträge[x]
    350 Beiträge[x]
    400 Beiträge[x]
    450 Beiträge[x]
    500 Beiträge[ ]

  • mal reingehauen für dich Eddy




    case DIALOG_INVITE:
    {
    if(response == 1)
    {
    new pID = strval(inputtext);
    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid,Rot,"Bitte gebe eine Spieler ID ein !");
    SetPVarInt(pID,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    SetPVarInt(pID,"FRank",1);
    SpawnPlayer(pID);
    SendClientMessage(playerid,Blau,"Du hast ihn Erfolgreich in deine Fraktion eingeladen!");
    }
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_LEADERMENU,DIALOG_STYLE_LIST,"Leader - Menu","Einladen\nAusladen\nRank Setzen","Bestätigen","Abbrechen");
    }
    }



    MFG

  • ^^ Wo füge ich das denn eigentlich ein Ohne das mein Pawn Compiler abstürzt

    [tabmenu][tab=Ziele]100 Beiträge[x]
    150 Beiträge[x]
    200 Beiträge[x]
    250 Beiträge[x]
    300 Beiträge[x]
    350 Beiträge[x]
    400 Beiträge[x]
    450 Beiträge[x]
    500 Beiträge[ ]

  • Du fügst folgendes unter public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) ein.


    switch(dialogid)
    {
    case DIALOG_LEADERMENU:
    {
    if(response)
    {
    if(listitem == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_INVITE,DIALOG_STYLE_INPUT,"Einladen","Gebe bitte die Spieler ID ein die du einladen willst !","Bestätigen","Abbrechen");
    }
    if(listitem == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_UNINVITE,DIALOG_STYLE_INPUT,"Ausladen","Gebe bitte die Spieler ID ein die du ausladen willst !","Bestätigen","Abbrechen");
    }
    if(listitem == 2)
    {
    ShowPlayerDialog(playerid,DIALOG_GIVERANK,DIALOG_STYLE_INPUT,"Rank Setzen","Gebe bitte die Spieler ID zum Rank Setzen !","Bestätigen","Abbrechen");
    }
    }
    }
    case DIALOG_INVITE:
    {
    if(response == 1)
    {
    new pID = strval(inputtext);
    if(pID == INVALID_PLAYER_ID) return SendClientMessage(playerid,Rot,"Bitte gebe eine Spieler ID ein !");
    SetPVarInt(pID,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    SetPVarInt(pID,"FRank",1);
    SpawnPlayer(pID);
    SendClientMessage(playerid,Blau,"Du hast ihn Erfolgreich in deine Fraktion eingeladen!");
    }
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_LEADERMENU,DIALOG_STYLE_LIST,"Leader - Menu","Einladen\nAusladen\nRank Setzen","Bestätigen","Abbrechen");
    }
    }
    case DIALOG_UNINVITE:
    {
    if(response == 1)
    {
    new pID = strval(inputtext);
    if(pID < 0 && pID > MAX_PLAYERS) return SendClientMessage(playerid,Rot,"Bitte gebe eine Spieler ID ein !");
    if(!isPlayerInFrakt(pID,GetPVarInt(playerid,"Fraktion"))) return SendClientMessage(playerid,Rot,"Spieler ist nicht in deiner Fraktion !");
    SetPVarInt(pID,"Fraktion",0);
    SetPVarInt(pID,"FRank",0);
    SpawnPlayer(pID);
    SendClientMessage(playerid,Blau,"Du hast ihn Erfolgreich aus deiner Fraktion ausgeladen!");
    }
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_LEADERMENU,DIALOG_STYLE_LIST,"Leader - Menu","Einladen\nAusladen\nRank Setzen","Bestätigen","Abbrechen");
    }
    }
    case DIALOG_GIVERANK:
    {
    if(response == 1)
    {
    RankGiveUserID = strval(inputtext);
    if(RankGiveUserID < 0 && RankGiveUserID > MAX_PLAYERS) return SendClientMessage(playerid,Rot,"Bitte gebe eine Spieler ID ein !");
    if(!isPlayerInFrakt(RankGiveUserID,GetPVarInt(playerid,"Fraktion"))) return SendClientMessage(playerid,Rot,"Spieler ist nicht in deiner Fraktion !");
    ShowPlayerDialog(playerid,DIALOG_GIVERANK2,DIALOG_STYLE_INPUT,"Rank Setzen","Bitte gebe nun den gewünschten Rank ein","Bestätigen","Abbrechen");
    }
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_LEADERMENU,DIALOG_STYLE_LIST,"Leader - Menu","Einladen\nAusladen\nRank Setzen","Bestätigen","Abbrechen");
    }
    }
    case DIALOG_GIVERANK2:
    {
    if(response == 1)
    {
    new Rank = strval(inputtext);
    if(Rank < 1 && Rank > 6) return SendClientMessage(playerid,Rot,"Bitte gebe einen ordentlichen Rank ein !");
    SetPVarInt(RankGiveUserID,"FRank",Rank);
    }
    if(response == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_LEADERMENU,DIALOG_STYLE_LIST,"Leader - Menu","Einladen\nAusladen\nRank Setzen","Bestätigen","Abbrechen");
    }
    }
    }


    Dann oben bei deinen Defines:


    #define DIALOG_LEADERMENU 32
    #define DIALOG_INVITE 33
    #define DIALOG_UNINVITE 34
    #define DIALOG_GIVERANK 35
    #define DIALOG_GIVERANK2 36


    new RankGiveUserID;


    Und der Befehel:


    ocmd:leadermenu(playerid,params[])
    {
    if(GetPVarInt(playerid,"FLeader") >= 1)
    {
    ShowPlayerDialog(playerid,DIALOG_LEADERMENU,DIALOG_STYLE_LIST,"Leader - Menu","Einladen\nAusladen\nRank Setzen","Bestätigen","Abbrechen");
    }
    return 1;
    }



    Ich hoffe ich konnte dir Helfen.

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward