diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-01.htm index 7866e580b8..0b9c6f8ea4 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-01.htm +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-01.htm @@ -4,7 +4,4 @@ - - - \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-03-no.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-03-no.htm deleted file mode 100644 index 96dc7c378a..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-03-no.htm +++ /dev/null @@ -1,3 +0,0 @@ -

-You are not the leader of this clan. You may not raise the level of it. - \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-03.htm deleted file mode 100644 index 0b01be09f0..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-03.htm +++ /dev/null @@ -1,22 +0,0 @@ - -The clan level can be raised. Raising clan level requires the following:
-Level 1 - SP : 20,000 Adena : 650,000
-Level 2 - SP: 100,000 / Adena: 2,500,000
-Level 3 - SP: 350,000 / Item: Blood Mark
-Level 4 - SP: 1,000,000 / Item: Alliance Manifesto
-Level 5 - SP: 2,500,000 / Item: Seal of Aspiration
-Level 6 - Clan Fame: 5,000 / Clan Member: More than 30
-Level 7 - Clan Fame: 10,000 / Clan Member: More than 50
-Level 8 - Clan Fame: 20,000 / Clan Member: More than 80
-Level 9 - Clan Fame: 40,000 / Clan Member: More than 120 / Item: 150 Blood Oaths
-Level 10 - Clan Fame: 40,000 / Clan Member: More than 140 / Item: 5 Blood Alliance
-Level 11 - Clan Fame: 75,000 / Clan Member: More than 170 / Must be Territory Owner
-You can obtain a Blood Mark by killing a Bloody Queen. They are located in Watcher's Tomb or around the Forbidden Gateway.
-To obtain an Alliance Manifesto, meet sir Christopher Rodemai of Giran Castle Town.
-To obtain a Seal of Aspiration, see Sir Gustav Athebaldt in the Town of Oren.
-To obtain Blood Oath, acquire a fortress and prove that the territories are being protected.
-To obtain the Determination of Blood, possess a castle and prove that the territories are being protected and citizens are being taken care of.
- - - - \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-12a.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-12a.htm deleted file mode 100644 index 72358afbf2..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-12a.htm +++ /dev/null @@ -1,6 +0,0 @@ -Create Academy:
-Enter Academy Name:
-
- - - - - - \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-13a.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-13a.htm deleted file mode 100644 index 83be673773..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-13a.htm +++ /dev/null @@ -1,9 +0,0 @@ - -Create Royal Guard Unit:
-Enter Unit Name:
-
-Enter Unit Leader Name:
-
- - - \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-13c.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-13c.htm deleted file mode 100644 index ba999de009..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-13c.htm +++ /dev/null @@ -1,6 +0,0 @@ -Rename First Royal Guard:
-Enter new name for First Royal Guard:
-
- - - - - - \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-14a.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-14a.htm deleted file mode 100644 index 02cc180586..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-14a.htm +++ /dev/null @@ -1,9 +0,0 @@ - -Create Order of Knights Unit:
-Enter Unit Name:
-
-Enter Unit Leader Name:
-
- - - - - \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-14c.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-14c.htm deleted file mode 100644 index 46e27f0cb9..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/9000-14c.htm +++ /dev/null @@ -1,6 +0,0 @@ -Rename first Order of Knights:
-Enter new name for first Order of Knights:
-
- - \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/Clan.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/Clan.java index 7eaf35bf46..e76971e006 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/Clan.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/village_master/Clan/Clan.java @@ -64,13 +64,6 @@ public final class Clan extends AbstractNpcAI LEADER_REQUIRED.put("9000-04.htm", "9000-04-no.htm"); LEADER_REQUIRED.put("9000-05.htm", "9000-05-no.htm"); LEADER_REQUIRED.put("9000-07.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-12a.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-12b.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-13a.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-13b.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-14a.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-14b.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-15.htm", "9000-07-no.htm"); } private Clan() diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java index b92a14b163..d9cef8d3e4 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java @@ -39,11 +39,59 @@ public class ClanLevelData 27300000, 36400000, 46410000, - 0 // Max level (15). + 0 + }; + private final static int[] COMMON_CLAN_MEMBER_LIMIT = + { + 10, + 15, + 20, + 30, + 40, + 42, + 68, + 85, + 94, + 102, + 111, + 120, + 128, + 137, + 145, + 171 + }; + private final static int[] ELITE_CLAN_MEMBER_LIMIT = + { + 0, + 0, + 0, + 0, + 0, + 8, + 12, + 15, + 16, + 18, + 19, + 20, + 22, + 23, + 25, + 29 }; public static int getLevelRequirement(int clanLevel) { return CLAN_LEVEL_REQUIREMENTS[clanLevel]; } + + public static int getCommonMemberLimit(int clanLevel) + { + return COMMON_CLAN_MEMBER_LIMIT[clanLevel]; + } + + public static int getEliteMemberLimit(int clanLevel) + { + return ELITE_CLAN_MEMBER_LIMIT[clanLevel]; + } } diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/L2Clan.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/L2Clan.java index f7daf508ba..793dbb4568 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/L2Clan.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/L2Clan.java @@ -67,7 +67,6 @@ import com.l2jmobius.gameserver.network.SystemMessageId; import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; import com.l2jmobius.gameserver.network.serverpackets.ExSubPledgeSkillAdd; import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; -import com.l2jmobius.gameserver.network.serverpackets.PledgeReceiveSubPledgeCreated; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListDeleteAll; @@ -99,21 +98,10 @@ public class L2Clan implements IIdentifiable, INamable public static final int PENALTY_TYPE_DISMISS_CLAN = 3; /** Leader clan dissolve ally */ public static final int PENALTY_TYPE_DISSOLVE_ALLY = 4; - // Sub-unit types - /** Clan subunit type of Academy */ - public static final int SUBUNIT_ACADEMY = -1; - /** Clan subunit type of Royal Guard A */ - public static final int SUBUNIT_ROYAL1 = 100; - /** Clan subunit type of Royal Guard B */ - public static final int SUBUNIT_ROYAL2 = 200; - /** Clan subunit type of Order of Knights A-1 */ - public static final int SUBUNIT_KNIGHT1 = 1001; - /** Clan subunit type of Order of Knights A-2 */ - public static final int SUBUNIT_KNIGHT2 = 1002; - /** Clan subunit type of Order of Knights B-1 */ - public static final int SUBUNIT_KNIGHT3 = 2001; - /** Clan subunit type of Order of Knights B-2 */ - public static final int SUBUNIT_KNIGHT4 = 2002; + + // Pledge types + public static final int PLEDGE_CLASS_COMMON = 0; + public static final int PLEDGE_CLASS_ELITE = 100; private String _name; private int _clanId; @@ -289,14 +277,14 @@ public class L2Clan implements IIdentifiable, INamable if (exLeader != null) { - exLeader.setPledgeClass(L2ClanMember.calculatePledgeClass(exLeader)); + exLeader.setPledgeClass(PLEDGE_CLASS_COMMON); exLeader.broadcastUserInfo(); exLeader.checkItemRestriction(); } if (newLeader != null) { - newLeader.setPledgeClass(L2ClanMember.calculatePledgeClass(newLeader)); + newLeader.setPledgeClass(PLEDGE_CLASS_COMMON); newLeader.getClanPrivileges().setAll(); if (getLevel() >= SiegeManager.getInstance().getSiegeClanMinLevel()) @@ -377,7 +365,7 @@ public class L2Clan implements IIdentifiable, INamable addClanMember(member); member.setPlayerInstance(player); player.setClan(this); - player.setPledgeClass(L2ClanMember.calculatePledgeClass(player)); + player.setPledgeClass(PLEDGE_CLASS_COMMON); player.sendPacket(new PledgeShowMemberListUpdate(player)); player.sendPacket(new PledgeSkillList(this)); @@ -526,7 +514,6 @@ public class L2Clan implements IIdentifiable, INamable player.setClanJoinExpiryTime(clanJoinExpiryTime); } - player.setPledgeClass(L2ClanMember.calculatePledgeClass(player)); player.broadcastUserInfo(); // disable clan tab player.sendPacket(PledgeShowMemberListDeleteAll.STATIC_PACKET); @@ -563,102 +550,6 @@ public class L2Clan implements IIdentifiable, INamable return result; } - /** - * @param pledgeType the Id of the pledge type. - * @return the maximum number of members allowed for a given {@code pledgeType}. - */ - public int getMaxNrOfMembers(int pledgeType) - { - int limit = 0; - - switch (pledgeType) - { - case 0: - { - switch (_level) - { - case 3: - { - limit = 30; - break; - } - case 2: - { - limit = 20; - break; - } - case 1: - { - limit = 15; - break; - } - case 0: - { - limit = 10; - break; - } - default: - { - limit = 40; - break; - } - } - break; - } - case -1: - { - limit = 20; - break; - } - case 100: - case 200: - { - switch (_level) - { - case 11: - { - limit = 30; - break; - } - default: - { - limit = 20; - break; - } - } - break; - } - case 1001: - case 1002: - case 2001: - case 2002: - { - switch (_level) - { - case 9: - case 10: - case 11: - { - limit = 25; - break; - } - default: - { - limit = 10; - break; - } - } - break; - } - default: - { - break; - } - } - - return limit; - } - /** * @param exclude the object Id to exclude from list. * @return all online members excluding the one with object id {code exclude}. @@ -1841,35 +1732,15 @@ public class L2Clan implements IIdentifiable, INamable return _subPledges.values().toArray(new SubPledge[_subPledges.values().size()]); } - public SubPledge createSubPledge(L2PcInstance player, int pledgeType, int leaderId, String subPledgeName) + public SubPledge createSubPledge(int pledgeType) { - SubPledge subPledge = null; - pledgeType = getAvailablePledgeTypes(pledgeType); - if (pledgeType == 0) + if ((_subPledges == null) || (_subPledges.get(pledgeType) != null)) { - if (pledgeType == SUBUNIT_ACADEMY) - { - player.sendPacket(SystemMessageId.YOUR_CLAN_HAS_ALREADY_ESTABLISHED_A_CLAN_ACADEMY); - } - else - { - player.sendMessage("You can't create any more sub-units of this type"); - } - return null; - } - if (_leader.getObjectId() == leaderId) - { - player.sendMessage("Leader is not correct"); return null; } - // Royal Guard 5000 points per each - // Order of Knights 10000 points per each - if ((pledgeType != -1) && (((_reputationScore < Config.ROYAL_GUARD_COST) && (pledgeType < SUBUNIT_KNIGHT1)) || ((_reputationScore < Config.KNIGHT_UNIT_COST) && (pledgeType > SUBUNIT_ROYAL2)))) - { - player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW); - return null; - } + final String subPledgeName = pledgeType == PLEDGE_CLASS_COMMON ? "COMMON" : "ELITE"; + SubPledge subPledge = null; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement ps = con.prepareStatement("INSERT INTO clan_subpledges (clan_id,sub_pledge_id,name,leader_id) values (?,?,?,?)")) @@ -1877,81 +1748,22 @@ public class L2Clan implements IIdentifiable, INamable ps.setInt(1, _clanId); ps.setInt(2, pledgeType); ps.setString(3, subPledgeName); - ps.setInt(4, pledgeType != -1 ? leaderId : 0); + ps.setInt(4, _leader.getObjectId()); ps.execute(); - subPledge = new SubPledge(pledgeType, subPledgeName, leaderId); + subPledge = new SubPledge(pledgeType, subPledgeName, _leader.getObjectId()); _subPledges.put(pledgeType, subPledge); - - if (pledgeType != -1) - { - // Royal Guard 5000 points per each - // Order of Knights 10000 points per each - if (pledgeType < SUBUNIT_KNIGHT1) - { - setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST, true); - } - else - { - setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST, true); - // TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST - } - } } catch (Exception e) { LOGGER.log(Level.SEVERE, "Error saving sub clan data: " + e.getMessage(), e); } - broadcastToOnlineMembers(new PledgeShowInfoUpdate(_leader.getClan())); - broadcastToOnlineMembers(new PledgeReceiveSubPledgeCreated(subPledge, _leader.getClan())); + // broadcastToOnlineMembers(new PledgeShowInfoUpdate(_leader.getClan())); + // broadcastToOnlineMembers(new PledgeReceiveSubPledgeCreated(subPledge, _leader.getClan())); return subPledge; } - public int getAvailablePledgeTypes(int pledgeType) - { - if (_subPledges.get(pledgeType) != null) - { - // LOGGER.warning("found sub-unit with id: "+pledgeType); - switch (pledgeType) - { - case SUBUNIT_ACADEMY: - { - return 0; - } - case SUBUNIT_ROYAL1: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_ROYAL2); - break; - } - case SUBUNIT_ROYAL2: - { - return 0; - } - case SUBUNIT_KNIGHT1: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT2); - break; - } - case SUBUNIT_KNIGHT2: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT3); - break; - } - case SUBUNIT_KNIGHT3: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT4); - break; - } - case SUBUNIT_KNIGHT4: - { - return 0; - } - } - } - return pledgeType; - } - public void updateSubPledgeInDB(int pledgeType) { try (Connection con = DatabaseFactory.getConnection(); @@ -2243,18 +2055,11 @@ public class L2Clan implements IIdentifiable, INamable activeChar.sendPacket(SystemMessageId.IN_ORDER_TO_JOIN_THE_CLAN_ACADEMY_YOU_MUST_BE_UNAFFILIATED_WITH_A_CLAN_AND_BE_AN_UNAWAKENED_CHARACTER_LV_84_OR_BELOW_FPR_BOTH_MAIN_AND_SUBCLASS); return false; } - if (getSubPledgeMembersCount(pledgeType) >= getMaxNrOfMembers(pledgeType)) + if (getSubPledgeMembersCount(pledgeType) >= (pledgeType == 0 ? ClanLevelData.getCommonMemberLimit(_level) : ClanLevelData.getEliteMemberLimit(_level))) { - if (pledgeType == 0) - { - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_IS_FULL_AND_CANNOT_ACCEPT_ADDITIONAL_CLAN_MEMBERS_AT_THIS_TIME); - sm.addString(_name); - activeChar.sendPacket(sm); - } - else - { - activeChar.sendPacket(SystemMessageId.THIS_CLAN_IS_FULL_AND_CANNOT_ACCEPT_NEW_MEMBERS_AT_THIS_TIME); - } + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_IS_FULL_AND_CANNOT_ACCEPT_ADDITIONAL_CLAN_MEMBERS_AT_THIS_TIME); + sm.addString(_name); + activeChar.sendPacket(sm); return false; } return true; diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/L2ClanMember.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/L2ClanMember.java index 8655fe5918..441cef9ef8 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/L2ClanMember.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/L2ClanMember.java @@ -714,6 +714,10 @@ public class L2ClanMember break; } case 11: + case 12: + case 13: + case 14: + case 15: { switch (player.getPledgeType()) { diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 367dd14aa0..2ddd4d237f 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -1040,25 +1040,22 @@ public final class L2PcInstance extends L2Playable } if ((clan != null) && (targetClan != null)) { - if ((target.getPledgeType() != L2Clan.SUBUNIT_ACADEMY) && (getPledgeType() != L2Clan.SUBUNIT_ACADEMY)) + ClanWar war = clan.getWarWith(target.getClan().getId()); + if (war != null) { - ClanWar war = clan.getWarWith(target.getClan().getId()); - if (war != null) + switch (war.getState()) { - switch (war.getState()) + case DECLARATION: + case BLOOD_DECLARATION: { - case DECLARATION: - case BLOOD_DECLARATION: - { - result |= RelationChanged.RELATION_DECLARED_WAR; - break; - } - case MUTUAL: - { - result |= RelationChanged.RELATION_DECLARED_WAR; - result |= RelationChanged.RELATION_MUTUAL_WAR; - break; - } + result |= RelationChanged.RELATION_DECLARED_WAR; + break; + } + case MUTUAL: + { + result |= RelationChanged.RELATION_DECLARED_WAR; + result |= RelationChanged.RELATION_MUTUAL_WAR; + break; } } } @@ -9036,6 +9033,10 @@ public final class L2PcInstance extends L2Playable public void setPledgeType(int typeId) { + if (_clan != null) + { + _clan.createSubPledge(typeId); + } _pledgeType = typeId; } diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java index 69506f563b..a741cb2f87 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java @@ -30,7 +30,6 @@ import com.l2jmobius.gameserver.instancemanager.FortManager; import com.l2jmobius.gameserver.instancemanager.FortSiegeManager; import com.l2jmobius.gameserver.instancemanager.SiegeManager; import com.l2jmobius.gameserver.model.L2Clan; -import com.l2jmobius.gameserver.model.L2Clan.SubPledge; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.L2SkillLearn; import com.l2jmobius.gameserver.model.actor.L2Character; @@ -46,8 +45,6 @@ import com.l2jmobius.gameserver.network.serverpackets.MagicSkillLaunched; import com.l2jmobius.gameserver.network.serverpackets.MagicSkillUse; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; -import com.l2jmobius.gameserver.network.serverpackets.UserInfo; -import com.l2jmobius.gameserver.util.Util; /** * This class ... @@ -124,51 +121,6 @@ public class L2VillageMasterInstance extends L2NpcInstance ClanTable.getInstance().createClan(player, cmdParams); } - else if (actualCommand.equalsIgnoreCase("create_academy")) - { - if (cmdParams.isEmpty()) - { - return; - } - - createSubPledge(player, cmdParams, null, L2Clan.SUBUNIT_ACADEMY, 5); - } - else if (actualCommand.equalsIgnoreCase("rename_pledge")) - { - if (cmdParams.isEmpty() || cmdParams2.isEmpty()) - { - return; - } - - renameSubPledge(player, Integer.parseInt(cmdParams), cmdParams2); - } - else if (actualCommand.equalsIgnoreCase("create_royal")) - { - if (cmdParams.isEmpty()) - { - return; - } - - createSubPledge(player, cmdParams, cmdParams2, L2Clan.SUBUNIT_ROYAL1, 6); - } - else if (actualCommand.equalsIgnoreCase("create_knight")) - { - if (cmdParams.isEmpty()) - { - return; - } - - createSubPledge(player, cmdParams, cmdParams2, L2Clan.SUBUNIT_KNIGHT1, 7); - } - else if (actualCommand.equalsIgnoreCase("assign_subpl_leader")) - { - if (cmdParams.isEmpty()) - { - return; - } - - assignSubPledgeLeader(player, cmdParams, cmdParams2); - } else if (actualCommand.equalsIgnoreCase("create_ally")) { if (cmdParams.isEmpty()) @@ -371,207 +323,6 @@ public class L2VillageMasterInstance extends L2NpcInstance clan.updateClanInDB(); } - private static void createSubPledge(L2PcInstance player, String clanName, String leaderName, int pledgeType, int minClanLvl) - { - if (!player.isClanLeader()) - { - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); - return; - } - - final L2Clan clan = player.getClan(); - if (clan.getLevel() < minClanLvl) - { - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - player.sendPacket(SystemMessageId.TO_ESTABLISH_A_CLAN_ACADEMY_YOUR_CLAN_MUST_BE_LEVEL_5_OR_HIGHER); - } - else - { - player.sendPacket(SystemMessageId.THE_CONDITIONS_NECESSARY_TO_CREATE_A_MILITARY_UNIT_HAVE_NOT_BEEN_MET); - } - - return; - } - if (!Util.isAlphaNumeric(clanName) || !isValidName(clanName) || (2 > clanName.length())) - { - player.sendPacket(SystemMessageId.CLAN_NAME_IS_INVALID); - return; - } - if (clanName.length() > 16) - { - player.sendPacket(SystemMessageId.CLAN_NAME_S_LENGTH_IS_INCORRECT); - return; - } - - for (L2Clan tempClan : ClanTable.getInstance().getClans()) - { - if (tempClan.getSubPledge(clanName) != null) - { - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_ALREADY_EXISTS); - sm.addString(clanName); - player.sendPacket(sm); - } - else - { - player.sendPacket(SystemMessageId.ANOTHER_MILITARY_UNIT_IS_ALREADY_USING_THAT_NAME_PLEASE_ENTER_A_DIFFERENT_NAME); - } - - return; - } - } - - if (pledgeType != L2Clan.SUBUNIT_ACADEMY) - { - if ((clan.getClanMember(leaderName) == null) || (clan.getClanMember(leaderName).getPledgeType() != 0)) - { - if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) - { - player.sendPacket(SystemMessageId.THE_CAPTAIN_OF_THE_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED); - } - else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) - { - player.sendPacket(SystemMessageId.THE_ROYAL_GUARD_CAPTAIN_CANNOT_BE_APPOINTED); - } - - return; - } - } - - final int leaderId = pledgeType != L2Clan.SUBUNIT_ACADEMY ? clan.getClanMember(leaderName).getObjectId() : 0; - - if (clan.createSubPledge(player, pledgeType, leaderId, clanName) == null) - { - return; - } - - SystemMessage sm; - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.CONGRATULATIONS_THE_S1_S_CLAN_ACADEMY_HAS_BEEN_CREATED); - sm.addString(player.getClan().getName()); - } - else if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.THE_KNIGHTS_OF_S1_HAVE_BEEN_CREATED); - sm.addString(player.getClan().getName()); - } - else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.THE_ROYAL_GUARD_OF_S1_HAVE_BEEN_CREATED); - sm.addString(player.getClan().getName()); - } - else - { - sm = SystemMessage.getSystemMessage(SystemMessageId.YOUR_CLAN_HAS_BEEN_CREATED); - } - player.sendPacket(sm); - - if (pledgeType != L2Clan.SUBUNIT_ACADEMY) - { - final L2ClanMember leaderSubPledge = clan.getClanMember(leaderName); - final L2PcInstance leaderPlayer = leaderSubPledge.getPlayerInstance(); - if (leaderPlayer != null) - { - leaderPlayer.setPledgeClass(L2ClanMember.calculatePledgeClass(leaderPlayer)); - leaderPlayer.sendPacket(new UserInfo(leaderPlayer)); - } - } - } - - private static void renameSubPledge(L2PcInstance player, int pledgeType, String pledgeName) - { - if (!player.isClanLeader()) - { - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); - return; - } - - final L2Clan clan = player.getClan(); - final SubPledge subPledge = player.getClan().getSubPledge(pledgeType); - - if (subPledge == null) - { - player.sendMessage("Pledge don't exists."); - return; - } - if (!Util.isAlphaNumeric(pledgeName) || !isValidName(pledgeName) || (2 > pledgeName.length())) - { - player.sendPacket(SystemMessageId.CLAN_NAME_IS_INVALID); - return; - } - if (pledgeName.length() > 16) - { - player.sendPacket(SystemMessageId.CLAN_NAME_S_LENGTH_IS_INCORRECT); - return; - } - - subPledge.setName(pledgeName); - clan.updateSubPledgeInDB(subPledge.getId()); - clan.broadcastClanStatus(); - player.sendMessage("Pledge name changed."); - } - - private static void assignSubPledgeLeader(L2PcInstance player, String clanName, String leaderName) - { - if (!player.isClanLeader()) - { - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); - return; - } - if (leaderName.length() > 16) - { - player.sendPacket(SystemMessageId.YOUR_TITLE_CANNOT_EXCEED_16_CHARACTERS_IN_LENGTH_PLEASE_TRY_AGAIN); - return; - } - if (player.getName().equals(leaderName)) - { - player.sendPacket(SystemMessageId.THE_ROYAL_GUARD_CAPTAIN_CANNOT_BE_APPOINTED); - return; - } - - final L2Clan clan = player.getClan(); - final SubPledge subPledge = player.getClan().getSubPledge(clanName); - - if ((null == subPledge) || (subPledge.getId() == L2Clan.SUBUNIT_ACADEMY)) - { - player.sendPacket(SystemMessageId.CLAN_NAME_IS_INVALID); - return; - } - if ((clan.getClanMember(leaderName) == null) || (clan.getClanMember(leaderName).getPledgeType() != 0)) - { - if (subPledge.getId() >= L2Clan.SUBUNIT_KNIGHT1) - { - player.sendPacket(SystemMessageId.THE_CAPTAIN_OF_THE_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED); - } - else if (subPledge.getId() >= L2Clan.SUBUNIT_ROYAL1) - { - player.sendPacket(SystemMessageId.THE_ROYAL_GUARD_CAPTAIN_CANNOT_BE_APPOINTED); - } - - return; - } - - subPledge.setLeaderId(clan.getClanMember(leaderName).getObjectId()); - clan.updateSubPledgeInDB(subPledge.getId()); - - final L2ClanMember leaderSubPledge = clan.getClanMember(leaderName); - final L2PcInstance leaderPlayer = leaderSubPledge.getPlayerInstance(); - if (leaderPlayer != null) - { - leaderPlayer.setPledgeClass(L2ClanMember.calculatePledgeClass(leaderPlayer)); - leaderPlayer.sendPacket(new UserInfo(leaderPlayer)); - } - - clan.broadcastClanStatus(); - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_BEEN_SELECTED_AS_THE_CAPTAIN_OF_S2); - sm.addString(leaderName); - sm.addString(clanName); - clan.broadcastToOnlineMembers(sm); - } - /** * this displays PledgeSkillList to the player. * @param player diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java index 901acc075d..c85bb581a0 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java @@ -98,7 +98,7 @@ public final class RequestAnswerJoinPledge implements IClientIncomingPacket activeChar.sendPacket(new JoinPledge(requestor.getClanId())); activeChar.setPledgeType(pledgeType); - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) + if (pledgeType == -1) // Academy - Removed. { activeChar.setPowerGrade(9); // academy activeChar.setLvlJoinedAcademy(activeChar.getLevel()); diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java index 4cc9577dbb..648d3266dc 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java @@ -17,11 +17,14 @@ package com.l2jmobius.gameserver.network.clientpackets; import com.l2jmobius.commons.network.PacketReader; +import com.l2jmobius.gameserver.data.xml.impl.ClanLevelData; import com.l2jmobius.gameserver.model.ClanPrivilege; import com.l2jmobius.gameserver.model.L2Clan; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.L2GameClient; +import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Format: (ch) dSdS @@ -29,29 +32,22 @@ import com.l2jmobius.gameserver.network.L2GameClient; */ public final class RequestPledgeReorganizeMember implements IClientIncomingPacket { - private int _isMemberSelected; private String _memberName; private int _newPledgeType; - private String _selectedMember; @Override public boolean read(L2GameClient client, PacketReader packet) { - _isMemberSelected = packet.readD(); + packet.readD(); // _isMemberSelected _memberName = packet.readS(); _newPledgeType = packet.readD(); - _selectedMember = packet.readS(); + packet.readS(); // _selectedMember return true; } @Override public void run(L2GameClient client) { - if (_isMemberSelected == 0) - { - return; - } - final L2PcInstance activeChar = client.getActiveChar(); if (activeChar == null) { @@ -75,21 +71,21 @@ public final class RequestPledgeReorganizeMember implements IClientIncomingPacke return; } - final L2ClanMember member2 = clan.getClanMember(_selectedMember); - if ((member2 == null) || (member2.getObjectId() == clan.getLeaderId())) - { - return; - } - final int oldPledgeType = member1.getPledgeType(); if (oldPledgeType == _newPledgeType) { return; } + if (clan.getSubPledgeMembersCount(_newPledgeType) >= (_newPledgeType == 0 ? ClanLevelData.getCommonMemberLimit(clan.getLevel()) : ClanLevelData.getEliteMemberLimit(clan.getLevel()))) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_IS_FULL_AND_CANNOT_ACCEPT_ADDITIONAL_CLAN_MEMBERS_AT_THIS_TIME); + sm.addString(_newPledgeType == 0 ? "Common Members" : "Elite Members"); + activeChar.sendPacket(sm); + return; + } + member1.setPledgeType(_newPledgeType); - member2.setPledgeType(oldPledgeType); clan.broadcastClanStatus(); } - } diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java index 39e10f419e..e13e4a9e1a 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java @@ -69,7 +69,7 @@ public final class RequestPledgeSetAcademyMaster implements IClientIncomingPacke L2ClanMember apprenticeMember; L2ClanMember sponsorMember; - if (currentMember.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) + if (currentMember.getPledgeType() == -1) // Academy - Removed. { apprenticeMember = currentMember; sponsorMember = targetMember; diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java index 80069b052e..2a1f0cfaa1 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java @@ -74,7 +74,7 @@ public final class RequestPledgeSetMemberPowerGrade implements IClientIncomingPa return; } - if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) + if (member.getPledgeType() == -1) // Academy - Removed. { // also checked from client side activeChar.sendPacket(SystemMessageId.THAT_PRIVILEGE_CANNOT_BE_GRANTED_TO_A_CLAN_ACADEMY_MEMBER); diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java index a5f1cc702a..a50c6162c1 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java @@ -41,17 +41,7 @@ public class PledgeReceiveMemberInfo implements IClientOutgoingPacket packet.writeS(_member.getName()); packet.writeS(_member.getTitle()); // title packet.writeD(_member.getPowerGrade()); // power - - // clan or subpledge name - if (_member.getPledgeType() != 0) - { - packet.writeS((_member.getClan().getSubPledge(_member.getPledgeType())).getName()); - } - else - { - packet.writeS(_member.getClan().getName()); - } - + packet.writeS(_member.getClan().getName()); packet.writeS(_member.getApprenticeOrSponsorName()); // name of this member's apprentice/sponsor return true; } diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java index d0f43d0ffe..e99251133e 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java @@ -50,7 +50,7 @@ public class PledgeReceiveSubPledgeCreated implements IClientOutgoingPacket private String getLeaderName() { final int LeaderId = _subPledge.getLeaderId(); - if ((_subPledge.getId() == L2Clan.SUBUNIT_ACADEMY) || (LeaderId == 0)) + if ((_subPledge.getId() == -1) || (LeaderId == 0)) { return ""; } diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java index 72efc3684b..51ef406914 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java @@ -20,9 +20,7 @@ import java.util.Collection; import com.l2jmobius.Config; import com.l2jmobius.commons.network.PacketWriter; -import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; import com.l2jmobius.gameserver.model.L2Clan; -import com.l2jmobius.gameserver.model.L2Clan.SubPledge; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.OutgoingPackets; @@ -30,34 +28,28 @@ import com.l2jmobius.gameserver.network.OutgoingPackets; public class PledgeShowMemberListAll implements IClientOutgoingPacket { private final L2Clan _clan; - private final SubPledge _pledge; private final String _name; private final String _leaderName; private final Collection _members; - private final int _pledgeId; - private final boolean _isSubPledge; - private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge, boolean isSubPledge) + private PledgeShowMemberListAll(L2Clan clan, boolean isSubPledge) { _clan = clan; - _pledge = pledge; - _pledgeId = _pledge == null ? 0x00 : _pledge.getId(); - _leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId()); - _name = pledge == null ? clan.getName() : pledge.getName(); + _leaderName = clan.getLeaderName(); + _name = clan.getName(); _members = _clan.getMembers(); - _isSubPledge = isSubPledge; } public static void sendAllTo(L2PcInstance player) { final L2Clan clan = player.getClan(); - if (clan != null) + player.sendPacket(new PledgeShowMemberListAll(clan, true)); + for (L2PcInstance member : clan.getOnlineMembers(0)) { - for (SubPledge subPledge : clan.getAllSubPledges()) + if (member.getPledgeType() != L2Clan.PLEDGE_CLASS_COMMON) { - player.sendPacket(new PledgeShowMemberListAll(clan, subPledge, false)); + player.sendPacket(new PledgeShowMemberListUpdate(member)); } - player.sendPacket(new PledgeShowMemberListAll(clan, null, true)); } } @@ -66,10 +58,10 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket { OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet); - packet.writeD(_isSubPledge ? 0x00 : 0x01); + packet.writeD(0x00); // _isSubPledge packet.writeD(_clan.getId()); packet.writeD(Config.SERVER_ID); - packet.writeD(_pledgeId); + packet.writeD(0x00); packet.writeS(_name); packet.writeS(_leaderName); @@ -88,30 +80,17 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket packet.writeD(_clan.getAllyCrestId()); packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3 packet.writeD(0x00); // Territory castle ID - packet.writeD(_clan.getSubPledgeMembersCount(_pledgeId)); + packet.writeD(_members.size()); for (L2ClanMember m : _members) { - if (m.getPledgeType() != _pledgeId) - { - continue; - } packet.writeS(m.getName()); packet.writeD(m.getLevel()); packet.writeD(m.getClassId()); - final L2PcInstance player = m.getPlayerInstance(); - if (player != null) - { - packet.writeD(player.getAppearance().getSex() ? 1 : 0); // no visible effect - packet.writeD(player.getRace().ordinal()); // packet.writeD(1); - } - else - { - packet.writeD(0x01); // no visible effect - packet.writeD(0x01); // packet.writeD(1); - } + packet.writeD(0); // sex + packet.writeD(0); // race packet.writeD(m.isOnline() ? m.getObjectId() : 0); // objectId = online 0 = offline - packet.writeD(m.getSponsor() != 0 ? 1 : 0); + packet.writeD(0); packet.writeC(m.getOnlineStatus()); } return true; diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java index 6632294bc4..18cab81922 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java @@ -17,7 +17,6 @@ package com.l2jmobius.gameserver.network.serverpackets; import com.l2jmobius.commons.network.PacketWriter; -import com.l2jmobius.gameserver.model.L2Clan; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.OutgoingPackets; @@ -28,14 +27,11 @@ import com.l2jmobius.gameserver.network.OutgoingPackets; public final class PledgeShowMemberListUpdate implements IClientOutgoingPacket { private final int _pledgeType; - private int _hasSponsor; private final String _name; private final int _level; private final int _classId; private final int _objectId; private final int _onlineStatus; - private final int _race; - private final int _sex; public PledgeShowMemberListUpdate(L2PcInstance player) { @@ -49,17 +45,7 @@ public final class PledgeShowMemberListUpdate implements IClientOutgoingPacket _classId = member.getClassId(); _objectId = member.getObjectId(); _pledgeType = member.getPledgeType(); - _race = member.getRaceOrdinal(); - _sex = member.getSex() ? 1 : 0; _onlineStatus = member.getOnlineStatus(); - if (_pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - _hasSponsor = member.getSponsor() != 0 ? 1 : 0; - } - else - { - _hasSponsor = 0; - } } @Override @@ -70,20 +56,11 @@ public final class PledgeShowMemberListUpdate implements IClientOutgoingPacket packet.writeS(_name); packet.writeD(_level); packet.writeD(_classId); - packet.writeD(_sex); - packet.writeD(_race); - if (_onlineStatus > 0) - { - packet.writeD(_objectId); - packet.writeD(_pledgeType); - } - else - { - // when going offline send as 0 - packet.writeD(0); - packet.writeD(0); - } - packet.writeD(_hasSponsor); + packet.writeD(0); // _sex + packet.writeD(0); // _race + packet.writeD(_objectId); + packet.writeD(_pledgeType); + packet.writeD(0); // _hasSponsor packet.writeC(_onlineStatus); return true; } diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java index 722ef00b13..cb38bb706b 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java @@ -47,8 +47,8 @@ public class ExPledgeShowInfoUpdate extends AbstractItemPacket OutgoingPackets.EX_PLEDGE_SHOW_INFO_UPDATE.writeId(packet); packet.writeD(clan.getId()); // Pledge ID packet.writeD(ClanLevelData.getLevelRequirement(clan.getLevel())); // Next level cost - packet.writeD(0); // Max pledge members - packet.writeD(0); // Max elite members + packet.writeD(ClanLevelData.getCommonMemberLimit(clan.getLevel())); // Max pledge members + packet.writeD(ClanLevelData.getEliteMemberLimit(clan.getLevel())); // Max elite members return true; } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-01.htm index 7866e580b8..0b9c6f8ea4 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-01.htm +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-01.htm @@ -4,7 +4,4 @@ - - - \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-03-no.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-03-no.htm deleted file mode 100644 index 96dc7c378a..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-03-no.htm +++ /dev/null @@ -1,3 +0,0 @@ -

