public void Leave(L2Player player) { if (player.ObjID == LeaderID) { player.sendSystemMessage(239);//A clan leader cannot withdraw from their own clan. return; } e_ClanType type = isSubLeader(player.ObjID, new e_ClanType[] { e_ClanType.CLAN_KNIGHT1, e_ClanType.CLAN_KNIGHT2, e_ClanType.CLAN_KNIGHT3, e_ClanType.CLAN_KNIGHT4, e_ClanType.CLAN_KNIGHT5, e_ClanType.CLAN_KNIGHT6 }); if (type != e_ClanType.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(223); //$s1 has withdrawn from the clan. sm.addPlayerName(player.Name); broadcastToOnline(sm); foreach (ClanMember cm in members) { if (cm.ObjID == player.ObjID) { lock (members) members.Remove(cm); break; } } player.Clan = null; player.ClanId = 0; player.ClanPrivs = 0; player.ClanType = 0; player.Title = ""; player.sendSystemMessage(197);//You have withdrawn from the clan. player.sendPacket(new PledgeShowMemberListDeleteAll()); player.broadcastUserInfo(); player.setPenalty_ClanJoin(DateTime.Now.AddHours(24), false); player.sendSystemMessage(232); //+1day // player.updateDb(); }
public e_ClanType isSubLeader(int ObjID, e_ClanType[] types) { e_ClanType ret = e_ClanType.None; foreach (e_ClanType ct in types) { switch (ct) { case e_ClanType.CLAN_KNIGHT1: if (Knights_1 != null && Knights_1.LeaderID == ObjID) { ret = ct; } break; case e_ClanType.CLAN_KNIGHT2: if (Knights_2 != null && Knights_2.LeaderID == ObjID) { ret = ct; } break; case e_ClanType.CLAN_KNIGHT3: if (Knights_1_Order1 != null && Knights_1_Order1.LeaderID == ObjID) { ret = ct; } break; case e_ClanType.CLAN_KNIGHT4: if (Knights_1_Order2 != null && Knights_1_Order2.LeaderID == ObjID) { ret = ct; } break; case e_ClanType.CLAN_KNIGHT5: if (Knights_2_Order1 != null && Knights_2_Order1.LeaderID == ObjID) { ret = ct; } break; case e_ClanType.CLAN_KNIGHT6: if (Knights_2_Order2 != null && Knights_2_Order2.LeaderID == ObjID) { ret = ct; } break; } } return(ret); }
public List <ClanMember> getClanMembers(e_ClanType type, int myself) { List <ClanMember> mems = new List <ClanMember>(); foreach (ClanMember cm in members) { if (cm.ClanType == (short)type) { if (myself != 0 && myself == cm.ObjID) { continue; } mems.Add(cm); } } return(mems); }
public byte getClanMemberCount(e_ClanType type, int myself) { byte cnt = 0; foreach (ClanMember cm in members) { if (cm.ClanType == (short)type) { if (myself != 0 && myself == cm.ObjID) { continue; } cnt++; } } // var x = from cm in members where cm.Type == type && cm.ObjID != myself let cnt2 = cnt+1 select cnt2; // int cn = x. return(cnt); }
public byte MaxMembers(e_ClanType type) { byte val = 0; switch (type) { case e_ClanType.CLAN_ACADEMY: case e_ClanType.CLAN_KNIGHT1: case e_ClanType.CLAN_KNIGHT2: val = 20; break; case e_ClanType.CLAN_KNIGHT3: case e_ClanType.CLAN_KNIGHT4: case e_ClanType.CLAN_KNIGHT5: case e_ClanType.CLAN_KNIGHT6: val = 10; break; case e_ClanType.CLAN_MAIN: 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 PledgeShowMemberListAll(L2Clan clan, e_ClanType type) { this.clan = clan; this.type = type; }
public e_ClanSub(e_ClanType e_ClanType) { this.Type = e_ClanType; Enabled = true; }