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