-You are not the leader of this clan. You may not raise the level of it. - \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-03.htm deleted file mode 100644 index 0b01be09f0..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-03.htm +++ /dev/null @@ -1,22 +0,0 @@ - -The clan level can be raised. Raising clan level requires the following:
-Level 1 - SP : 20,000 Adena : 650,000
-Level 2 - SP: 100,000 / Adena: 2,500,000
-Level 3 - SP: 350,000 / Item: Blood Mark
-Level 4 - SP: 1,000,000 / Item: Alliance Manifesto
-Level 5 - SP: 2,500,000 / Item: Seal of Aspiration
-Level 6 - Clan Fame: 5,000 / Clan Member: More than 30
-Level 7 - Clan Fame: 10,000 / Clan Member: More than 50
-Level 8 - Clan Fame: 20,000 / Clan Member: More than 80
-Level 9 - Clan Fame: 40,000 / Clan Member: More than 120 / Item: 150 Blood Oaths
-Level 10 - Clan Fame: 40,000 / Clan Member: More than 140 / Item: 5 Blood Alliance
-Level 11 - Clan Fame: 75,000 / Clan Member: More than 170 / Must be Territory Owner
-You can obtain a Blood Mark by killing a Bloody Queen. They are located in Watcher's Tomb or around the Forbidden Gateway.
-To obtain an Alliance Manifesto, meet sir Christopher Rodemai of Giran Castle Town.
-To obtain a Seal of Aspiration, see Sir Gustav Athebaldt in the Town of Oren.
-To obtain Blood Oath, acquire a fortress and prove that the territories are being protected.
-To obtain the Determination of Blood, possess a castle and prove that the territories are being protected and citizens are being taken care of.
- - - - \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-12a.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-12a.htm deleted file mode 100644 index 72358afbf2..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-12a.htm +++ /dev/null @@ -1,6 +0,0 @@ -Create Academy:
-Enter Academy Name:
-
- - - - - - \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-13a.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-13a.htm deleted file mode 100644 index 83be673773..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-13a.htm +++ /dev/null @@ -1,9 +0,0 @@ - -Create Royal Guard Unit:
-Enter Unit Name:
-
-Enter Unit Leader Name:
-
- - - \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-13c.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-13c.htm deleted file mode 100644 index ba999de009..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-13c.htm +++ /dev/null @@ -1,6 +0,0 @@ -Rename First Royal Guard:
-Enter new name for First Royal Guard:
-
- - - - - - \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-14a.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-14a.htm deleted file mode 100644 index 02cc180586..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-14a.htm +++ /dev/null @@ -1,9 +0,0 @@ - -Create Order of Knights Unit:
-Enter Unit Name:
-
-Enter Unit Leader Name:
-
- - - - - \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-14c.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-14c.htm deleted file mode 100644 index 46e27f0cb9..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/9000-14c.htm +++ /dev/null @@ -1,6 +0,0 @@ -Rename first Order of Knights:
-Enter new name for first Order of Knights:
-
- - \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/Clan.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/Clan.java index 7eaf35bf46..e76971e006 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/Clan.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/village_master/Clan/Clan.java @@ -64,13 +64,6 @@ public final class Clan extends AbstractNpcAI LEADER_REQUIRED.put("9000-04.htm", "9000-04-no.htm"); LEADER_REQUIRED.put("9000-05.htm", "9000-05-no.htm"); LEADER_REQUIRED.put("9000-07.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-12a.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-12b.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-13a.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-13b.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-14a.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-14b.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-15.htm", "9000-07-no.htm"); } private Clan() diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java index b92a14b163..d9cef8d3e4 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java @@ -39,11 +39,59 @@ public class ClanLevelData 27300000, 36400000, 46410000, - 0 // Max level (15). + 0 + }; + private final static int[] COMMON_CLAN_MEMBER_LIMIT = + { + 10, + 15, + 20, + 30, + 40, + 42, + 68, + 85, + 94, + 102, + 111, + 120, + 128, + 137, + 145, + 171 + }; + private final static int[] ELITE_CLAN_MEMBER_LIMIT = + { + 0, + 0, + 0, + 0, + 0, + 8, + 12, + 15, + 16, + 18, + 19, + 20, + 22, + 23, + 25, + 29 }; public static int getLevelRequirement(int clanLevel) { return CLAN_LEVEL_REQUIREMENTS[clanLevel]; } + + public static int getCommonMemberLimit(int clanLevel) + { + return COMMON_CLAN_MEMBER_LIMIT[clanLevel]; + } + + public static int getEliteMemberLimit(int clanLevel) + { + return ELITE_CLAN_MEMBER_LIMIT[clanLevel]; + } } diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/L2Clan.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/L2Clan.java index f7daf508ba..793dbb4568 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/L2Clan.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/L2Clan.java @@ -67,7 +67,6 @@ import com.l2jmobius.gameserver.network.SystemMessageId; import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; import com.l2jmobius.gameserver.network.serverpackets.ExSubPledgeSkillAdd; import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; -import com.l2jmobius.gameserver.network.serverpackets.PledgeReceiveSubPledgeCreated; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListDeleteAll; @@ -99,21 +98,10 @@ public class L2Clan implements IIdentifiable, INamable public static final int PENALTY_TYPE_DISMISS_CLAN = 3; /** Leader clan dissolve ally */ public static final int PENALTY_TYPE_DISSOLVE_ALLY = 4; - // Sub-unit types - /** Clan subunit type of Academy */ - public static final int SUBUNIT_ACADEMY = -1; - /** Clan subunit type of Royal Guard A */ - public static final int SUBUNIT_ROYAL1 = 100; - /** Clan subunit type of Royal Guard B */ - public static final int SUBUNIT_ROYAL2 = 200; - /** Clan subunit type of Order of Knights A-1 */ - public static final int SUBUNIT_KNIGHT1 = 1001; - /** Clan subunit type of Order of Knights A-2 */ - public static final int SUBUNIT_KNIGHT2 = 1002; - /** Clan subunit type of Order of Knights B-1 */ - public static final int SUBUNIT_KNIGHT3 = 2001; - /** Clan subunit type of Order of Knights B-2 */ - public static final int SUBUNIT_KNIGHT4 = 2002; + + // Pledge types + public static final int PLEDGE_CLASS_COMMON = 0; + public static final int PLEDGE_CLASS_ELITE = 100; private String _name; private int _clanId; @@ -289,14 +277,14 @@ public class L2Clan implements IIdentifiable, INamable if (exLeader != null) { - exLeader.setPledgeClass(L2ClanMember.calculatePledgeClass(exLeader)); + exLeader.setPledgeClass(PLEDGE_CLASS_COMMON); exLeader.broadcastUserInfo(); exLeader.checkItemRestriction(); } if (newLeader != null) { - newLeader.setPledgeClass(L2ClanMember.calculatePledgeClass(newLeader)); + newLeader.setPledgeClass(PLEDGE_CLASS_COMMON); newLeader.getClanPrivileges().setAll(); if (getLevel() >= SiegeManager.getInstance().getSiegeClanMinLevel()) @@ -377,7 +365,7 @@ public class L2Clan implements IIdentifiable, INamable addClanMember(member); member.setPlayerInstance(player); player.setClan(this); - player.setPledgeClass(L2ClanMember.calculatePledgeClass(player)); + player.setPledgeClass(PLEDGE_CLASS_COMMON); player.sendPacket(new PledgeShowMemberListUpdate(player)); player.sendPacket(new PledgeSkillList(this)); @@ -526,7 +514,6 @@ public class L2Clan implements IIdentifiable, INamable player.setClanJoinExpiryTime(clanJoinExpiryTime); } - player.setPledgeClass(L2ClanMember.calculatePledgeClass(player)); player.broadcastUserInfo(); // disable clan tab player.sendPacket(PledgeShowMemberListDeleteAll.STATIC_PACKET); @@ -563,102 +550,6 @@ public class L2Clan implements IIdentifiable, INamable return result; } - /** - * @param pledgeType the Id of the pledge type. - * @return the maximum number of members allowed for a given {@code pledgeType}. - */ - public int getMaxNrOfMembers(int pledgeType) - { - int limit = 0; - - switch (pledgeType) - { - case 0: - { - switch (_level) - { - case 3: - { - limit = 30; - break; - } - case 2: - { - limit = 20; - break; - } - case 1: - { - limit = 15; - break; - } - case 0: - { - limit = 10; - break; - } - default: - { - limit = 40; - break; - } - } - break; - } - case -1: - { - limit = 20; - break; - } - case 100: - case 200: - { - switch (_level) - { - case 11: - { - limit = 30; - break; - } - default: - { - limit = 20; - break; - } - } - break; - } - case 1001: - case 1002: - case 2001: - case 2002: - { - switch (_level) - { - case 9: - case 10: - case 11: - { - limit = 25; - break; - } - default: - { - limit = 10; - break; - } - } - break; - } - default: - { - break; - } - } - - return limit; - } - /** * @param exclude the object Id to exclude from list. * @return all online members excluding the one with object id {code exclude}. @@ -1841,35 +1732,15 @@ public class L2Clan implements IIdentifiable, INamable return _subPledges.values().toArray(new SubPledge[_subPledges.values().size()]); } - public SubPledge createSubPledge(L2PcInstance player, int pledgeType, int leaderId, String subPledgeName) + public SubPledge createSubPledge(int pledgeType) { - SubPledge subPledge = null; - pledgeType = getAvailablePledgeTypes(pledgeType); - if (pledgeType == 0) + if ((_subPledges == null) || (_subPledges.get(pledgeType) != null)) { - if (pledgeType == SUBUNIT_ACADEMY) - { - player.sendPacket(SystemMessageId.YOUR_CLAN_HAS_ALREADY_ESTABLISHED_A_CLAN_ACADEMY); - } - else - { - player.sendMessage("You can't create any more sub-units of this type"); - } - return null; - } - if (_leader.getObjectId() == leaderId) - { - player.sendMessage("Leader is not correct"); return null; } - // Royal Guard 5000 points per each - // Order of Knights 10000 points per each - if ((pledgeType != -1) && (((_reputationScore < Config.ROYAL_GUARD_COST) && (pledgeType < SUBUNIT_KNIGHT1)) || ((_reputationScore < Config.KNIGHT_UNIT_COST) && (pledgeType > SUBUNIT_ROYAL2)))) - { - player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW); - return null; - } + final String subPledgeName = pledgeType == PLEDGE_CLASS_COMMON ? "COMMON" : "ELITE"; + SubPledge subPledge = null; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement ps = con.prepareStatement("INSERT INTO clan_subpledges (clan_id,sub_pledge_id,name,leader_id) values (?,?,?,?)")) @@ -1877,81 +1748,22 @@ public class L2Clan implements IIdentifiable, INamable ps.setInt(1, _clanId); ps.setInt(2, pledgeType); ps.setString(3, subPledgeName); - ps.setInt(4, pledgeType != -1 ? leaderId : 0); + ps.setInt(4, _leader.getObjectId()); ps.execute(); - subPledge = new SubPledge(pledgeType, subPledgeName, leaderId); + subPledge = new SubPledge(pledgeType, subPledgeName, _leader.getObjectId()); _subPledges.put(pledgeType, subPledge); - - if (pledgeType != -1) - { - // Royal Guard 5000 points per each - // Order of Knights 10000 points per each - if (pledgeType < SUBUNIT_KNIGHT1) - { - setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST, true); - } - else - { - setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST, true); - // TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST - } - } } catch (Exception e) { LOGGER.log(Level.SEVERE, "Error saving sub clan data: " + e.getMessage(), e); } - broadcastToOnlineMembers(new PledgeShowInfoUpdate(_leader.getClan())); - broadcastToOnlineMembers(new PledgeReceiveSubPledgeCreated(subPledge, _leader.getClan())); + // broadcastToOnlineMembers(new PledgeShowInfoUpdate(_leader.getClan())); + // broadcastToOnlineMembers(new PledgeReceiveSubPledgeCreated(subPledge, _leader.getClan())); return subPledge; } - public int getAvailablePledgeTypes(int pledgeType) - { - if (_subPledges.get(pledgeType) != null) - { - // LOGGER.warning("found sub-unit with id: "+pledgeType); - switch (pledgeType) - { - case SUBUNIT_ACADEMY: - { - return 0; - } - case SUBUNIT_ROYAL1: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_ROYAL2); - break; - } - case SUBUNIT_ROYAL2: - { - return 0; - } - case SUBUNIT_KNIGHT1: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT2); - break; - } - case SUBUNIT_KNIGHT2: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT3); - break; - } - case SUBUNIT_KNIGHT3: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT4); - break; - } - case SUBUNIT_KNIGHT4: - { - return 0; - } - } - } - return pledgeType; - } - public void updateSubPledgeInDB(int pledgeType) { try (Connection con = DatabaseFactory.getConnection(); @@ -2243,18 +2055,11 @@ public class L2Clan implements IIdentifiable, INamable activeChar.sendPacket(SystemMessageId.IN_ORDER_TO_JOIN_THE_CLAN_ACADEMY_YOU_MUST_BE_UNAFFILIATED_WITH_A_CLAN_AND_BE_AN_UNAWAKENED_CHARACTER_LV_84_OR_BELOW_FPR_BOTH_MAIN_AND_SUBCLASS); return false; } - if (getSubPledgeMembersCount(pledgeType) >= getMaxNrOfMembers(pledgeType)) + if (getSubPledgeMembersCount(pledgeType) >= (pledgeType == 0 ? ClanLevelData.getCommonMemberLimit(_level) : ClanLevelData.getEliteMemberLimit(_level))) { - if (pledgeType == 0) - { - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_IS_FULL_AND_CANNOT_ACCEPT_ADDITIONAL_CLAN_MEMBERS_AT_THIS_TIME); - sm.addString(_name); - activeChar.sendPacket(sm); - } - else - { - activeChar.sendPacket(SystemMessageId.THIS_CLAN_IS_FULL_AND_CANNOT_ACCEPT_NEW_MEMBERS_AT_THIS_TIME); - } + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_IS_FULL_AND_CANNOT_ACCEPT_ADDITIONAL_CLAN_MEMBERS_AT_THIS_TIME); + sm.addString(_name); + activeChar.sendPacket(sm); return false; } return true; diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/L2ClanMember.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/L2ClanMember.java index 8655fe5918..441cef9ef8 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/L2ClanMember.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/L2ClanMember.java @@ -714,6 +714,10 @@ public class L2ClanMember break; } case 11: + case 12: + case 13: + case 14: + case 15: { switch (player.getPledgeType()) { diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 26abe5ad5d..fd6244cfa0 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -1040,25 +1040,22 @@ public final class L2PcInstance extends L2Playable } if ((clan != null) && (targetClan != null)) { - if ((target.getPledgeType() != L2Clan.SUBUNIT_ACADEMY) && (getPledgeType() != L2Clan.SUBUNIT_ACADEMY)) + ClanWar war = clan.getWarWith(target.getClan().getId()); + if (war != null) { - ClanWar war = clan.getWarWith(target.getClan().getId()); - if (war != null) + switch (war.getState()) { - switch (war.getState()) + case DECLARATION: + case BLOOD_DECLARATION: { - case DECLARATION: - case BLOOD_DECLARATION: - { - result |= RelationChanged.RELATION_DECLARED_WAR; - break; - } - case MUTUAL: - { - result |= RelationChanged.RELATION_DECLARED_WAR; - result |= RelationChanged.RELATION_MUTUAL_WAR; - break; - } + result |= RelationChanged.RELATION_DECLARED_WAR; + break; + } + case MUTUAL: + { + result |= RelationChanged.RELATION_DECLARED_WAR; + result |= RelationChanged.RELATION_MUTUAL_WAR; + break; } } } @@ -9036,6 +9033,10 @@ public final class L2PcInstance extends L2Playable public void setPledgeType(int typeId) { + if (_clan != null) + { + _clan.createSubPledge(typeId); + } _pledgeType = typeId; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java index 69506f563b..a741cb2f87 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java @@ -30,7 +30,6 @@ import com.l2jmobius.gameserver.instancemanager.FortManager; import com.l2jmobius.gameserver.instancemanager.FortSiegeManager; import com.l2jmobius.gameserver.instancemanager.SiegeManager; import com.l2jmobius.gameserver.model.L2Clan; -import com.l2jmobius.gameserver.model.L2Clan.SubPledge; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.L2SkillLearn; import com.l2jmobius.gameserver.model.actor.L2Character; @@ -46,8 +45,6 @@ import com.l2jmobius.gameserver.network.serverpackets.MagicSkillLaunched; import com.l2jmobius.gameserver.network.serverpackets.MagicSkillUse; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; -import com.l2jmobius.gameserver.network.serverpackets.UserInfo; -import com.l2jmobius.gameserver.util.Util; /** * This class ... @@ -124,51 +121,6 @@ public class L2VillageMasterInstance extends L2NpcInstance ClanTable.getInstance().createClan(player, cmdParams); } - else if (actualCommand.equalsIgnoreCase("create_academy")) - { - if (cmdParams.isEmpty()) - { - return; - } - - createSubPledge(player, cmdParams, null, L2Clan.SUBUNIT_ACADEMY, 5); - } - else if (actualCommand.equalsIgnoreCase("rename_pledge")) - { - if (cmdParams.isEmpty() || cmdParams2.isEmpty()) - { - return; - } - - renameSubPledge(player, Integer.parseInt(cmdParams), cmdParams2); - } - else if (actualCommand.equalsIgnoreCase("create_royal")) - { - if (cmdParams.isEmpty()) - { - return; - } - - createSubPledge(player, cmdParams, cmdParams2, L2Clan.SUBUNIT_ROYAL1, 6); - } - else if (actualCommand.equalsIgnoreCase("create_knight")) - { - if (cmdParams.isEmpty()) - { - return; - } - - createSubPledge(player, cmdParams, cmdParams2, L2Clan.SUBUNIT_KNIGHT1, 7); - } - else if (actualCommand.equalsIgnoreCase("assign_subpl_leader")) - { - if (cmdParams.isEmpty()) - { - return; - } - - assignSubPledgeLeader(player, cmdParams, cmdParams2); - } else if (actualCommand.equalsIgnoreCase("create_ally")) { if (cmdParams.isEmpty()) @@ -371,207 +323,6 @@ public class L2VillageMasterInstance extends L2NpcInstance clan.updateClanInDB(); } - private static void createSubPledge(L2PcInstance player, String clanName, String leaderName, int pledgeType, int minClanLvl) - { - if (!player.isClanLeader()) - { - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); - return; - } - - final L2Clan clan = player.getClan(); - if (clan.getLevel() < minClanLvl) - { - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - player.sendPacket(SystemMessageId.TO_ESTABLISH_A_CLAN_ACADEMY_YOUR_CLAN_MUST_BE_LEVEL_5_OR_HIGHER); - } - else - { - player.sendPacket(SystemMessageId.THE_CONDITIONS_NECESSARY_TO_CREATE_A_MILITARY_UNIT_HAVE_NOT_BEEN_MET); - } - - return; - } - if (!Util.isAlphaNumeric(clanName) || !isValidName(clanName) || (2 > clanName.length())) - { - player.sendPacket(SystemMessageId.CLAN_NAME_IS_INVALID); - return; - } - if (clanName.length() > 16) - { - player.sendPacket(SystemMessageId.CLAN_NAME_S_LENGTH_IS_INCORRECT); - return; - } - - for (L2Clan tempClan : ClanTable.getInstance().getClans()) - { - if (tempClan.getSubPledge(clanName) != null) - { - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_ALREADY_EXISTS); - sm.addString(clanName); - player.sendPacket(sm); - } - else - { - player.sendPacket(SystemMessageId.ANOTHER_MILITARY_UNIT_IS_ALREADY_USING_THAT_NAME_PLEASE_ENTER_A_DIFFERENT_NAME); - } - - return; - } - } - - if (pledgeType != L2Clan.SUBUNIT_ACADEMY) - { - if ((clan.getClanMember(leaderName) == null) || (clan.getClanMember(leaderName).getPledgeType() != 0)) - { - if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) - { - player.sendPacket(SystemMessageId.THE_CAPTAIN_OF_THE_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED); - } - else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) - { - player.sendPacket(SystemMessageId.THE_ROYAL_GUARD_CAPTAIN_CANNOT_BE_APPOINTED); - } - - return; - } - } - - final int leaderId = pledgeType != L2Clan.SUBUNIT_ACADEMY ? clan.getClanMember(leaderName).getObjectId() : 0; - - if (clan.createSubPledge(player, pledgeType, leaderId, clanName) == null) - { - return; - } - - SystemMessage sm; - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.CONGRATULATIONS_THE_S1_S_CLAN_ACADEMY_HAS_BEEN_CREATED); - sm.addString(player.getClan().getName()); - } - else if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.THE_KNIGHTS_OF_S1_HAVE_BEEN_CREATED); - sm.addString(player.getClan().getName()); - } - else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.THE_ROYAL_GUARD_OF_S1_HAVE_BEEN_CREATED); - sm.addString(player.getClan().getName()); - } - else - { - sm = SystemMessage.getSystemMessage(SystemMessageId.YOUR_CLAN_HAS_BEEN_CREATED); - } - player.sendPacket(sm); - - if (pledgeType != L2Clan.SUBUNIT_ACADEMY) - { - final L2ClanMember leaderSubPledge = clan.getClanMember(leaderName); - final L2PcInstance leaderPlayer = leaderSubPledge.getPlayerInstance(); - if (leaderPlayer != null) - { - leaderPlayer.setPledgeClass(L2ClanMember.calculatePledgeClass(leaderPlayer)); - leaderPlayer.sendPacket(new UserInfo(leaderPlayer)); - } - } - } - - private static void renameSubPledge(L2PcInstance player, int pledgeType, String pledgeName) - { - if (!player.isClanLeader()) - { - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); - return; - } - - final L2Clan clan = player.getClan(); - final SubPledge subPledge = player.getClan().getSubPledge(pledgeType); - - if (subPledge == null) - { - player.sendMessage("Pledge don't exists."); - return; - } - if (!Util.isAlphaNumeric(pledgeName) || !isValidName(pledgeName) || (2 > pledgeName.length())) - { - player.sendPacket(SystemMessageId.CLAN_NAME_IS_INVALID); - return; - } - if (pledgeName.length() > 16) - { - player.sendPacket(SystemMessageId.CLAN_NAME_S_LENGTH_IS_INCORRECT); - return; - } - - subPledge.setName(pledgeName); - clan.updateSubPledgeInDB(subPledge.getId()); - clan.broadcastClanStatus(); - player.sendMessage("Pledge name changed."); - } - - private static void assignSubPledgeLeader(L2PcInstance player, String clanName, String leaderName) - { - if (!player.isClanLeader()) - { - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); - return; - } - if (leaderName.length() > 16) - { - player.sendPacket(SystemMessageId.YOUR_TITLE_CANNOT_EXCEED_16_CHARACTERS_IN_LENGTH_PLEASE_TRY_AGAIN); - return; - } - if (player.getName().equals(leaderName)) - { - player.sendPacket(SystemMessageId.THE_ROYAL_GUARD_CAPTAIN_CANNOT_BE_APPOINTED); - return; - } - - final L2Clan clan = player.getClan(); - final SubPledge subPledge = player.getClan().getSubPledge(clanName); - - if ((null == subPledge) || (subPledge.getId() == L2Clan.SUBUNIT_ACADEMY)) - { - player.sendPacket(SystemMessageId.CLAN_NAME_IS_INVALID); - return; - } - if ((clan.getClanMember(leaderName) == null) || (clan.getClanMember(leaderName).getPledgeType() != 0)) - { - if (subPledge.getId() >= L2Clan.SUBUNIT_KNIGHT1) - { - player.sendPacket(SystemMessageId.THE_CAPTAIN_OF_THE_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED); - } - else if (subPledge.getId() >= L2Clan.SUBUNIT_ROYAL1) - { - player.sendPacket(SystemMessageId.THE_ROYAL_GUARD_CAPTAIN_CANNOT_BE_APPOINTED); - } - - return; - } - - subPledge.setLeaderId(clan.getClanMember(leaderName).getObjectId()); - clan.updateSubPledgeInDB(subPledge.getId()); - - final L2ClanMember leaderSubPledge = clan.getClanMember(leaderName); - final L2PcInstance leaderPlayer = leaderSubPledge.getPlayerInstance(); - if (leaderPlayer != null) - { - leaderPlayer.setPledgeClass(L2ClanMember.calculatePledgeClass(leaderPlayer)); - leaderPlayer.sendPacket(new UserInfo(leaderPlayer)); - } - - clan.broadcastClanStatus(); - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_BEEN_SELECTED_AS_THE_CAPTAIN_OF_S2); - sm.addString(leaderName); - sm.addString(clanName); - clan.broadcastToOnlineMembers(sm); - } - /** * this displays PledgeSkillList to the player. * @param player diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java index 901acc075d..c85bb581a0 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java @@ -98,7 +98,7 @@ public final class RequestAnswerJoinPledge implements IClientIncomingPacket activeChar.sendPacket(new JoinPledge(requestor.getClanId())); activeChar.setPledgeType(pledgeType); - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) + if (pledgeType == -1) // Academy - Removed. { activeChar.setPowerGrade(9); // academy activeChar.setLvlJoinedAcademy(activeChar.getLevel()); diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java index 4cc9577dbb..648d3266dc 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java @@ -17,11 +17,14 @@ package com.l2jmobius.gameserver.network.clientpackets; import com.l2jmobius.commons.network.PacketReader; +import com.l2jmobius.gameserver.data.xml.impl.ClanLevelData; import com.l2jmobius.gameserver.model.ClanPrivilege; import com.l2jmobius.gameserver.model.L2Clan; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.L2GameClient; +import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Format: (ch) dSdS @@ -29,29 +32,22 @@ import com.l2jmobius.gameserver.network.L2GameClient; */ public final class RequestPledgeReorganizeMember implements IClientIncomingPacket { - private int _isMemberSelected; private String _memberName; private int _newPledgeType; - private String _selectedMember; @Override public boolean read(L2GameClient client, PacketReader packet) { - _isMemberSelected = packet.readD(); + packet.readD(); // _isMemberSelected _memberName = packet.readS(); _newPledgeType = packet.readD(); - _selectedMember = packet.readS(); + packet.readS(); // _selectedMember return true; } @Override public void run(L2GameClient client) { - if (_isMemberSelected == 0) - { - return; - } - final L2PcInstance activeChar = client.getActiveChar(); if (activeChar == null) { @@ -75,21 +71,21 @@ public final class RequestPledgeReorganizeMember implements IClientIncomingPacke return; } - final L2ClanMember member2 = clan.getClanMember(_selectedMember); - if ((member2 == null) || (member2.getObjectId() == clan.getLeaderId())) - { - return; - } - final int oldPledgeType = member1.getPledgeType(); if (oldPledgeType == _newPledgeType) { return; } + if (clan.getSubPledgeMembersCount(_newPledgeType) >= (_newPledgeType == 0 ? ClanLevelData.getCommonMemberLimit(clan.getLevel()) : ClanLevelData.getEliteMemberLimit(clan.getLevel()))) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_IS_FULL_AND_CANNOT_ACCEPT_ADDITIONAL_CLAN_MEMBERS_AT_THIS_TIME); + sm.addString(_newPledgeType == 0 ? "Common Members" : "Elite Members"); + activeChar.sendPacket(sm); + return; + } + member1.setPledgeType(_newPledgeType); - member2.setPledgeType(oldPledgeType); clan.broadcastClanStatus(); } - } diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java index 39e10f419e..e13e4a9e1a 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java @@ -69,7 +69,7 @@ public final class RequestPledgeSetAcademyMaster implements IClientIncomingPacke L2ClanMember apprenticeMember; L2ClanMember sponsorMember; - if (currentMember.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) + if (currentMember.getPledgeType() == -1) // Academy - Removed. { apprenticeMember = currentMember; sponsorMember = targetMember; diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java index 80069b052e..2a1f0cfaa1 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java @@ -74,7 +74,7 @@ public final class RequestPledgeSetMemberPowerGrade implements IClientIncomingPa return; } - if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) + if (member.getPledgeType() == -1) // Academy - Removed. { // also checked from client side activeChar.sendPacket(SystemMessageId.THAT_PRIVILEGE_CANNOT_BE_GRANTED_TO_A_CLAN_ACADEMY_MEMBER); diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java index a5f1cc702a..a50c6162c1 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java @@ -41,17 +41,7 @@ public class PledgeReceiveMemberInfo implements IClientOutgoingPacket packet.writeS(_member.getName()); packet.writeS(_member.getTitle()); // title packet.writeD(_member.getPowerGrade()); // power - - // clan or subpledge name - if (_member.getPledgeType() != 0) - { - packet.writeS((_member.getClan().getSubPledge(_member.getPledgeType())).getName()); - } - else - { - packet.writeS(_member.getClan().getName()); - } - + packet.writeS(_member.getClan().getName()); packet.writeS(_member.getApprenticeOrSponsorName()); // name of this member's apprentice/sponsor return true; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java index d0f43d0ffe..e99251133e 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java @@ -50,7 +50,7 @@ public class PledgeReceiveSubPledgeCreated implements IClientOutgoingPacket private String getLeaderName() { final int LeaderId = _subPledge.getLeaderId(); - if ((_subPledge.getId() == L2Clan.SUBUNIT_ACADEMY) || (LeaderId == 0)) + if ((_subPledge.getId() == -1) || (LeaderId == 0)) { return ""; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java index 72efc3684b..51ef406914 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java @@ -20,9 +20,7 @@ import java.util.Collection; import com.l2jmobius.Config; import com.l2jmobius.commons.network.PacketWriter; -import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; import com.l2jmobius.gameserver.model.L2Clan; -import com.l2jmobius.gameserver.model.L2Clan.SubPledge; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.OutgoingPackets; @@ -30,34 +28,28 @@ import com.l2jmobius.gameserver.network.OutgoingPackets; public class PledgeShowMemberListAll implements IClientOutgoingPacket { private final L2Clan _clan; - private final SubPledge _pledge; private final String _name; private final String _leaderName; private final Collection _members; - private final int _pledgeId; - private final boolean _isSubPledge; - private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge, boolean isSubPledge) + private PledgeShowMemberListAll(L2Clan clan, boolean isSubPledge) { _clan = clan; - _pledge = pledge; - _pledgeId = _pledge == null ? 0x00 : _pledge.getId(); - _leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId()); - _name = pledge == null ? clan.getName() : pledge.getName(); + _leaderName = clan.getLeaderName(); + _name = clan.getName(); _members = _clan.getMembers(); - _isSubPledge = isSubPledge; } public static void sendAllTo(L2PcInstance player) { final L2Clan clan = player.getClan(); - if (clan != null) + player.sendPacket(new PledgeShowMemberListAll(clan, true)); + for (L2PcInstance member : clan.getOnlineMembers(0)) { - for (SubPledge subPledge : clan.getAllSubPledges()) + if (member.getPledgeType() != L2Clan.PLEDGE_CLASS_COMMON) { - player.sendPacket(new PledgeShowMemberListAll(clan, subPledge, false)); + player.sendPacket(new PledgeShowMemberListUpdate(member)); } - player.sendPacket(new PledgeShowMemberListAll(clan, null, true)); } } @@ -66,10 +58,10 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket { OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet); - packet.writeD(_isSubPledge ? 0x00 : 0x01); + packet.writeD(0x00); // _isSubPledge packet.writeD(_clan.getId()); packet.writeD(Config.SERVER_ID); - packet.writeD(_pledgeId); + packet.writeD(0x00); packet.writeS(_name); packet.writeS(_leaderName); @@ -88,30 +80,17 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket packet.writeD(_clan.getAllyCrestId()); packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3 packet.writeD(0x00); // Territory castle ID - packet.writeD(_clan.getSubPledgeMembersCount(_pledgeId)); + packet.writeD(_members.size()); for (L2ClanMember m : _members) { - if (m.getPledgeType() != _pledgeId) - { - continue; - } packet.writeS(m.getName()); packet.writeD(m.getLevel()); packet.writeD(m.getClassId()); - final L2PcInstance player = m.getPlayerInstance(); - if (player != null) - { - packet.writeD(player.getAppearance().getSex() ? 1 : 0); // no visible effect - packet.writeD(player.getRace().ordinal()); // packet.writeD(1); - } - else - { - packet.writeD(0x01); // no visible effect - packet.writeD(0x01); // packet.writeD(1); - } + packet.writeD(0); // sex + packet.writeD(0); // race packet.writeD(m.isOnline() ? m.getObjectId() : 0); // objectId = online 0 = offline - packet.writeD(m.getSponsor() != 0 ? 1 : 0); + packet.writeD(0); packet.writeC(m.getOnlineStatus()); } return true; diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java index 6632294bc4..18cab81922 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java @@ -17,7 +17,6 @@ package com.l2jmobius.gameserver.network.serverpackets; import com.l2jmobius.commons.network.PacketWriter; -import com.l2jmobius.gameserver.model.L2Clan; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.OutgoingPackets; @@ -28,14 +27,11 @@ import com.l2jmobius.gameserver.network.OutgoingPackets; public final class PledgeShowMemberListUpdate implements IClientOutgoingPacket { private final int _pledgeType; - private int _hasSponsor; private final String _name; private final int _level; private final int _classId; private final int _objectId; private final int _onlineStatus; - private final int _race; - private final int _sex; public PledgeShowMemberListUpdate(L2PcInstance player) { @@ -49,17 +45,7 @@ public final class PledgeShowMemberListUpdate implements IClientOutgoingPacket _classId = member.getClassId(); _objectId = member.getObjectId(); _pledgeType = member.getPledgeType(); - _race = member.getRaceOrdinal(); - _sex = member.getSex() ? 1 : 0; _onlineStatus = member.getOnlineStatus(); - if (_pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - _hasSponsor = member.getSponsor() != 0 ? 1 : 0; - } - else - { - _hasSponsor = 0; - } } @Override @@ -70,20 +56,11 @@ public final class PledgeShowMemberListUpdate implements IClientOutgoingPacket packet.writeS(_name); packet.writeD(_level); packet.writeD(_classId); - packet.writeD(_sex); - packet.writeD(_race); - if (_onlineStatus > 0) - { - packet.writeD(_objectId); - packet.writeD(_pledgeType); - } - else - { - // when going offline send as 0 - packet.writeD(0); - packet.writeD(0); - } - packet.writeD(_hasSponsor); + packet.writeD(0); // _sex + packet.writeD(0); // _race + packet.writeD(_objectId); + packet.writeD(_pledgeType); + packet.writeD(0); // _hasSponsor packet.writeC(_onlineStatus); return true; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java index 722ef00b13..cb38bb706b 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java @@ -47,8 +47,8 @@ public class ExPledgeShowInfoUpdate extends AbstractItemPacket OutgoingPackets.EX_PLEDGE_SHOW_INFO_UPDATE.writeId(packet); packet.writeD(clan.getId()); // Pledge ID packet.writeD(ClanLevelData.getLevelRequirement(clan.getLevel())); // Next level cost - packet.writeD(0); // Max pledge members - packet.writeD(0); // Max elite members + packet.writeD(ClanLevelData.getCommonMemberLimit(clan.getLevel())); // Max pledge members + packet.writeD(ClanLevelData.getEliteMemberLimit(clan.getLevel())); // Max elite members return true; } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-01.htm index 7866e580b8..0b9c6f8ea4 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-01.htm +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-01.htm @@ -4,7 +4,4 @@ - - - \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-03-no.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-03-no.htm deleted file mode 100644 index 96dc7c378a..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-03-no.htm +++ /dev/null @@ -1,3 +0,0 @@ -

