[HELP] Problem with making invite CMD.
#1

Im trying to make /invite in dialog like when i invite some guy and he will see an dialog if he accept he will be invited to the faction if he decline he will be not invited, but here i got problems now when i invite some guy if he click accept i recive someone other is invited like there other guy in the server he will be shown that he accepted the request also if he choose denied he will be still invited to the faction, can someone help me to fix this problem?


So here its the old CMD:
pawn Код:
CMD:inviteX(playerid, params[])
{
    new playerb, string[128];
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Mora da bides najaven za da ja koristis ovaa komanda.");
    if(!PlayerInfo[playerid][pFacLeader]) return SendClientMessage(playerid, COLOR_GREY, "Ti ne si lider na org.");
    if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_WHITE, "[INFO]: /invite [playerid]");
    if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id.");
    if(PlayerInfo[playerb][pFac]) return SendClientMessage(playerid, COLOR_GREY, "Igrac e vekje vo org.");
    if(playerid == playerb) return SendClientMessage(playerid, COLOR_GREY, "Ti nemozes da invite sam sebe.");
    if(PlayerInfo[playerb][pFam]) return SendClientMessage(playerid, COLOR_GREY, "Igrac e vekje vo familija.");
    // Inviting
    Invited[playerb] = 1;
    Inviter[playerb] = playerid;
    Faction[playerb] = PlayerInfo[playerid][pFac];
    format(string, sizeof(string), " Ti mu ponudi na %s da stane del od {33AA33}%s {33CCFF}organizacija.", RPN(playerb), RPFNEx(playerid));
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), " %s te povika tebe da vlezes vo {33AA33}%s {33CCFF}organizacija. (/accept org) (/cancel org)", RPN(playerid), RPFNEx(playerid));
    SendClientMessage(playerb, COLOR_LIGHTBLUE, string);
    return 1;
}

Here its what im trying to make:
pawn Код:
CMD:invite(playerid,params[])
{
    new playerb;
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Mora da bides najaven za da ja koristis ovaa komanda.");
    if(!PlayerInfo[playerid][pFacLeader]) return SendClientMessage(playerid, COLOR_GREY, "Ti ne si lider na org.");
    if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_WHITE, "[INFO]: /invite [playerid]");
    if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id.");
    if(PlayerInfo[playerb][pFac]) return SendClientMessage(playerid, COLOR_GREY, "Igrac e vekje vo org.");
    if(playerid == playerb) return SendClientMessage(playerid, COLOR_GREY, "Ti nemozes da invite sam sebe.");
    if(PlayerInfo[playerb][pFam]) return SendClientMessage(playerid, COLOR_GREY, "Igrac e vekje vo familija.");
    new str[512];
    new ime[MAX_PLAYER_NAME];
    GetPlayerName(playerid, ime, sizeof(ime));
    format(str,512,"Jas %s te pokanuvam da bides moj clen \n-Dokolku prifakjate pritisnete 'Prifakjam' \n-Dokolku odbivate pritisnete 'Odbivam'\nDokolku se predomislis javi mi se : %d ",ime,PlayerInfo[playerid][pNumber]);
    ShowPlayerDialog(playerb, DIALOG_INVITE,DIALOG_STYLE_MSGBOX,"Pokana za Vo Organizacija",str,"Prifakjam","Odbivam");
    Invited[playerb] = 1;
    Inviter[playerb] = playerid;
    Faction[playerb] = PlayerInfo[playerid][pFac];
    new igrac[MAX_PLAYER_NAME];
    GetPlayerName(playerb, igrac, sizeof(igrac));
    format(str,128,"Go povikavte Igracot za %s vo vasata Organizacija!",igrac);
    SendClientMessage(playerid,COLOR_WHITE,str);
    format(str, 128, "%s go povika igracot %s vo negovata Organizacijaa",ime, igrac);
    ProxDetector(30.0, playerid, str, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    return 1;
}

