From cc2d5f359dc3682fa99d9c10b5ca5ff8e65a47b1 Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Fri, 17 Sep 2021 19:54:10 +0000
Subject: [PATCH] Skill rewards for clan hunting bonus. Contributed by MacuK.
---
.../dist/game/config/ClanReward.xml | 32 +++++++++----------
.../dist/game/data/xsd/ClanReward.xsd | 6 ++--
.../gameserver/data/xml/ClanRewardData.java | 13 ++++----
.../model/clan/ClanRewardBonus.java | 12 -------
.../pledgebonus/RequestPledgeBonusReward.java | 8 +----
.../pledgebonus/ExPledgeBonusList.java | 4 +--
.../pledgebonus/ExPledgeBonusOpen.java | 8 ++---
7 files changed, 32 insertions(+), 51 deletions(-)
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/ClanReward.xml b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/ClanReward.xml
index 460a2c5fce..e4706b1e2f 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/ClanReward.xml
+++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/config/ClanReward.xml
@@ -1,31 +1,31 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/ClanReward.xsd b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/ClanReward.xsd
index 90e454d340..4ee7b1020a 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/ClanReward.xsd
+++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/ClanReward.xsd
@@ -29,10 +29,10 @@
-
+
-
-
+
+
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/ClanRewardData.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/ClanRewardData.java
index 5f5dffda80..f58c63671c 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/ClanRewardData.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/ClanRewardData.java
@@ -31,7 +31,6 @@ import org.w3c.dom.Node;
import org.l2jmobius.commons.util.IXmlReader;
import org.l2jmobius.gameserver.enums.ClanRewardType;
import org.l2jmobius.gameserver.model.clan.ClanRewardBonus;
-import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
/**
@@ -113,14 +112,14 @@ public class ClanRewardData implements IXmlReader
final int requiredAmount = parseInteger(attrs, "points");
final int level = parseInteger(attrs, "level");
final ClanRewardBonus bonus = new ClanRewardBonus(ClanRewardType.HUNTING_MONSTERS, level, requiredAmount);
- forEach(memberNode, IXmlReader::isNode, itemsNode ->
+ forEach(memberNode, IXmlReader::isNode, skillNode ->
{
- if ("item".equalsIgnoreCase(itemsNode.getNodeName()))
+ if ("skill".equalsIgnoreCase(skillNode.getNodeName()))
{
- final NamedNodeMap itemsAttr = itemsNode.getAttributes();
- final int id = parseInteger(itemsAttr, "id");
- final int count = parseInteger(itemsAttr, "count");
- bonus.setItemReward(new ItemHolder(id, count));
+ final NamedNodeMap skillAttr = skillNode.getAttributes();
+ final int skillId = parseInteger(skillAttr, "id");
+ final int skillLevel = parseInteger(skillAttr, "level");
+ bonus.setSkillReward(new SkillHolder(skillId, skillLevel));
}
});
_clanRewards.computeIfAbsent(bonus.getType(), key -> new ArrayList<>()).add(bonus);
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/clan/ClanRewardBonus.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/clan/ClanRewardBonus.java
index a7aaa76d0c..dbfc7fb344 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/clan/ClanRewardBonus.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/clan/ClanRewardBonus.java
@@ -17,7 +17,6 @@
package org.l2jmobius.gameserver.model.clan;
import org.l2jmobius.gameserver.enums.ClanRewardType;
-import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
/**
@@ -29,7 +28,6 @@ public class ClanRewardBonus
private final int _level;
private final int _requiredAmount;
private SkillHolder _skillReward;
- private ItemHolder _itemReward;
public ClanRewardBonus(ClanRewardType type, int level, int requiredAmount)
{
@@ -62,14 +60,4 @@ public class ClanRewardBonus
{
_skillReward = skillReward;
}
-
- public ItemHolder getItemReward()
- {
- return _itemReward;
- }
-
- public void setItemReward(ItemHolder itemReward)
- {
- _itemReward = itemReward;
- }
}
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgebonus/RequestPledgeBonusReward.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgebonus/RequestPledgeBonusReward.java
index dbd4fd0f42..96953fad16 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgebonus/RequestPledgeBonusReward.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgebonus/RequestPledgeBonusReward.java
@@ -22,7 +22,6 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.clan.ClanMember;
import org.l2jmobius.gameserver.model.clan.ClanRewardBonus;
-import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
@@ -63,13 +62,8 @@ public class RequestPledgeBonusReward implements IClientIncomingPacket
final ClanRewardBonus bonus = type.getAvailableBonus(player.getClan());
if (bonus != null)
{
- final ItemHolder itemReward = bonus.getItemReward();
final SkillHolder skillReward = bonus.getSkillReward();
- if (itemReward != null)
- {
- player.addItem("ClanReward", itemReward.getId(), itemReward.getCount(), player, true);
- }
- else if (skillReward != null)
+ if (skillReward != null)
{
skillReward.getSkill().activateSkill(player, player);
}
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/pledgebonus/ExPledgeBonusList.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/pledgebonus/ExPledgeBonusList.java
index fd8875aedd..43f7f9a362 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/pledgebonus/ExPledgeBonusList.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/pledgebonus/ExPledgeBonusList.java
@@ -39,10 +39,10 @@ public class ExPledgeBonusList implements IClientOutgoingPacket
{
packet.writeD(bonus.getSkillReward().getSkillId());
});
- packet.writeC(0x01); // 140
+ packet.writeC(0x00); // 140
ClanRewardData.getInstance().getClanRewardBonuses(ClanRewardType.HUNTING_MONSTERS).stream().sorted(Comparator.comparingInt(ClanRewardBonus::getLevel)).forEach(bonus ->
{
- packet.writeD(bonus.getItemReward().getId());
+ packet.writeD(bonus.getSkillReward().getSkillId());
});
return true;
}
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/pledgebonus/ExPledgeBonusOpen.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/pledgebonus/ExPledgeBonusOpen.java
index cfbc0f2d40..a9b2cf6d46 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/pledgebonus/ExPledgeBonusOpen.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/pledgebonus/ExPledgeBonusOpen.java
@@ -70,9 +70,9 @@ public class ExPledgeBonusOpen implements IClientOutgoingPacket
LOGGER.warning("Couldn't find skill reward for highest available members online bonus!!");
return false;
}
- else if (highestHuntingBonus.getItemReward() == null)
+ else if (highestHuntingBonus.getSkillReward() == null)
{
- LOGGER.warning("Couldn't find item reward for highest available hunting bonus!!");
+ LOGGER.warning("Couldn't find skill reward for highest available hunting bonus!!");
return false;
}
@@ -90,8 +90,8 @@ public class ExPledgeBonusOpen implements IClientOutgoingPacket
// Hunting bonus
packet.writeD(highestHuntingBonus.getRequiredAmount());
packet.writeD(clan.getHuntingPoints());
- packet.writeC(0x01); // 140
- packet.writeD(huntingBonus != null ? highestHuntingBonus.getItemReward().getId() : 0x00);
+ packet.writeC(0x02); // 140
+ packet.writeD(huntingBonus != null ? highestHuntingBonus.getSkillReward().getSkillId() : 0x00);
packet.writeC(huntingBonus != null ? huntingBonus.getLevel() : 0x00);
packet.writeC(huntingBonus != null ? 0x01 : 0x00);
return true;