Groups Won't get Deleted [+REP]
#1

Hello, i've a little issue with Groups....
when players leave group it do not remove players from grouplistofplayers and if there are no players in group it dosen't remove group. group still active

here is some codes..
pawn Код:
stock GroupCheck(groupid, orderid)
{
        new gmems = GroupMembers(groupid);
        if(!gmems) Groupinfo[groupid][active] = 0;
        if(gmems != 0) ChangeMemberOrder(groupid, orderid);
        return 1;
}

stock GroupMembers(groupid)
{
        if(!Groupinfo[groupid][active]) return 0;
        new groupmembers;
        for(new i; i < MAX_PLAYERS; i++) if(Group[i][gid] == groupid) groupmembers++;
        return groupmembers;
}

stock ChangeMemberOrder(groupid, orderid)
{
        for(new x; x < MAX_PLAYERS; x++)
        {
                if(Group[x][gid] != groupid || Group[x][order] < orderid) continue;
                Group[x][order] --;
                if(Group[x][order] == 1)
                {
                        Groupinfo[groupid][leader] = x;
                        new string[128];

                        format(string, sizeof(string), "(GROUP MSG) %s (%d) has been Promoted To new Group Leader.", PlayerInfo[x][pName], x);
                        SendMessageToAllGroupMembers(groupid, string);
                }
        }
        return 1;
}
Group Leave Code..
pawn Код:
stock LeaveGroup(playerid, reason)
{
        new groupid = Group[playerid][gid], orderid = Group[playerid][order], string[100];
        GroupCheck(groupid, orderid);
       
        Group[playerid][gid] = -1;
        Group[playerid][order] = -1;
        Groupinfo[groupid][members] --;

        if(reason == 0)
        {
                format(string, sizeof(string), "(GROUP MSG) %s (%d) has left Group.", PlayerInfo[playerid][pName], playerid);
                SendClientMessage(playerid, COLOR_GOLD, "You Have Left This Group.");
        }
        if(reason == 1)
        {
        format(string, sizeof(string), "(GROUP MSG) %s (%d) has left your group (Kicked By The Leader).", PlayerInfo[playerid][pName], playerid);
        SendClientMessage(playerid, COLOR_GOLD, "You Have been kicked From Your Group.");
        }
        if(reason == 2) format(string, sizeof(string), "(GROUP MSG) %s (%d) has left Group (Disconnected).", PlayerInfo[playerid][pName], playerid);
        SendMessageToAllGroupMembers(groupid, string);
        return 1;
}
I Think There is a Problem in GroupCheck but i dont know what is that...
pawn Код:
stock GroupCheck(groupid, orderid)
{
        new gmems = GroupMembers(groupid);
        if(!gmems) Groupinfo[groupid][active] = 0;
        if(gmems != 0) ChangeMemberOrder(groupid, orderid);
        return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)