-You are not the leader of this clan. You may not raise the level of it. - \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-03.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-03.htm deleted file mode 100644 index 0b01be09f0..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-03.htm +++ /dev/null @@ -1,22 +0,0 @@ - -The clan level can be raised. Raising clan level requires the following:
-Level 1 - SP : 20,000 Adena : 650,000
-Level 2 - SP: 100,000 / Adena: 2,500,000
-Level 3 - SP: 350,000 / Item: Blood Mark
-Level 4 - SP: 1,000,000 / Item: Alliance Manifesto
-Level 5 - SP: 2,500,000 / Item: Seal of Aspiration
-Level 6 - Clan Fame: 5,000 / Clan Member: More than 30
-Level 7 - Clan Fame: 10,000 / Clan Member: More than 50
-Level 8 - Clan Fame: 20,000 / Clan Member: More than 80
-Level 9 - Clan Fame: 40,000 / Clan Member: More than 120 / Item: 150 Blood Oaths
-Level 10 - Clan Fame: 40,000 / Clan Member: More than 140 / Item: 5 Blood Alliance
-Level 11 - Clan Fame: 75,000 / Clan Member: More than 170 / Must be Territory Owner
-You can obtain a Blood Mark by killing a Bloody Queen. They are located in Watcher's Tomb or around the Forbidden Gateway.
-To obtain an Alliance Manifesto, meet sir Christopher Rodemai of Giran Castle Town.
-To obtain a Seal of Aspiration, see Sir Gustav Athebaldt in the Town of Oren.
-To obtain Blood Oath, acquire a fortress and prove that the territories are being protected.
-To obtain the Determination of Blood, possess a castle and prove that the territories are being protected and citizens are being taken care of.
- - - - \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-12a.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-12a.htm deleted file mode 100644 index 72358afbf2..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-12a.htm +++ /dev/null @@ -1,6 +0,0 @@ -Create Academy:
-Enter Academy Name:
-
- - - - - - \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-13a.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-13a.htm deleted file mode 100644 index 83be673773..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-13a.htm +++ /dev/null @@ -1,9 +0,0 @@ - -Create Royal Guard Unit:
-Enter Unit Name:
-
-Enter Unit Leader Name:
-
- - - \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-13c.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-13c.htm deleted file mode 100644 index ba999de009..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-13c.htm +++ /dev/null @@ -1,6 +0,0 @@ -Rename First Royal Guard:
-Enter new name for First Royal Guard:
-
- - - - - - \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-14a.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-14a.htm deleted file mode 100644 index 02cc180586..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-14a.htm +++ /dev/null @@ -1,9 +0,0 @@ - -Create Order of Knights Unit:
-Enter Unit Name:
-
-Enter Unit Leader Name:
-
- - - - - \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-14c.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-14c.htm deleted file mode 100644 index 46e27f0cb9..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/9000-14c.htm +++ /dev/null @@ -1,6 +0,0 @@ -Rename first Order of Knights:
-Enter new name for first Order of Knights:
-
- - \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/Clan.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/Clan.java index 7eaf35bf46..e76971e006 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/Clan.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/village_master/Clan/Clan.java @@ -64,13 +64,6 @@ public final class Clan extends AbstractNpcAI LEADER_REQUIRED.put("9000-04.htm", "9000-04-no.htm"); LEADER_REQUIRED.put("9000-05.htm", "9000-05-no.htm"); LEADER_REQUIRED.put("9000-07.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-12a.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-12b.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-13a.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-13b.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-14a.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-14b.htm", "9000-07-no.htm"); - LEADER_REQUIRED.put("9000-15.htm", "9000-07-no.htm"); } private Clan() diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java index b92a14b163..d9cef8d3e4 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/data/xml/impl/ClanLevelData.java @@ -39,11 +39,59 @@ public class ClanLevelData 27300000, 36400000, 46410000, - 0 // Max level (15). + 0 + }; + private final static int[] COMMON_CLAN_MEMBER_LIMIT = + { + 10, + 15, + 20, + 30, + 40, + 42, + 68, + 85, + 94, + 102, + 111, + 120, + 128, + 137, + 145, + 171 + }; + private final static int[] ELITE_CLAN_MEMBER_LIMIT = + { + 0, + 0, + 0, + 0, + 0, + 8, + 12, + 15, + 16, + 18, + 19, + 20, + 22, + 23, + 25, + 29 }; public static int getLevelRequirement(int clanLevel) { return CLAN_LEVEL_REQUIREMENTS[clanLevel]; } + + public static int getCommonMemberLimit(int clanLevel) + { + return COMMON_CLAN_MEMBER_LIMIT[clanLevel]; + } + + public static int getEliteMemberLimit(int clanLevel) + { + return ELITE_CLAN_MEMBER_LIMIT[clanLevel]; + } } diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/L2Clan.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/L2Clan.java index f7daf508ba..793dbb4568 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/L2Clan.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/L2Clan.java @@ -67,7 +67,6 @@ import com.l2jmobius.gameserver.network.SystemMessageId; import com.l2jmobius.gameserver.network.serverpackets.CreatureSay; import com.l2jmobius.gameserver.network.serverpackets.ExSubPledgeSkillAdd; import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; -import com.l2jmobius.gameserver.network.serverpackets.PledgeReceiveSubPledgeCreated; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListDeleteAll; @@ -99,21 +98,10 @@ public class L2Clan implements IIdentifiable, INamable public static final int PENALTY_TYPE_DISMISS_CLAN = 3; /** Leader clan dissolve ally */ public static final int PENALTY_TYPE_DISSOLVE_ALLY = 4; - // Sub-unit types - /** Clan subunit type of Academy */ - public static final int SUBUNIT_ACADEMY = -1; - /** Clan subunit type of Royal Guard A */ - public static final int SUBUNIT_ROYAL1 = 100; - /** Clan subunit type of Royal Guard B */ - public static final int SUBUNIT_ROYAL2 = 200; - /** Clan subunit type of Order of Knights A-1 */ - public static final int SUBUNIT_KNIGHT1 = 1001; - /** Clan subunit type of Order of Knights A-2 */ - public static final int SUBUNIT_KNIGHT2 = 1002; - /** Clan subunit type of Order of Knights B-1 */ - public static final int SUBUNIT_KNIGHT3 = 2001; - /** Clan subunit type of Order of Knights B-2 */ - public static final int SUBUNIT_KNIGHT4 = 2002; + + // Pledge types + public static final int PLEDGE_CLASS_COMMON = 0; + public static final int PLEDGE_CLASS_ELITE = 100; private String _name; private int _clanId; @@ -289,14 +277,14 @@ public class L2Clan implements IIdentifiable, INamable if (exLeader != null) { - exLeader.setPledgeClass(L2ClanMember.calculatePledgeClass(exLeader)); + exLeader.setPledgeClass(PLEDGE_CLASS_COMMON); exLeader.broadcastUserInfo(); exLeader.checkItemRestriction(); } if (newLeader != null) { - newLeader.setPledgeClass(L2ClanMember.calculatePledgeClass(newLeader)); + newLeader.setPledgeClass(PLEDGE_CLASS_COMMON); newLeader.getClanPrivileges().setAll(); if (getLevel() >= SiegeManager.getInstance().getSiegeClanMinLevel()) @@ -377,7 +365,7 @@ public class L2Clan implements IIdentifiable, INamable addClanMember(member); member.setPlayerInstance(player); player.setClan(this); - player.setPledgeClass(L2ClanMember.calculatePledgeClass(player)); + player.setPledgeClass(PLEDGE_CLASS_COMMON); player.sendPacket(new PledgeShowMemberListUpdate(player)); player.sendPacket(new PledgeSkillList(this)); @@ -526,7 +514,6 @@ public class L2Clan implements IIdentifiable, INamable player.setClanJoinExpiryTime(clanJoinExpiryTime); } - player.setPledgeClass(L2ClanMember.calculatePledgeClass(player)); player.broadcastUserInfo(); // disable clan tab player.sendPacket(PledgeShowMemberListDeleteAll.STATIC_PACKET); @@ -563,102 +550,6 @@ public class L2Clan implements IIdentifiable, INamable return result; } - /** - * @param pledgeType the Id of the pledge type. - * @return the maximum number of members allowed for a given {@code pledgeType}. - */ - public int getMaxNrOfMembers(int pledgeType) - { - int limit = 0; - - switch (pledgeType) - { - case 0: - { - switch (_level) - { - case 3: - { - limit = 30; - break; - } - case 2: - { - limit = 20; - break; - } - case 1: - { - limit = 15; - break; - } - case 0: - { - limit = 10; - break; - } - default: - { - limit = 40; - break; - } - } - break; - } - case -1: - { - limit = 20; - break; - } - case 100: - case 200: - { - switch (_level) - { - case 11: - { - limit = 30; - break; - } - default: - { - limit = 20; - break; - } - } - break; - } - case 1001: - case 1002: - case 2001: - case 2002: - { - switch (_level) - { - case 9: - case 10: - case 11: - { - limit = 25; - break; - } - default: - { - limit = 10; - break; - } - } - break; - } - default: - { - break; - } - } - - return limit; - } - /** * @param exclude the object Id to exclude from list. * @return all online members excluding the one with object id {code exclude}. @@ -1841,35 +1732,15 @@ public class L2Clan implements IIdentifiable, INamable return _subPledges.values().toArray(new SubPledge[_subPledges.values().size()]); } - public SubPledge createSubPledge(L2PcInstance player, int pledgeType, int leaderId, String subPledgeName) + public SubPledge createSubPledge(int pledgeType) { - SubPledge subPledge = null; - pledgeType = getAvailablePledgeTypes(pledgeType); - if (pledgeType == 0) + if ((_subPledges == null) || (_subPledges.get(pledgeType) != null)) { - if (pledgeType == SUBUNIT_ACADEMY) - { - player.sendPacket(SystemMessageId.YOUR_CLAN_HAS_ALREADY_ESTABLISHED_A_CLAN_ACADEMY); - } - else - { - player.sendMessage("You can't create any more sub-units of this type"); - } - return null; - } - if (_leader.getObjectId() == leaderId) - { - player.sendMessage("Leader is not correct"); return null; } - // Royal Guard 5000 points per each - // Order of Knights 10000 points per each - if ((pledgeType != -1) && (((_reputationScore < Config.ROYAL_GUARD_COST) && (pledgeType < SUBUNIT_KNIGHT1)) || ((_reputationScore < Config.KNIGHT_UNIT_COST) && (pledgeType > SUBUNIT_ROYAL2)))) - { - player.sendPacket(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW); - return null; - } + final String subPledgeName = pledgeType == PLEDGE_CLASS_COMMON ? "COMMON" : "ELITE"; + SubPledge subPledge = null; try (Connection con = DatabaseFactory.getConnection(); PreparedStatement ps = con.prepareStatement("INSERT INTO clan_subpledges (clan_id,sub_pledge_id,name,leader_id) values (?,?,?,?)")) @@ -1877,81 +1748,22 @@ public class L2Clan implements IIdentifiable, INamable ps.setInt(1, _clanId); ps.setInt(2, pledgeType); ps.setString(3, subPledgeName); - ps.setInt(4, pledgeType != -1 ? leaderId : 0); + ps.setInt(4, _leader.getObjectId()); ps.execute(); - subPledge = new SubPledge(pledgeType, subPledgeName, leaderId); + subPledge = new SubPledge(pledgeType, subPledgeName, _leader.getObjectId()); _subPledges.put(pledgeType, subPledge); - - if (pledgeType != -1) - { - // Royal Guard 5000 points per each - // Order of Knights 10000 points per each - if (pledgeType < SUBUNIT_KNIGHT1) - { - setReputationScore(_reputationScore - Config.ROYAL_GUARD_COST, true); - } - else - { - setReputationScore(_reputationScore - Config.KNIGHT_UNIT_COST, true); - // TODO: clan lvl9 or more can reinforce knights cheaper if first knight unit already created, use Config.KNIGHT_REINFORCE_COST - } - } } catch (Exception e) { LOGGER.log(Level.SEVERE, "Error saving sub clan data: " + e.getMessage(), e); } - broadcastToOnlineMembers(new PledgeShowInfoUpdate(_leader.getClan())); - broadcastToOnlineMembers(new PledgeReceiveSubPledgeCreated(subPledge, _leader.getClan())); + // broadcastToOnlineMembers(new PledgeShowInfoUpdate(_leader.getClan())); + // broadcastToOnlineMembers(new PledgeReceiveSubPledgeCreated(subPledge, _leader.getClan())); return subPledge; } - public int getAvailablePledgeTypes(int pledgeType) - { - if (_subPledges.get(pledgeType) != null) - { - // LOGGER.warning("found sub-unit with id: "+pledgeType); - switch (pledgeType) - { - case SUBUNIT_ACADEMY: - { - return 0; - } - case SUBUNIT_ROYAL1: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_ROYAL2); - break; - } - case SUBUNIT_ROYAL2: - { - return 0; - } - case SUBUNIT_KNIGHT1: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT2); - break; - } - case SUBUNIT_KNIGHT2: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT3); - break; - } - case SUBUNIT_KNIGHT3: - { - pledgeType = getAvailablePledgeTypes(SUBUNIT_KNIGHT4); - break; - } - case SUBUNIT_KNIGHT4: - { - return 0; - } - } - } - return pledgeType; - } - public void updateSubPledgeInDB(int pledgeType) { try (Connection con = DatabaseFactory.getConnection(); @@ -2243,18 +2055,11 @@ public class L2Clan implements IIdentifiable, INamable activeChar.sendPacket(SystemMessageId.IN_ORDER_TO_JOIN_THE_CLAN_ACADEMY_YOU_MUST_BE_UNAFFILIATED_WITH_A_CLAN_AND_BE_AN_UNAWAKENED_CHARACTER_LV_84_OR_BELOW_FPR_BOTH_MAIN_AND_SUBCLASS); return false; } - if (getSubPledgeMembersCount(pledgeType) >= getMaxNrOfMembers(pledgeType)) + if (getSubPledgeMembersCount(pledgeType) >= (pledgeType == 0 ? ClanLevelData.getCommonMemberLimit(_level) : ClanLevelData.getEliteMemberLimit(_level))) { - if (pledgeType == 0) - { - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_IS_FULL_AND_CANNOT_ACCEPT_ADDITIONAL_CLAN_MEMBERS_AT_THIS_TIME); - sm.addString(_name); - activeChar.sendPacket(sm); - } - else - { - activeChar.sendPacket(SystemMessageId.THIS_CLAN_IS_FULL_AND_CANNOT_ACCEPT_NEW_MEMBERS_AT_THIS_TIME); - } + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_IS_FULL_AND_CANNOT_ACCEPT_ADDITIONAL_CLAN_MEMBERS_AT_THIS_TIME); + sm.addString(_name); + activeChar.sendPacket(sm); return false; } return true; diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/L2ClanMember.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/L2ClanMember.java index 8655fe5918..441cef9ef8 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/L2ClanMember.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/L2ClanMember.java @@ -714,6 +714,10 @@ public class L2ClanMember break; } case 11: + case 12: + case 13: + case 14: + case 15: { switch (player.getPledgeType()) { diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 26abe5ad5d..fd6244cfa0 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -1040,25 +1040,22 @@ public final class L2PcInstance extends L2Playable } if ((clan != null) && (targetClan != null)) { - if ((target.getPledgeType() != L2Clan.SUBUNIT_ACADEMY) && (getPledgeType() != L2Clan.SUBUNIT_ACADEMY)) + ClanWar war = clan.getWarWith(target.getClan().getId()); + if (war != null) { - ClanWar war = clan.getWarWith(target.getClan().getId()); - if (war != null) + switch (war.getState()) { - switch (war.getState()) + case DECLARATION: + case BLOOD_DECLARATION: { - case DECLARATION: - case BLOOD_DECLARATION: - { - result |= RelationChanged.RELATION_DECLARED_WAR; - break; - } - case MUTUAL: - { - result |= RelationChanged.RELATION_DECLARED_WAR; - result |= RelationChanged.RELATION_MUTUAL_WAR; - break; - } + result |= RelationChanged.RELATION_DECLARED_WAR; + break; + } + case MUTUAL: + { + result |= RelationChanged.RELATION_DECLARED_WAR; + result |= RelationChanged.RELATION_MUTUAL_WAR; + break; } } } @@ -9036,6 +9033,10 @@ public final class L2PcInstance extends L2Playable public void setPledgeType(int typeId) { + if (_clan != null) + { + _clan.createSubPledge(typeId); + } _pledgeType = typeId; } diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java index fa642c951a..a741cb2f87 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/model/actor/instance/L2VillageMasterInstance.java @@ -30,7 +30,6 @@ import com.l2jmobius.gameserver.instancemanager.FortManager; import com.l2jmobius.gameserver.instancemanager.FortSiegeManager; import com.l2jmobius.gameserver.instancemanager.SiegeManager; import com.l2jmobius.gameserver.model.L2Clan; -import com.l2jmobius.gameserver.model.L2Clan.SubPledge; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.L2SkillLearn; import com.l2jmobius.gameserver.model.actor.L2Character; @@ -46,8 +45,6 @@ import com.l2jmobius.gameserver.network.serverpackets.MagicSkillLaunched; import com.l2jmobius.gameserver.network.serverpackets.MagicSkillUse; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; -import com.l2jmobius.gameserver.network.serverpackets.UserInfo; -import com.l2jmobius.gameserver.util.Util; /** * This class ... @@ -124,51 +121,6 @@ public class L2VillageMasterInstance extends L2NpcInstance ClanTable.getInstance().createClan(player, cmdParams); } - else if (actualCommand.equalsIgnoreCase("create_academy")) - { - if (cmdParams.isEmpty()) - { - return; - } - - createSubPledge(player, cmdParams, null, L2Clan.SUBUNIT_ACADEMY, 5); - } - else if (actualCommand.equalsIgnoreCase("rename_pledge")) - { - if (cmdParams.isEmpty() || cmdParams2.isEmpty()) - { - return; - } - - renameSubPledge(player, Integer.parseInt(cmdParams), cmdParams2); - } - else if (actualCommand.equalsIgnoreCase("create_royal")) - { - if (cmdParams.isEmpty()) - { - return; - } - - createSubPledge(player, cmdParams, cmdParams2, L2Clan.SUBUNIT_ROYAL1, 6); - } - else if (actualCommand.equalsIgnoreCase("create_knight")) - { - if (cmdParams.isEmpty()) - { - return; - } - - createSubPledge(player, cmdParams, cmdParams2, L2Clan.SUBUNIT_KNIGHT1, 7); - } - else if (actualCommand.equalsIgnoreCase("assign_subpl_leader")) - { - if (cmdParams.isEmpty()) - { - return; - } - - assignSubPledgeLeader(player, cmdParams, cmdParams2); - } else if (actualCommand.equalsIgnoreCase("create_ally")) { if (cmdParams.isEmpty()) @@ -371,207 +323,6 @@ public class L2VillageMasterInstance extends L2NpcInstance clan.updateClanInDB(); } - private static void createSubPledge(L2PcInstance player, String clanName, String leaderName, int pledgeType, int minClanLvl) - { - if (!player.isClanLeader()) - { - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); - return; - } - - final L2Clan clan = player.getClan(); - if (clan.getLevel() < minClanLvl) - { - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - player.sendPacket(SystemMessageId.TO_ESTABLISH_A_CLAN_ACADEMY_YOUR_CLAN_MUST_BE_LEVEL_5_OR_HIGHER); - } - else - { - player.sendPacket(SystemMessageId.THE_CONDITIONS_NECESSARY_TO_CREATE_A_MILITARY_UNIT_HAVE_NOT_BEEN_MET); - } - - return; - } - if (!Util.isAlphaNumeric(clanName) || !isValidName(clanName) || (2 > clanName.length())) - { - player.sendPacket(SystemMessageId.CLAN_NAME_IS_INVALID); - return; - } - if (clanName.length() > 16) - { - player.sendPacket(SystemMessageId.CLAN_NAME_S_LENGTH_IS_INCORRECT); - return; - } - - for (L2Clan tempClan : ClanTable.getInstance().getClans()) - { - if (tempClan.getSubPledge(clanName) != null) - { - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_ALREADY_EXISTS); - sm.addString(clanName); - player.sendPacket(sm); - } - else - { - player.sendPacket(SystemMessageId.ANOTHER_MILITARY_UNIT_IS_ALREADY_USING_THAT_NAME_PLEASE_ENTER_A_DIFFERENT_NAME); - } - - return; - } - } - - if (pledgeType != L2Clan.SUBUNIT_ACADEMY) - { - if ((clan.getClanMember(leaderName) == null) || (clan.getClanMember(leaderName).getPledgeType() != 0)) - { - if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) - { - player.sendPacket(SystemMessageId.THE_CAPTAIN_OF_THE_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED); - } - else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) - { - player.sendPacket(SystemMessageId.THE_ROYAL_GUARD_CAPTAIN_CANNOT_BE_APPOINTED); - } - - return; - } - } - - final int leaderId = pledgeType != L2Clan.SUBUNIT_ACADEMY ? clan.getClanMember(leaderName).getObjectId() : 0; - - if (clan.createSubPledge(player, pledgeType, leaderId, clanName) == null) - { - return; - } - - SystemMessage sm; - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.CONGRATULATIONS_THE_S1_S_CLAN_ACADEMY_HAS_BEEN_CREATED); - sm.addString(player.getClan().getName()); - } - else if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.THE_KNIGHTS_OF_S1_HAVE_BEEN_CREATED); - sm.addString(player.getClan().getName()); - } - else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.THE_ROYAL_GUARD_OF_S1_HAVE_BEEN_CREATED); - sm.addString(player.getClan().getName()); - } - else - { - sm = SystemMessage.getSystemMessage(SystemMessageId.YOUR_CLAN_HAS_BEEN_CREATED); - } - player.sendPacket(sm); - - if (pledgeType != L2Clan.SUBUNIT_ACADEMY) - { - final L2ClanMember leaderSubPledge = clan.getClanMember(leaderName); - final L2PcInstance leaderPlayer = leaderSubPledge.getPlayerInstance(); - if (leaderPlayer != null) - { - leaderPlayer.setPledgeClass(L2ClanMember.calculatePledgeClass(leaderPlayer)); - leaderPlayer.sendPacket(new UserInfo(leaderPlayer)); - } - } - } - - private static void renameSubPledge(L2PcInstance player, int pledgeType, String pledgeName) - { - if (!player.isClanLeader()) - { - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); - return; - } - - final L2Clan clan = player.getClan(); - final SubPledge subPledge = player.getClan().getSubPledge(pledgeType); - - if (subPledge == null) - { - player.sendMessage("Pledge don't exists."); - return; - } - if (!Util.isAlphaNumeric(pledgeName) || !isValidName(pledgeName) || (2 > pledgeName.length())) - { - player.sendPacket(SystemMessageId.CLAN_NAME_IS_INVALID); - return; - } - if (pledgeName.length() > 16) - { - player.sendPacket(SystemMessageId.CLAN_NAME_S_LENGTH_IS_INCORRECT); - return; - } - - subPledge.setName(pledgeName); - clan.updateSubPledgeInDB(subPledge.getId()); - clan.broadcastClanStatus(); - player.sendMessage("Pledge name changed."); - } - - private static void assignSubPledgeLeader(L2PcInstance player, String clanName, String leaderName) - { - if (!player.isClanLeader()) - { - player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); - return; - } - if (leaderName.length() > 16) - { - player.sendPacket(SystemMessageId.YOUR_TITLE_MUST_BE_AT_LEAST_1_CHARACTER_AND_CANNOT_EXCEED_16_CHARACTERS_IN_LENGTH_PLEASE_TRY_AGAIN); - return; - } - if (player.getName().equals(leaderName)) - { - player.sendPacket(SystemMessageId.THE_ROYAL_GUARD_CAPTAIN_CANNOT_BE_APPOINTED); - return; - } - - final L2Clan clan = player.getClan(); - final SubPledge subPledge = player.getClan().getSubPledge(clanName); - - if ((null == subPledge) || (subPledge.getId() == L2Clan.SUBUNIT_ACADEMY)) - { - player.sendPacket(SystemMessageId.CLAN_NAME_IS_INVALID); - return; - } - if ((clan.getClanMember(leaderName) == null) || (clan.getClanMember(leaderName).getPledgeType() != 0)) - { - if (subPledge.getId() >= L2Clan.SUBUNIT_KNIGHT1) - { - player.sendPacket(SystemMessageId.THE_CAPTAIN_OF_THE_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED); - } - else if (subPledge.getId() >= L2Clan.SUBUNIT_ROYAL1) - { - player.sendPacket(SystemMessageId.THE_ROYAL_GUARD_CAPTAIN_CANNOT_BE_APPOINTED); - } - - return; - } - - subPledge.setLeaderId(clan.getClanMember(leaderName).getObjectId()); - clan.updateSubPledgeInDB(subPledge.getId()); - - final L2ClanMember leaderSubPledge = clan.getClanMember(leaderName); - final L2PcInstance leaderPlayer = leaderSubPledge.getPlayerInstance(); - if (leaderPlayer != null) - { - leaderPlayer.setPledgeClass(L2ClanMember.calculatePledgeClass(leaderPlayer)); - leaderPlayer.sendPacket(new UserInfo(leaderPlayer)); - } - - clan.broadcastClanStatus(); - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_BEEN_SELECTED_AS_THE_CAPTAIN_OF_S2); - sm.addString(leaderName); - sm.addString(clanName); - clan.broadcastToOnlineMembers(sm); - } - /** * this displays PledgeSkillList to the player. * @param player diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java index 901acc075d..c85bb581a0 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestAnswerJoinPledge.java @@ -98,7 +98,7 @@ public final class RequestAnswerJoinPledge implements IClientIncomingPacket activeChar.sendPacket(new JoinPledge(requestor.getClanId())); activeChar.setPledgeType(pledgeType); - if (pledgeType == L2Clan.SUBUNIT_ACADEMY) + if (pledgeType == -1) // Academy - Removed. { activeChar.setPowerGrade(9); // academy activeChar.setLvlJoinedAcademy(activeChar.getLevel()); diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java index 4cc9577dbb..648d3266dc 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java @@ -17,11 +17,14 @@ package com.l2jmobius.gameserver.network.clientpackets; import com.l2jmobius.commons.network.PacketReader; +import com.l2jmobius.gameserver.data.xml.impl.ClanLevelData; import com.l2jmobius.gameserver.model.ClanPrivilege; import com.l2jmobius.gameserver.model.L2Clan; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.L2GameClient; +import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * Format: (ch) dSdS @@ -29,29 +32,22 @@ import com.l2jmobius.gameserver.network.L2GameClient; */ public final class RequestPledgeReorganizeMember implements IClientIncomingPacket { - private int _isMemberSelected; private String _memberName; private int _newPledgeType; - private String _selectedMember; @Override public boolean read(L2GameClient client, PacketReader packet) { - _isMemberSelected = packet.readD(); + packet.readD(); // _isMemberSelected _memberName = packet.readS(); _newPledgeType = packet.readD(); - _selectedMember = packet.readS(); + packet.readS(); // _selectedMember return true; } @Override public void run(L2GameClient client) { - if (_isMemberSelected == 0) - { - return; - } - final L2PcInstance activeChar = client.getActiveChar(); if (activeChar == null) { @@ -75,21 +71,21 @@ public final class RequestPledgeReorganizeMember implements IClientIncomingPacke return; } - final L2ClanMember member2 = clan.getClanMember(_selectedMember); - if ((member2 == null) || (member2.getObjectId() == clan.getLeaderId())) - { - return; - } - final int oldPledgeType = member1.getPledgeType(); if (oldPledgeType == _newPledgeType) { return; } + if (clan.getSubPledgeMembersCount(_newPledgeType) >= (_newPledgeType == 0 ? ClanLevelData.getCommonMemberLimit(clan.getLevel()) : ClanLevelData.getEliteMemberLimit(clan.getLevel()))) + { + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_IS_FULL_AND_CANNOT_ACCEPT_ADDITIONAL_CLAN_MEMBERS_AT_THIS_TIME); + sm.addString(_newPledgeType == 0 ? "Common Members" : "Elite Members"); + activeChar.sendPacket(sm); + return; + } + member1.setPledgeType(_newPledgeType); - member2.setPledgeType(oldPledgeType); clan.broadcastClanStatus(); } - } diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java index 39e10f419e..e13e4a9e1a 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java @@ -69,7 +69,7 @@ public final class RequestPledgeSetAcademyMaster implements IClientIncomingPacke L2ClanMember apprenticeMember; L2ClanMember sponsorMember; - if (currentMember.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) + if (currentMember.getPledgeType() == -1) // Academy - Removed. { apprenticeMember = currentMember; sponsorMember = targetMember; diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java index 80069b052e..2a1f0cfaa1 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java @@ -74,7 +74,7 @@ public final class RequestPledgeSetMemberPowerGrade implements IClientIncomingPa return; } - if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) + if (member.getPledgeType() == -1) // Academy - Removed. { // also checked from client side activeChar.sendPacket(SystemMessageId.THAT_PRIVILEGE_CANNOT_BE_GRANTED_TO_A_CLAN_ACADEMY_MEMBER); diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java index a5f1cc702a..a50c6162c1 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveMemberInfo.java @@ -41,17 +41,7 @@ public class PledgeReceiveMemberInfo implements IClientOutgoingPacket packet.writeS(_member.getName()); packet.writeS(_member.getTitle()); // title packet.writeD(_member.getPowerGrade()); // power - - // clan or subpledge name - if (_member.getPledgeType() != 0) - { - packet.writeS((_member.getClan().getSubPledge(_member.getPledgeType())).getName()); - } - else - { - packet.writeS(_member.getClan().getName()); - } - + packet.writeS(_member.getClan().getName()); packet.writeS(_member.getApprenticeOrSponsorName()); // name of this member's apprentice/sponsor return true; } diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java index d0f43d0ffe..e99251133e 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeReceiveSubPledgeCreated.java @@ -50,7 +50,7 @@ public class PledgeReceiveSubPledgeCreated implements IClientOutgoingPacket private String getLeaderName() { final int LeaderId = _subPledge.getLeaderId(); - if ((_subPledge.getId() == L2Clan.SUBUNIT_ACADEMY) || (LeaderId == 0)) + if ((_subPledge.getId() == -1) || (LeaderId == 0)) { return ""; } diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java index 72efc3684b..51ef406914 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListAll.java @@ -20,9 +20,7 @@ import java.util.Collection; import com.l2jmobius.Config; import com.l2jmobius.commons.network.PacketWriter; -import com.l2jmobius.gameserver.data.sql.impl.CharNameTable; import com.l2jmobius.gameserver.model.L2Clan; -import com.l2jmobius.gameserver.model.L2Clan.SubPledge; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.OutgoingPackets; @@ -30,34 +28,28 @@ import com.l2jmobius.gameserver.network.OutgoingPackets; public class PledgeShowMemberListAll implements IClientOutgoingPacket { private final L2Clan _clan; - private final SubPledge _pledge; private final String _name; private final String _leaderName; private final Collection _members; - private final int _pledgeId; - private final boolean _isSubPledge; - private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge, boolean isSubPledge) + private PledgeShowMemberListAll(L2Clan clan, boolean isSubPledge) { _clan = clan; - _pledge = pledge; - _pledgeId = _pledge == null ? 0x00 : _pledge.getId(); - _leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId()); - _name = pledge == null ? clan.getName() : pledge.getName(); + _leaderName = clan.getLeaderName(); + _name = clan.getName(); _members = _clan.getMembers(); - _isSubPledge = isSubPledge; } public static void sendAllTo(L2PcInstance player) { final L2Clan clan = player.getClan(); - if (clan != null) + player.sendPacket(new PledgeShowMemberListAll(clan, true)); + for (L2PcInstance member : clan.getOnlineMembers(0)) { - for (SubPledge subPledge : clan.getAllSubPledges()) + if (member.getPledgeType() != L2Clan.PLEDGE_CLASS_COMMON) { - player.sendPacket(new PledgeShowMemberListAll(clan, subPledge, false)); + player.sendPacket(new PledgeShowMemberListUpdate(member)); } - player.sendPacket(new PledgeShowMemberListAll(clan, null, true)); } } @@ -66,10 +58,10 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket { OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet); - packet.writeD(_isSubPledge ? 0x00 : 0x01); + packet.writeD(0x00); // _isSubPledge packet.writeD(_clan.getId()); packet.writeD(Config.SERVER_ID); - packet.writeD(_pledgeId); + packet.writeD(0x00); packet.writeS(_name); packet.writeS(_leaderName); @@ -88,30 +80,17 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket packet.writeD(_clan.getAllyCrestId()); packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3 packet.writeD(0x00); // Territory castle ID - packet.writeD(_clan.getSubPledgeMembersCount(_pledgeId)); + packet.writeD(_members.size()); for (L2ClanMember m : _members) { - if (m.getPledgeType() != _pledgeId) - { - continue; - } packet.writeS(m.getName()); packet.writeD(m.getLevel()); packet.writeD(m.getClassId()); - final L2PcInstance player = m.getPlayerInstance(); - if (player != null) - { - packet.writeD(player.getAppearance().getSex() ? 1 : 0); // no visible effect - packet.writeD(player.getRace().ordinal()); // packet.writeD(1); - } - else - { - packet.writeD(0x01); // no visible effect - packet.writeD(0x01); // packet.writeD(1); - } + packet.writeD(0); // sex + packet.writeD(0); // race packet.writeD(m.isOnline() ? m.getObjectId() : 0); // objectId = online 0 = offline - packet.writeD(m.getSponsor() != 0 ? 1 : 0); + packet.writeD(0); packet.writeC(m.getOnlineStatus()); } return true; diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java index 6632294bc4..18cab81922 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/PledgeShowMemberListUpdate.java @@ -17,7 +17,6 @@ package com.l2jmobius.gameserver.network.serverpackets; import com.l2jmobius.commons.network.PacketWriter; -import com.l2jmobius.gameserver.model.L2Clan; import com.l2jmobius.gameserver.model.L2ClanMember; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.OutgoingPackets; @@ -28,14 +27,11 @@ import com.l2jmobius.gameserver.network.OutgoingPackets; public final class PledgeShowMemberListUpdate implements IClientOutgoingPacket { private final int _pledgeType; - private int _hasSponsor; private final String _name; private final int _level; private final int _classId; private final int _objectId; private final int _onlineStatus; - private final int _race; - private final int _sex; public PledgeShowMemberListUpdate(L2PcInstance player) { @@ -49,17 +45,7 @@ public final class PledgeShowMemberListUpdate implements IClientOutgoingPacket _classId = member.getClassId(); _objectId = member.getObjectId(); _pledgeType = member.getPledgeType(); - _race = member.getRaceOrdinal(); - _sex = member.getSex() ? 1 : 0; _onlineStatus = member.getOnlineStatus(); - if (_pledgeType == L2Clan.SUBUNIT_ACADEMY) - { - _hasSponsor = member.getSponsor() != 0 ? 1 : 0; - } - else - { - _hasSponsor = 0; - } } @Override @@ -70,20 +56,11 @@ public final class PledgeShowMemberListUpdate implements IClientOutgoingPacket packet.writeS(_name); packet.writeD(_level); packet.writeD(_classId); - packet.writeD(_sex); - packet.writeD(_race); - if (_onlineStatus > 0) - { - packet.writeD(_objectId); - packet.writeD(_pledgeType); - } - else - { - // when going offline send as 0 - packet.writeD(0); - packet.writeD(0); - } - packet.writeD(_hasSponsor); + packet.writeD(0); // _sex + packet.writeD(0); // _race + packet.writeD(_objectId); + packet.writeD(_pledgeType); + packet.writeD(0); // _hasSponsor packet.writeC(_onlineStatus); return true; } diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java index 722ef00b13..cb38bb706b 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/network/serverpackets/pledgeV2/ExPledgeShowInfoUpdate.java @@ -47,8 +47,8 @@ public class ExPledgeShowInfoUpdate extends AbstractItemPacket OutgoingPackets.EX_PLEDGE_SHOW_INFO_UPDATE.writeId(packet); packet.writeD(clan.getId()); // Pledge ID packet.writeD(ClanLevelData.getLevelRequirement(clan.getLevel())); // Next level cost - packet.writeD(0); // Max pledge members - packet.writeD(0); // Max elite members + packet.writeD(ClanLevelData.getCommonMemberLimit(clan.getLevel())); // Max pledge members + packet.writeD(ClanLevelData.getEliteMemberLimit(clan.getLevel())); // Max elite members return true; } }