problem mit /invite mit dialog

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 wollte das wenn ich ein Spieler in die Fraktion einlade ein Textdraw bei ihm kommt könntet ihr mir dabei helfen ? also erstmal will ich das mit dem /accept rausnehmen


    Fraktion's Invite ( überschrift )
    Du wurdest vom Leader %s in die
    Fraktion %s eingeladen!
    Zum Annehmen klick auf Akzeptieren zum ablehnen Klick auf Abbrechen.


    #define DIALOG_INVITE


    ocmd:accept(playerid,params[])
    {
    new item[64];
    if(sscanf(params,"s[64]",item))return SendClientMessage(playerid, ROT," Benutze /accept invite");
    if(!strcmp(item, "invite",false))
    {
    if(GetPVarInt(playerid, "inv_fraktid") ==0)return SendClientMessage(playerid, ROT, " Du wurdest in keine Fraktion eingeladen!");
    new fID = GetPVarInt(playerid, " inv_fraktid");
    sInfo[playerid][fraktion] = fID;
    sInfo[playerid][rang] = 0;
    new string[128];
    format(string,sizeof(string), " Du bist der Fraktion %s beigetreten ");
    SendClientMessage(playerid, GELB, string);
    format(string,sizeof(string), " %s ist der Fraktion beigetreten",getPlayerName(playerid));
    SendClientMessage(GetPVarInt(playerid, "inv_inviter"),ROT,string);
    SetPVarInt(playerid, "inv_fraktid", 0);
    return 1;

    }
    return 1;
    }


    ocmd:invite(playerid,params[])
    {
    if(isPlayerInFrakt(playerid, 0)) return SendClientMessage(playerid,ROT," Du bist in keiner Fraktion.");
    if(sInfo[playerid][rang] < 6)return SendClientMessage(playerid,ROT," Dein Rang ist zu niedrig.");
    new pID, fID;
    fID = sInfo[playerid][fraktion];
    if(sscanf(params, "u", pID))return SendClientMessage(playerid,ROT,"Benutze: /invite [playerid]");
    if(isPlayerInFrakt(pID, 0))return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in einer Frak/Gang!");
    new string[128];
    format(string,sizeof(string), "%s hat dich in die Fraktion %s eingeladen.", getPlayerName(playerid), fInfo[fID][f_name]);
    SendClientMessage(pID, GELB, string);
    SendClientMessage(pID, GELB," Zum akzeptieren /accept infite eingeben.");
    SetPVarInt(pID, "inv_fraktid", fID);
    SetPVarInt(pID, "inv_inviter", playerid);
    return 1;
    }


    ocmd:uninvite(playerid,params[])
    {
    if(isPlayerInFrakt(playerid, 0)) return SendClientMessage(playerid,ROT," Du bist in keiner Fraktion.");
    if(sInfo[playerid][rang] < 6)return SendClientMessage(playerid,ROT," Dein Rang ist zu niedrig.");
    new pID;
    if(sscanf(params, "u", pID))return SendClientMessage(playerid,ROT,"Benutze: /uninvite [playerid]");
    if(isPlayerInFrakt(pID, sInfo[playerid][fraktion]))return SendClientMessage(playerid,ROT,"Der Spieler ist nicht in deiner Frak/Gang!");
    sInfo[pID][fraktion] = 0;
    sInfo[pID][rang] = 0;
    new string[128];
    format(string,sizeof(string),"Du wurdest von $s aus der Fraktion geworfen",getPlayerName(playerid));
    SendClientMessage(pID, ROT, string);
    format(string,sizeof(string),"Du hast $s aus der Fraktion geworfen",getPlayerName(pID));
    SendClientMessage(playerid, GELB, string);
    return 1;
    }

    Einmal editiert, zuletzt von snake112 ()

  • Beitrag von xSnake ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Error 001 expented token: ";", but found "-indentifer-"



    Ocmd:invite(playerid,params[])
    {
    It(isPlayerInFrakt(playerid, 0)) return SendClientMessage(playerid,ROT,"Du bist in keiner Fraktion".);
    it(sInfo[playerid][Rang] < 6)return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig".);
    New pID, fID);
    If(sscanf(params, "u", pID))return SendClientMessage(playerid,ROT,"Benutze: /invite [playerid]");
    If(isPlayerInFrakt(pID, 0))return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in einer Frak/Gang!");
    New String[128]
    Format(String,sizeof(string),"Du würdest vom Leader %s in die Fraktion %s eingeladen!\n/Zum Annehmen klick auf Annehmen,zum ablehnen klick auf Abbrechen",getPlayerName(playerid), fInfo[fID][f_name]); // hier ist der error
    ShowPlayerDialog(pID,DIALOG_INVITE,DIALOG_STYLEMSGBOX,"Fraktion's Invite",string,"Annehmen","Ablehnen");
    Return 1;
    }


  • ocmd:invite(playerid,params[])
    {
    if(isPlayerInFrakt(playerid, 0)) return SendClientMessage(playerid,ROT,"Du bist in keiner Fraktion".);
    if(sInfo[playerid][Rang] < 6)return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig".);
    new pID, fID;
    if(sscanf(params, "u", pID))return SendClientMessage(playerid,ROT,"Benutze: /invite [playerid]");
    if(isPlayerInFrakt(pID, 0))return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in einer Frak/Gang!");
    new String[128];
    format(String,sizeof(String),"Du würdest vom Leader %s in die Fraktion %s eingeladen!\n/Zum Annehmen klick auf Annehmen,zum ablehnen klick auf Abbrechen",getPlayerName(playerid), fInfo[fID][f_name]); // hier ist der error
    ShowPlayerDialog(pID,DIALOG_INVITE,DIALOG_STYLEMSGBOX,"Fraktion's Invite",String,"Annehmen","Ablehnen");
    return 1;
    }
    Du musst ebenfalls auf Groß- und Kleinschreibung achten :thumbup:

  • du kannst es so alleine Testen... im Server Betrieb solltest du aber noch eine Abfrage einbauen:


    Schwer... da du eingeben müsstest worin du dich inviten willst..
    kannst den Befehl auf


    /invite [playerid][frakid] umstellen um es zu testen ^^..


    BZW mach das als Admin Befehl..

  • so habe ist das Jetze wenn ich Jetze auf Annehmen klicke werde ich dann Invitet und wenn ich auf Ablehnen Klicke werde ich dann nicht Invitet oder ?


    #define DIALOG_INVITE 5


    new invite[MAX_PLAYERS] = -1;


    ocmd:invite(playerid,params[])
    {
    if(isPlayerInFrakt(playerid, 0)) return SendClientMessage(playerid,ROT," Du bist in keiner Fraktion.");
    if(sInfo[playerid][rang] < 6)return SendClientMessage(playerid,ROT," Dein Rang ist zu niedrig.");
    new pID/*, fID*/;
    if(sscanf(params, "u", pID))return SendClientMessage(playerid,ROT,"Benutze: /invite [playerid]");
    /*if(isPlayerInFrakt(pID, 0))return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in einer Frak/Gang!");*/ // das habe ich um das Mit Dem Dialog zu testen und so
    new string[140];
    format(string,sizeof(string),"Du wurdest vom Leader %s in die Fraktuion %s eingeladen!\nZum Annehmen klick auf Akzeptieren,zum ablehnen Klick auf Abbrechen",getPlayerName(playerid), fInfo[pID][f_name]);
    ShowPlayerDialog(pID,DIALOG_INVITE,DIALOG_STYLE_MSGBOX,"Fakrion's Invite",string,"Annehmen","Ablehnen");
    return 1;
    }


    if(dialogid==DIALOG_INVITE)
    {
    if(response)
    {
    sInfo[playerid][fraktion] = invite[playerid];
    invite[playerid] = -1; //resetten nh' :)
    SpawnPlayer(playerid);
    }
    else
    {
    invite[playerid] = -1;
    SendClientMessage(playerid,ROT,"Du wurdest nicht Invitet");
    }
    return 1;
    }

  • Oke hab passiert dann auch das ich will ? das Der Spieler in der Fraktion invitet wird wenn er auf Annehmen Klick und wenn er auf Ablehnen klickt das er Nicht Invitet wird ?


    In den Command sollte evtl noch:


    invite[pID] = sInfo[playerid][fraktion];


    mfg. :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Oke ich hatte noch ein Problem beim dialog wenn ich jemanden invite wird der dialog angezeigt der Spieler auch aber Sa steht dann in die Fraktion Zivilist eingeladen und nicht die Fraktion in der der Spieler eingeladen wird

  • Oke ich hatte noch ein Problem beim dialog wenn ich jemanden invite wird der dialog angezeigt der Spieler auch aber Sa steht dann in die Fraktion Zivilist eingeladen und nicht die Fraktion in der der Spieler eingeladen wird


    Stimmt, weil im format was falsches steht:


    Zitat

    fInfo[pID][f_name]


    Das muss zu:


    fInfo[playerid][f_name]


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Beitrag von xSnake ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • es ist immernoch Das Problem wenn ich jemanden invite das da bei der Fraktion Zivilist steht


    #define DIALOG_INVITE 5


    if(dialogid==DIALOG_INVITE)
    {
    if(response)
    {
    sInfo[playerid][fraktion] = invite[playerid];
    invite[playerid] = -1; //resetten nh' :)
    SpawnPlayer(playerid);
    }
    else
    {
    invite[playerid] = -1;
    SendClientMessage(playerid,ROT,"Du wurdest nicht Invitet");
    }
    return 1;
    }


    ocmd:invite(playerid,params[])
    {
    if(isPlayerInFrakt(playerid, 0)) return SendClientMessage(playerid,ROT," Du bist in keiner Fraktion.");
    if(sInfo[playerid][rang] < 6)return SendClientMessage(playerid,ROT," Dein Rang ist zu niedrig.");
    new pID/*, fID*/;
    if(sscanf(params, "u", pID))return SendClientMessage(playerid,ROT,"Benutze: /invite [playerid]");
    /*if(isPlayerInFrakt(pID, 0))return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in einer Frak/Gang!");*/
    new string[140];
    format(string,sizeof(string),"Du wurdest vom Leader %s in die Fraktuion %s eingeladen!\nZum Annehmen klick auf Akzeptieren,zum ablehnen Klick auf Abbrechen",getPlayerName(playerid), fInfo[playerid][f_name]);
    ShowPlayerDialog(pID,DIALOG_INVITE,DIALOG_STYLE_MSGBOX,"Fakrion's Invite",string,"Annehmen","Ablehnen");
    invite[pID] = sInfo[playerid][fraktion];
    return 1;
    }
    so siehts aus wenn ich Jemanden Invite

  • format(string,sizeof(string),"Du wurdest vom Leader %s in die Fraktuion %s eingeladen!\nZum Annehmen klick auf Akzeptieren,zum ablehnen Klick auf Abbrechen",getPlayerName(playerid), fInfo[playerid][f_name]);


    zu:
    format(string,sizeof(string),"Du wurdest vom Leader %s in die Fraktuion %s eingeladen!\nZum Annehmen klick auf Akzeptieren,zum ablehnen Klick auf Abbrechen",getPlayerName(playerid), fInfo[sInfo[playerid][fraktion]][f_name]);


    Du musst den Fraktionsname über die FraktionsID abfragen, nicht über die playerid.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen