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;