From b25618c95c0a0e5018824e419e71e792361b0fe8 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 17 Dec 2021 18:05:56 +0000 Subject: [PATCH] Fixed clan contribution points decreasing clan exp. Contributed by nasseka. --- .../admincommandhandlers/AdminPledge.java | 3 +- .../l2jmobius/gameserver/model/clan/Clan.java | 44 ++++++++++++------- .../RequestExPledgeDonationRequest.java | 4 +- .../admincommandhandlers/AdminPledge.java | 3 +- .../l2jmobius/gameserver/model/clan/Clan.java | 44 ++++++++++++------- .../RequestExPledgeDonationRequest.java | 4 +- 6 files changed, 64 insertions(+), 38 deletions(-) diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java index 4c4a7ae54e..82f3148edd 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java @@ -156,9 +156,10 @@ public class AdminPledge implements IAdminCommandHandler } final int level = Integer.parseInt(param); - if ((level >= 0) && (level < 12)) + if ((level >= 0) && (level <= (Clan.EXP_TABLE.length - 1))) { clan.changeLevel(level); + clan.setExp(activeChar.getObjectId(), Clan.EXP_TABLE[level]); for (Player member : clan.getOnlineMembers(0)) { member.broadcastUserInfo(UserInfoType.RELATION, UserInfoType.CLAN); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/clan/Clan.java index ba6f9bafd3..757283994a 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -121,6 +121,21 @@ public class Clan implements IIdentifiable, INamable /** Clan subunit type of Order of Knights B-2 */ public static final int SUBUNIT_KNIGHT4 = 2002; + public static final int[] EXP_TABLE = + { + 0, + 100, + 1000, + 5000, + 100000, + 500000, + 1500000, + 4500000, + 7500000, + 11000000, + 14500000 + }; + private String _name; private int _clanId; private ClanMember _leader; @@ -156,21 +171,7 @@ public class Clan implements IIdentifiable, INamable private int _reputationScore = 0; private int _rank = 0; - - private int _exp; - private static final int[] EXP_TABLE = - { - 100, - 1000, - 5000, - 100000, - 500000, - 1500000, - 4500000, - 7500000, - 11000000, - 14500000 - }; + private int _exp = 0; private String _notice; private boolean _noticeEnabled = false; @@ -3114,7 +3115,7 @@ public class Clan implements IIdentifiable, INamable _exp += value; broadcastToOnlineMembers(new ExPledgeV3Info(_exp, getRank(), getNotice(), isNoticeEnabled())); - if ((EXP_TABLE[Math.max(0, getLevel() - 1)]) <= _exp) + if (((EXP_TABLE[Math.max(0, getLevel() + 1)]) <= _exp)) { changeLevel(_level + 1); } @@ -3127,4 +3128,15 @@ public class Clan implements IIdentifiable, INamable updateClanInDB(); } } + + public void setExp(int objId, int value) + { + _exp = value; + broadcastToOnlineMembers(new ExPledgeV3Info(_exp, getRank(), getNotice(), isNoticeEnabled())); + + final int contribution = getClanContribution(objId); + setClanContribution(objId, contribution + value); + setClanContributionWeekly(objId, contribution + value); + updateClanInDB(); + } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java index 75ca959598..7a4b323122 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java @@ -79,7 +79,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 100, player, null) != null) { - clan.addExp(player.getObjectId(), 100, true); + clan.addExp(player.getObjectId(), 30, true); player.setHonorCoins(player.getHonorCoins() + 100); } else @@ -99,7 +99,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 500, player, null) != null) { - clan.addExp(player.getObjectId(), 500, true); + clan.addExp(player.getObjectId(), 150, true); player.setHonorCoins(player.getHonorCoins() + 500); } else diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java index 4c4a7ae54e..82f3148edd 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/dist/game/data/scripts/handlers/admincommandhandlers/AdminPledge.java @@ -156,9 +156,10 @@ public class AdminPledge implements IAdminCommandHandler } final int level = Integer.parseInt(param); - if ((level >= 0) && (level < 12)) + if ((level >= 0) && (level <= (Clan.EXP_TABLE.length - 1))) { clan.changeLevel(level); + clan.setExp(activeChar.getObjectId(), Clan.EXP_TABLE[level]); for (Player member : clan.getOnlineMembers(0)) { member.broadcastUserInfo(UserInfoType.RELATION, UserInfoType.CLAN); diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/clan/Clan.java index ba6f9bafd3..757283994a 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -121,6 +121,21 @@ public class Clan implements IIdentifiable, INamable /** Clan subunit type of Order of Knights B-2 */ public static final int SUBUNIT_KNIGHT4 = 2002; + public static final int[] EXP_TABLE = + { + 0, + 100, + 1000, + 5000, + 100000, + 500000, + 1500000, + 4500000, + 7500000, + 11000000, + 14500000 + }; + private String _name; private int _clanId; private ClanMember _leader; @@ -156,21 +171,7 @@ public class Clan implements IIdentifiable, INamable private int _reputationScore = 0; private int _rank = 0; - - private int _exp; - private static final int[] EXP_TABLE = - { - 100, - 1000, - 5000, - 100000, - 500000, - 1500000, - 4500000, - 7500000, - 11000000, - 14500000 - }; + private int _exp = 0; private String _notice; private boolean _noticeEnabled = false; @@ -3114,7 +3115,7 @@ public class Clan implements IIdentifiable, INamable _exp += value; broadcastToOnlineMembers(new ExPledgeV3Info(_exp, getRank(), getNotice(), isNoticeEnabled())); - if ((EXP_TABLE[Math.max(0, getLevel() - 1)]) <= _exp) + if (((EXP_TABLE[Math.max(0, getLevel() + 1)]) <= _exp)) { changeLevel(_level + 1); } @@ -3127,4 +3128,15 @@ public class Clan implements IIdentifiable, INamable updateClanInDB(); } } + + public void setExp(int objId, int value) + { + _exp = value; + broadcastToOnlineMembers(new ExPledgeV3Info(_exp, getRank(), getNotice(), isNoticeEnabled())); + + final int contribution = getClanContribution(objId); + setClanContribution(objId, contribution + value); + setClanContributionWeekly(objId, contribution + value); + updateClanInDB(); + } } diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java index 75ca959598..7a4b323122 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/pledgedonation/RequestExPledgeDonationRequest.java @@ -79,7 +79,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 100, player, null) != null) { - clan.addExp(player.getObjectId(), 100, true); + clan.addExp(player.getObjectId(), 30, true); player.setHonorCoins(player.getHonorCoins() + 100); } else @@ -99,7 +99,7 @@ public class RequestExPledgeDonationRequest implements IClientIncomingPacket { if (player.getInventory().destroyItemByItemId("pledge donation", Inventory.LCOIN_ID, 500, player, null) != null) { - clan.addExp(player.getObjectId(), 500, true); + clan.addExp(player.getObjectId(), 150, true); player.setHonorCoins(player.getHonorCoins() + 500); } else