Esempio n. 1
0
        //TODO: Simplify method body
        public EClanType IsSubLeader(int objId, IEnumerable <EClanType> types)
        {
            EClanType ret = EClanType.None;

            foreach (EClanType ct in types)
            {
                switch (ct)
                {
                case EClanType.ClanKnight1:
                    if ((Knights1 != null) && (Knights1.LeaderId == objId))
                    {
                        ret = ct;
                    }
                    break;

                case EClanType.ClanKnight2:
                    if ((Knights2 != null) && (Knights2.LeaderId == objId))
                    {
                        ret = ct;
                    }
                    break;

                case EClanType.ClanKnight3:
                    if ((Knights1Order1 != null) && (Knights1Order1.LeaderId == objId))
                    {
                        ret = ct;
                    }
                    break;

                case EClanType.ClanKnight4:
                    if ((Knights1Order2 != null) && (Knights1Order2.LeaderId == objId))
                    {
                        ret = ct;
                    }
                    break;

                case EClanType.ClanKnight5:
                    if ((Knights2Order1 != null) && (Knights2Order1.LeaderId == objId))
                    {
                        ret = ct;
                    }
                    break;

                case EClanType.ClanKnight6:
                    if ((Knights2Order2 != null) && (Knights2Order2.LeaderId == objId))
                    {
                        ret = ct;
                    }
                    break;
                }
            }

            return(ret);
        }
Esempio n. 2
0
        public byte MaxMembers(EClanType type)
        {
            byte val = 0;

            switch (type)
            {
            case EClanType.ClanAcademy:
            case EClanType.ClanKnight1:
            case EClanType.ClanKnight2:
                val = 20;
                break;

            case EClanType.ClanKnight3:
            case EClanType.ClanKnight4:
            case EClanType.ClanKnight5:
            case EClanType.ClanKnight6:
                val = 10;
                break;

            case EClanType.ClanMain:
                switch (Level)
                {
                case 0:
                    val = 10;
                    break;

                case 1:
                    val = 15;
                    break;

                case 2:
                    val = 20;
                    break;

                case 3:
                    val = 30;
                    break;

                default:
                    val = 40;
                    break;
                }

                break;
            }

            return(val);
        }
Esempio n. 3
0
        public void Leave(L2Player player)
        {
            if (player.ObjId == LeaderId)
            {
                player.SendSystemMessage(SystemMessage.SystemMessageId.ClanLeaderCannotWithdraw);
                return;
            }

            EClanType type = IsSubLeader(player.ObjId, new[] { EClanType.ClanKnight1, EClanType.ClanKnight2, EClanType.ClanKnight3, EClanType.ClanKnight4, EClanType.ClanKnight5, EClanType.ClanKnight6 });

            if (type != EClanType.None)
            {
                if (GetClanMemberCount(type, player.ObjId) > 0)
                {
                    player.SendMessage("You are leader of clan sub unit, and while there some members - you cant leave them.");
                    return;
                }
            }

            SystemMessage sm = new SystemMessage(SystemMessage.SystemMessageId.S1HasWithdrawnFromTheClan);

            sm.AddPlayerName(player.Name);
            BroadcastToOnline(sm);

            ClanMember cm = Members.FirstOrDefault(member => member.ObjId == player.ObjId);

            if (cm != null)
            {
                lock (Members)
                    Members.Remove(cm);
            }

            player.Clan      = null;
            player.ClanId    = 0;
            player.ClanPrivs = 0;
            player.ClanType  = 0;

            player.Title = string.Empty;
            player.SendSystemMessage(SystemMessage.SystemMessageId.YouHaveWithdrawnFromClan);
            player.SendPacket(new PledgeShowMemberListDeleteAll());
            player.BroadcastUserInfo();

            player.setPenalty_ClanJoin(DateTime.Now.AddHours(24), false);
            player.SendSystemMessage(SystemMessage.SystemMessageId.YouMustWaitBeforeJoiningAnotherClan);

            // player.updateDb();
        }
Esempio n. 4
0
 public EClanSub(EClanType eClanType)
 {
     Type    = eClanType;
     Enabled = true;
 }
Esempio n. 5
0
 public List <ClanMember> GetClanMembers(EClanType type, int myself)
 {
     return(Members.Where(cm => (cm.ClanType == (short)type) && ((myself == 0) || (myself != cm.ObjId))).ToList());
 }
Esempio n. 6
0
 public byte GetClanMemberCount(EClanType type, int myself)
 {
     return((byte)Members.Count(cm => (cm.ClanType == (short)type) && ((myself == 0) || (myself != cm.ObjId))));
 }
Esempio n. 7
0
 public PledgeShowMemberListAll(L2Clan clan, EClanType type)
 {
     _clan = clan;
     _type = type;
 }