Skill rewards for clan hunting bonus.
Contributed by MacuK.
This commit is contained in:
@@ -1,31 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../data/xsd/ClanReward.xsd">
|
||||
<membersOnline>
|
||||
<players size="10" level="1">
|
||||
<skill id="55168" level="1" /> <!-- Clan Unity - Lv. 1 -->
|
||||
<players size="7" level="1">
|
||||
<skill id="51016" level="1" /> <!-- Clan's Bonus - XP Lv. 1 -->
|
||||
</players>
|
||||
<players size="20" level="2">
|
||||
<skill id="55169" level="1" /> <!-- Clan Unity - Lv. 2 -->
|
||||
<players size="14" level="2">
|
||||
<skill id="51017" level="1" /> <!-- Clan's Bonus - XP Lv. 2 -->
|
||||
</players>
|
||||
<players size="30" level="3">
|
||||
<skill id="55170" level="1" /> <!-- Clan Unity - Lv. 3 -->
|
||||
<players size="21" level="3">
|
||||
<skill id="51018" level="1" /> <!-- Clan's Bonus - XP Lv. 3 -->
|
||||
</players>
|
||||
<players size="40" level="4">
|
||||
<skill id="55171" level="1" /> <!-- Clan Unity - Lv. 4 -->
|
||||
<players size="28" level="4">
|
||||
<skill id="51019" level="1" /> <!-- Clan's Bonus - XP Lv. 4 -->
|
||||
</players>
|
||||
</membersOnline>
|
||||
<huntingBonus>
|
||||
<hunting points="28800000" level="1">
|
||||
<item id="70020" count="1" /> <!-- Clan's Supplies - Low Grade -->
|
||||
<hunting points="3267000" level="1">
|
||||
<skill id="51020" level="1" /> <!-- Clan's Bonus - P. Atk Lv. 1 -->
|
||||
</hunting>
|
||||
<hunting points="57600000" level="2">
|
||||
<item id="70021" count="1" /> <!-- Clan's Supplies - Medium Grade -->
|
||||
<hunting points="6534000" level="2">
|
||||
<skill id="51021" level="1" /> <!-- Clan's Bonus - P. Atk Lv. 2 -->
|
||||
</hunting>
|
||||
<hunting points="86400000" level="3">
|
||||
<item id="70022" count="1" /> <!-- Clan's Supplies - High Grade -->
|
||||
<hunting points="9801000" level="3">
|
||||
<skill id="51022" level="1" /> <!-- Clan's Bonus - P. Atk Lv. 3 -->
|
||||
</hunting>
|
||||
<hunting points="115200000" level="4">
|
||||
<item id="70023" count="1" /> <!-- Clan's Supplies - Highest Grade -->
|
||||
<hunting points="13068000" level="4">
|
||||
<skill id="51023" level="1" /> <!-- Clan's Bonus - P. Atk Lv. 4 -->
|
||||
</hunting>
|
||||
</huntingBonus>
|
||||
</list>
|
@@ -29,10 +29,10 @@
|
||||
<xs:element name="hunting" maxOccurs="unbounded" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="item">
|
||||
<xs:element name="skill">
|
||||
<xs:complexType>
|
||||
<xs:attribute type="xs:integer" name="id" use="required" />
|
||||
<xs:attribute type="xs:long" name="count" use="required" />
|
||||
<xs:attribute type="xs:positiveInteger" name="id" use="required" />
|
||||
<xs:attribute type="xs:short" name="level" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user