Here its the DIALOG:
pawn Код:
if(dialogid == DIALOG_INVITE)
        {
        if(!response)
        {
            SendClientMessage(playerid,COLOR_GRAD1,"Ja Odbivte Pokanata!");
        }
        if(response)
        {
        if(Invited[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY, "Ti ne dobi ponuda za vlez vo organizacija.");
        {
            new playerb;
            new inv = Inviter[playerb];
            new idx = Faction[playerid];
            PlayerInfo[playerid][pFac] = Faction[playerid];
            PlayerInfo[playerid][pFacRank] = 0;
            FacInfo[idx][facMembers] ++;
            PlayerInfo[playerid][pFacLeader] = 0;
            PlayerInfo[playerid][pFacDiv] = 0;
            PlayerInfo[playerid][pFacDivLeader] = 0;
            new str[128];
            format(str,128,"* %s ja prifati vasata pokana za clenstvo!", RPN(playerb));
            SendClientMessage(inv,COLOR_WHITE,str);
            new sendername[MAX_PLAYER_NAME+1];
            GetPlayerName(playerid, sendername, sizeof(sendername));
            new string[512];
            format(str,128,"*Prifativte za da vlezete kaj %s !",sendername);
            format(str, sizeof(string), "*%s Ja Prifati Pokanata za Clenstvo vo Organizacija.", sendername);
            SendClientMessage(playerid,COLOR_WHITE,str);
            SendClientMessage(playerid,COLOR_WHITE,string);
            Invited[playerid] = 0;
            Faction[playerid] = 0;
            Inviter[playerb] = playerid;
          }
        }
   }
Reply
#2

PHP код:
    if(dialogid == DIALOG_INVITE)
    {
        if(!
response)
        {
            
SendClientMessage(playerid,COLOR_GRAD1,"Ja Odbivte Pokanata!");
        }
        if(
response)
        {
            if(
Invited[playerid] == 0)
                return 
SendClientMessage(playeridCOLOR_GREY"Ti ne dobi ponuda za vlez vo organizacija.");
            else
            {
                new 
playerb;//playerb = 0
                //new inv = Inviter[playerb]
                //Mistake #1 Inviter[playerb] = Inviter[0] = ID 0[If ID 0 dint receive any invite in the past]
                
new inv Inviter[playerid];
                new 
idx Faction[playerid]; //Why create if you are not gonna use it??
                //PlayerInfo[playerid][pFac] = Faction[playerid]; Waste of Variable #1
                
PlayerInfo[playerid][pFac] = idx;//Why create it then?
                
PlayerInfo[playerid][pFacRank] = 0;
                
FacInfo[idx][facMembers]++;
                
PlayerInfo[playerid][pFacLeader] = 0;
                
PlayerInfo[playerid][pFacDiv] = 0;
                
PlayerInfo[playerid][pFacDivLeader] = 0;
                new 
str[128];
                
//format(str,128,"* %s ja prifati vasata pokana za clenstvo!", RPN(playerb)); playerb is still 0.
                
format(str,128,"* %s ja prifati vasata pokana za clenstvo!"RPN(playerid));
                
SendClientMessage(inv,COLOR_WHITE,str); //Now inviter(inv) is the real guy who invited
                
new sendername[MAX_PLAYER_NAME+1];
                
GetPlayerName(playeridsendernamesizeof(sendername));
                new 
string[512];
                
format(str,128,"*Prifativte za da vlezete kaj %s !",sendername);
                
format(strsizeof(string), "*%s Ja Prifati Pokanata za Clenstvo vo Organizacija."sendername);
                
SendClientMessage(playerid,COLOR_WHITE,str);
                
SendClientMessage(playerid,COLOR_WHITE,string);
                
Invited[playerid] = 0;
                
Faction[playerid] = 0;
                
Inviter[playerb] = playerid;//What does this even do?
                //playerb = 0..
              
}
        }
   } 
Have a good day.. I tried to be as informative as possible.. No insult/mock was intended. Just trying to make you understand where all you went wrong so that you will study and self-check in future..
Reply
#3

pawn Код:
//PlayerInfo[playerid][pFac] = Faction[playerid]; Waste of Variable #1
                Inviter[playerb] = playerid;//What does this even do?
This was same in the accept faction..
Reply
#4

pawn Код:
CMD:invite(playerid, params[])
{
    new playerb, string[128];
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Mora da bides najaven za da ja koristis ovaa komanda.");
    if(!PlayerInfo[playerid][pFacLeader]) return SendClientMessage(playerid, COLOR_GREY, "Ti ne si lider na org.");
    if(sscanf(params, "u", playerb)) return SendClientMessage(playerid, COLOR_WHITE, "[INFO]: /invite [playerid]");
    if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id.");
    if(PlayerInfo[playerb][pFac]) return SendClientMessage(playerid, COLOR_GREY, "Igrac e vekje vo org.");
    if(playerid == playerb) return SendClientMessage(playerid, COLOR_GREY, "Ti nemozes da invite sam sebe.");
    if(PlayerInfo[playerb][pFam]) return SendClientMessage(playerid, COLOR_GREY, "Igrac e vekje vo familija
    Invited[playerb] = 1;
    Inviter[playerb] = playerid;
    Faction[playerb] = PlayerInfo[playerid][pFac];
    format(str,512,"
Jas %s te pokanuvam da bides moj clen \n-Dokolku prifakjate pritisnete 'Prifakjam' \n-Dokolku odbivate pritisnete 'Odbivam'\nDokolku se predomislis javi mi se : %d ",ime,PlayerInfo[playerid][pNumber]);
    ShowPlayerDialog(playerb, DIALOG_INVITE,DIALOG_STYLE_MSGBOX,"
Pokana za Vo Organizacija",str,"Prifakjam","Odbivam");
    format(str,128,"
Go povikavte Igracot za %s vo vasata Organizacija!",RPN(playerb));
    SendClientMessage(playerid,COLOR_WHITE,str);
    format(str, 128, "
%s go povika igracot %s vo negovata Organizacijaa",ime, RPN(playerb));
    ProxDetector(30.0, playerid, str, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    return 1;
}
pawn Код:
{
    if(!response)
    {
        SendClientMessage(playerid,COLOR_GRAD1,"Ja Odbivte Pokanata!");
    }
    else
    {
        if(Invited[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY, "Ti ne dobi ponuda za vlez vo organizacija.");
        new idx = Faction[playerid];
        PlayerInfo[playerid][pFac] = Faction[playerid];
        PlayerInfo[playerid][pFacRank] = 0;
        PlayerInfo[playerid][pFacLeader] = 0;
        PlayerInfo[playerid][pFacDiv] = 0;
        PlayerInfo[playerid][pFacDivLeader] = 0;
        FacInfo[idx][facMembers] ++;
        Invited[playerid] = 0;
        Faction[playerid] = 0;
        new str[128];
        format(str,128,"* %s ja prifati vasata pokana za clenstvo!", RPN(playerb));
        SendClientMessage(inv,COLOR_WHITE,str);
        GetPlayerName(playerid, sendername, sizeof(sendername));
        new string[512];
        format(str,128,"*Prifativte za da vlezete kaj %s !",RPN(Inviter[playerid]));
        format(str, sizeof(string), "*%s Ja Prifati Pokanata za Clenstvo vo Organizacija.", RPN(playerid));
        SendClientMessage(Inviter[playerid],COLOR_WHITE,str);
        SendClientMessage(playerid,COLOR_WHITE,string);
    }
}
There you go
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)