Fixed clan subpledge invitation issues.

This commit is contained in:
MobiusDev 2017-11-02 22:36:02 +00:00
parent d3b68cc899
commit fbaa73d331
39 changed files with 106 additions and 171 deletions

View File

@ -87,7 +87,6 @@ import com.l2jmobius.gameserver.network.serverpackets.ExWorldChatCnt;
import com.l2jmobius.gameserver.network.serverpackets.HennaInfo; import com.l2jmobius.gameserver.network.serverpackets.HennaInfo;
import com.l2jmobius.gameserver.network.serverpackets.ItemList; import com.l2jmobius.gameserver.network.serverpackets.ItemList;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList; import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList;
@ -373,7 +372,6 @@ public class EnterWorld implements IClientIncomingPacket
PledgeShowMemberListAll.sendAllTo(activeChar); PledgeShowMemberListAll.sendAllTo(activeChar);
clan.broadcastToOnlineMembers(new ExPledgeCount(clan)); clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
activeChar.sendPacket(new PledgeSkillList(clan)); activeChar.sendPacket(new PledgeSkillList(clan));
activeChar.sendPacket(new PledgeShowInfoUpdate(clan));
final ClanHall ch = ClanHallData.getInstance().getClanHallByClan(clan); final ClanHall ch = ClanHallData.getInstance().getClanHallByClan(clan);
if ((ch != null) && (ch.getCostFailDay() > 0)) if ((ch != null) && (ch.getCostFailDay() > 0))
{ {

View File

@ -57,6 +57,6 @@ public class RequestClanAskJoinByName implements IClientIncomingPacket
return; return;
} }
invitedPlayer.sendPacket(new AskJoinPledge(activeChar, activeChar.getClan().getSubPledge(_pledgeType) != null ? activeChar.getClan().getSubPledge(_pledgeType).getName() : null, _pledgeType, activeChar.getClan().getName())); invitedPlayer.sendPacket(new AskJoinPledge(activeChar, _pledgeType, activeChar.getClan().getName()));
} }
} }

View File

@ -74,8 +74,7 @@ public final class RequestJoinPledge implements IClientIncomingPacket
} }
final String pledgeName = activeChar.getClan().getName(); final String pledgeName = activeChar.getClan().getName();
final String subPledgeName = (activeChar.getClan().getSubPledge(_pledgeType) != null ? activeChar.getClan().getSubPledge(_pledgeType).getName() : null); target.sendPacket(new AskJoinPledge(activeChar, _pledgeType, pledgeName));
target.sendPacket(new AskJoinPledge(activeChar, subPledgeName, _pledgeType, pledgeName));
} }
public int getPledgeType() public int getPledgeType()

View File

@ -53,6 +53,7 @@ public final class RequestPledgePower implements IClientIncomingPacket
return; return;
} }
player.sendPacket(new ManagePledgePower(client.getActiveChar().getClan(), _action, _rank));
if (_action == 2) if (_action == 2)
{ {
if (player.isClanLeader()) if (player.isClanLeader())
@ -71,9 +72,5 @@ public final class RequestPledgePower implements IClientIncomingPacket
player.getClan().setRankPrivs(_rank, _privs); player.getClan().setRankPrivs(_rank, _privs);
} }
} }
else
{
player.sendPacket(new ManagePledgePower(client.getActiveChar().getClan(), _action, _rank));
}
} }
} }

View File

@ -77,7 +77,7 @@ public final class RequestPledgeSetMemberPowerGrade implements IClientIncomingPa
if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY)
{ {
// also checked from client side // also checked from client side
activeChar.sendMessage("You cannot change academy member grade"); activeChar.sendPacket(SystemMessageId.THAT_PRIVILEGE_CANNOT_BE_GRANTED_TO_A_CLAN_ACADEMY_MEMBER);
return; return;
} }

View File

@ -39,7 +39,7 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket
public void run(L2GameClient client) public void run(L2GameClient client)
{ {
final L2PcInstance activeChar = client.getActiveChar(); final L2PcInstance activeChar = client.getActiveChar();
if ((activeChar == null) || (activeChar.getClan() == null)) if ((activeChar == null) || (activeChar.getClan() != null))
{ {
return; return;
} }

View File

@ -23,14 +23,12 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
public final class AskJoinPledge implements IClientOutgoingPacket public final class AskJoinPledge implements IClientOutgoingPacket
{ {
private final L2PcInstance _requestor; private final L2PcInstance _requestor;
private final String _subPledgeName;
private final int _pledgeType; private final int _pledgeType;
private final String _pledgeName; private final String _pledgeName;
public AskJoinPledge(L2PcInstance requestor, String subPledgeName, int pledgeType, String pledgeName) public AskJoinPledge(L2PcInstance requestor, int pledgeType, String pledgeName)
{ {
_requestor = requestor; _requestor = requestor;
_subPledgeName = subPledgeName;
_pledgeType = pledgeType; _pledgeType = pledgeType;
_pledgeName = pledgeName; _pledgeName = pledgeName;
} }
@ -39,14 +37,8 @@ public final class AskJoinPledge implements IClientOutgoingPacket
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet); OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet);
packet.writeD(_requestor.getObjectId()); packet.writeD(_requestor.getObjectId());
packet.writeS(_requestor.getName()); packet.writeS(_requestor.getName());
if (_subPledgeName != null)
{
packet.writeS(_pledgeType > 0 ? _subPledgeName : _pledgeName);
}
packet.writeS(_pledgeName); packet.writeS(_pledgeName);
if (_pledgeType != 0) if (_pledgeType != 0)
{ {

View File

@ -36,16 +36,12 @@ public class ManagePledgePower implements IClientOutgoingPacket
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
// TODO: Verify this! OutgoingPackets.MANAGE_PLEDGE_POWER.writeId(packet);
if (_action == 1)
{ packet.writeD(_rank);
OutgoingPackets.MANAGE_PLEDGE_POWER.writeId(packet); packet.writeD(_action);
packet.writeD(_clan.getRankPrivs(_rank).getBitmask());
packet.writeD(_rank);
packet.writeD(_action); return true;
packet.writeD(_clan.getRankPrivs(_rank).getBitmask());
return true;
}
return false;
} }
} }

View File

@ -34,15 +34,18 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
private final String _name; private final String _name;
private final String _leaderName; private final String _leaderName;
private final Collection<L2ClanMember> _members; private final Collection<L2ClanMember> _members;
private int _pledgeType; private final int _pledgeId;
private final boolean _isSubPledge;
private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge) private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge, boolean isSubPledge)
{ {
_clan = clan; _clan = clan;
_pledge = pledge; _pledge = pledge;
_pledgeId = _pledge == null ? 0x00 : _pledge.getId();
_leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId()); _leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId());
_name = pledge == null ? clan.getName() : pledge.getName(); _name = pledge == null ? clan.getName() : pledge.getName();
_members = _clan.getMembers(); _members = _clan.getMembers();
_isSubPledge = isSubPledge;
} }
public static void sendAllTo(L2PcInstance player) public static void sendAllTo(L2PcInstance player)
@ -50,33 +53,32 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
final L2Clan clan = player.getClan(); final L2Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
player.sendPacket(new PledgeShowMemberListAll(clan, null));
for (SubPledge subPledge : clan.getAllSubPledges()) for (SubPledge subPledge : clan.getAllSubPledges())
{ {
player.sendPacket(new PledgeShowMemberListAll(clan, subPledge)); player.sendPacket(new PledgeShowMemberListAll(clan, subPledge, false));
} }
player.sendPacket(new PledgeShowMemberListAll(clan, null, true));
} }
} }
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
final int pledgeId = (_pledge == null ? 0x00 : _pledge.getId());
OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet); OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet);
packet.writeD(_pledge == null ? 0 : 1); packet.writeD(_isSubPledge ? 0x00 : 0x01);
packet.writeD(_clan.getId()); packet.writeD(_clan.getId());
packet.writeD(Config.SERVER_ID); packet.writeD(Config.SERVER_ID);
packet.writeD(pledgeId); packet.writeD(_pledgeId);
packet.writeS(_name); packet.writeS(_name);
packet.writeS(_leaderName); packet.writeS(_leaderName);
packet.writeD(_clan.getCrestId()); // crest id .. is used again packet.writeD(_clan.getCrestId()); // crest id .. is used again
packet.writeD(_clan.getLevel()); packet.writeD(_clan.getLevel());
packet.writeD(_clan.getCastleId()); packet.writeD(_clan.getCastleId());
packet.writeD(0x00);
packet.writeD(_clan.getHideoutId()); packet.writeD(_clan.getHideoutId());
packet.writeD(_clan.getFortId()); packet.writeD(_clan.getFortId());
packet.writeD(0x00);
packet.writeD(_clan.getRank()); packet.writeD(_clan.getRank());
packet.writeD(_clan.getReputationScore()); packet.writeD(_clan.getReputationScore());
packet.writeD(0x00); // 0 packet.writeD(0x00); // 0
@ -86,11 +88,11 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
packet.writeD(_clan.getAllyCrestId()); packet.writeD(_clan.getAllyCrestId());
packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3 packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3
packet.writeD(0x00); // Territory castle ID packet.writeD(0x00); // Territory castle ID
packet.writeD(_clan.getSubPledgeMembersCount(_pledgeType)); packet.writeD(_clan.getSubPledgeMembersCount(_pledgeId));
for (L2ClanMember m : _members) for (L2ClanMember m : _members)
{ {
if (m.getPledgeType() != _pledgeType) if (m.getPledgeType() != _pledgeId)
{ {
continue; continue;
} }
@ -110,7 +112,6 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
} }
packet.writeD(m.isOnline() ? m.getObjectId() : 0); // objectId = online 0 = offline packet.writeD(m.isOnline() ? m.getObjectId() : 0); // objectId = online 0 = offline
packet.writeD(m.getSponsor() != 0 ? 1 : 0); packet.writeD(m.getSponsor() != 0 ? 1 : 0);
packet.writeC(m.getOnlineStatus());
} }
return true; return true;
} }

View File

@ -89,7 +89,6 @@ import com.l2jmobius.gameserver.network.serverpackets.ExWorldChatCnt;
import com.l2jmobius.gameserver.network.serverpackets.HennaInfo; import com.l2jmobius.gameserver.network.serverpackets.HennaInfo;
import com.l2jmobius.gameserver.network.serverpackets.ItemList; import com.l2jmobius.gameserver.network.serverpackets.ItemList;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList; import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList;
@ -376,7 +375,6 @@ public class EnterWorld implements IClientIncomingPacket
PledgeShowMemberListAll.sendAllTo(activeChar); PledgeShowMemberListAll.sendAllTo(activeChar);
clan.broadcastToOnlineMembers(new ExPledgeCount(clan)); clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
activeChar.sendPacket(new PledgeSkillList(clan)); activeChar.sendPacket(new PledgeSkillList(clan));
activeChar.sendPacket(new PledgeShowInfoUpdate(clan));
final ClanHall ch = ClanHallData.getInstance().getClanHallByClan(clan); final ClanHall ch = ClanHallData.getInstance().getClanHallByClan(clan);
if ((ch != null) && (ch.getCostFailDay() > 0)) if ((ch != null) && (ch.getCostFailDay() > 0))
{ {

View File

@ -57,6 +57,6 @@ public class RequestClanAskJoinByName implements IClientIncomingPacket
return; return;
} }
invitedPlayer.sendPacket(new AskJoinPledge(activeChar, activeChar.getClan().getSubPledge(_pledgeType) != null ? activeChar.getClan().getSubPledge(_pledgeType).getName() : null, _pledgeType, activeChar.getClan().getName())); invitedPlayer.sendPacket(new AskJoinPledge(activeChar, _pledgeType, activeChar.getClan().getName()));
} }
} }

View File

@ -74,8 +74,7 @@ public final class RequestJoinPledge implements IClientIncomingPacket
} }
final String pledgeName = activeChar.getClan().getName(); final String pledgeName = activeChar.getClan().getName();
final String subPledgeName = (activeChar.getClan().getSubPledge(_pledgeType) != null ? activeChar.getClan().getSubPledge(_pledgeType).getName() : null); target.sendPacket(new AskJoinPledge(activeChar, _pledgeType, pledgeName));
target.sendPacket(new AskJoinPledge(activeChar, subPledgeName, _pledgeType, pledgeName));
} }
public int getPledgeType() public int getPledgeType()

View File

@ -53,6 +53,7 @@ public final class RequestPledgePower implements IClientIncomingPacket
return; return;
} }
player.sendPacket(new ManagePledgePower(client.getActiveChar().getClan(), _action, _rank));
if (_action == 2) if (_action == 2)
{ {
if (player.isClanLeader()) if (player.isClanLeader())
@ -71,9 +72,5 @@ public final class RequestPledgePower implements IClientIncomingPacket
player.getClan().setRankPrivs(_rank, _privs); player.getClan().setRankPrivs(_rank, _privs);
} }
} }
else
{
player.sendPacket(new ManagePledgePower(client.getActiveChar().getClan(), _action, _rank));
}
} }
} }

View File

@ -77,7 +77,7 @@ public final class RequestPledgeSetMemberPowerGrade implements IClientIncomingPa
if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY)
{ {
// also checked from client side // also checked from client side
activeChar.sendMessage("You cannot change academy member grade"); activeChar.sendPacket(SystemMessageId.THAT_PRIVILEGE_CANNOT_BE_GRANTED_TO_A_CLAN_ACADEMY_MEMBER);
return; return;
} }

View File

@ -39,7 +39,7 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket
public void run(L2GameClient client) public void run(L2GameClient client)
{ {
final L2PcInstance activeChar = client.getActiveChar(); final L2PcInstance activeChar = client.getActiveChar();
if ((activeChar == null) || (activeChar.getClan() == null)) if ((activeChar == null) || (activeChar.getClan() != null))
{ {
return; return;
} }

View File

@ -23,14 +23,12 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
public final class AskJoinPledge implements IClientOutgoingPacket public final class AskJoinPledge implements IClientOutgoingPacket
{ {
private final L2PcInstance _requestor; private final L2PcInstance _requestor;
private final String _subPledgeName;
private final int _pledgeType; private final int _pledgeType;
private final String _pledgeName; private final String _pledgeName;
public AskJoinPledge(L2PcInstance requestor, String subPledgeName, int pledgeType, String pledgeName) public AskJoinPledge(L2PcInstance requestor, int pledgeType, String pledgeName)
{ {
_requestor = requestor; _requestor = requestor;
_subPledgeName = subPledgeName;
_pledgeType = pledgeType; _pledgeType = pledgeType;
_pledgeName = pledgeName; _pledgeName = pledgeName;
} }
@ -39,14 +37,8 @@ public final class AskJoinPledge implements IClientOutgoingPacket
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet); OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet);
packet.writeD(_requestor.getObjectId()); packet.writeD(_requestor.getObjectId());
packet.writeS(_requestor.getName()); packet.writeS(_requestor.getName());
if (_subPledgeName != null)
{
packet.writeS(_pledgeType > 0 ? _subPledgeName : _pledgeName);
}
packet.writeS(_pledgeName); packet.writeS(_pledgeName);
if (_pledgeType != 0) if (_pledgeType != 0)
{ {

View File

@ -36,16 +36,12 @@ public class ManagePledgePower implements IClientOutgoingPacket
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
// TODO: Verify this! OutgoingPackets.MANAGE_PLEDGE_POWER.writeId(packet);
if (_action == 1)
{ packet.writeD(_rank);
OutgoingPackets.MANAGE_PLEDGE_POWER.writeId(packet); packet.writeD(_action);
packet.writeD(_clan.getRankPrivs(_rank).getBitmask());
packet.writeD(_rank);
packet.writeD(_action); return true;
packet.writeD(_clan.getRankPrivs(_rank).getBitmask());
return true;
}
return false;
} }
} }

View File

@ -34,15 +34,18 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
private final String _name; private final String _name;
private final String _leaderName; private final String _leaderName;
private final Collection<L2ClanMember> _members; private final Collection<L2ClanMember> _members;
private int _pledgeType; private final int _pledgeId;
private final boolean _isSubPledge;
private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge) private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge, boolean isSubPledge)
{ {
_clan = clan; _clan = clan;
_pledge = pledge; _pledge = pledge;
_pledgeId = _pledge == null ? 0x00 : _pledge.getId();
_leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId()); _leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId());
_name = pledge == null ? clan.getName() : pledge.getName(); _name = pledge == null ? clan.getName() : pledge.getName();
_members = _clan.getMembers(); _members = _clan.getMembers();
_isSubPledge = isSubPledge;
} }
public static void sendAllTo(L2PcInstance player) public static void sendAllTo(L2PcInstance player)
@ -50,33 +53,32 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
final L2Clan clan = player.getClan(); final L2Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
player.sendPacket(new PledgeShowMemberListAll(clan, null));
for (SubPledge subPledge : clan.getAllSubPledges()) for (SubPledge subPledge : clan.getAllSubPledges())
{ {
player.sendPacket(new PledgeShowMemberListAll(clan, subPledge)); player.sendPacket(new PledgeShowMemberListAll(clan, subPledge, false));
} }
player.sendPacket(new PledgeShowMemberListAll(clan, null, true));
} }
} }
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
final int pledgeId = (_pledge == null ? 0x00 : _pledge.getId());
OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet); OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet);
packet.writeD(_pledge == null ? 0 : 1); packet.writeD(_isSubPledge ? 0x00 : 0x01);
packet.writeD(_clan.getId()); packet.writeD(_clan.getId());
packet.writeD(Config.SERVER_ID); packet.writeD(Config.SERVER_ID);
packet.writeD(pledgeId); packet.writeD(_pledgeId);
packet.writeS(_name); packet.writeS(_name);
packet.writeS(_leaderName); packet.writeS(_leaderName);
packet.writeD(_clan.getCrestId()); // crest id .. is used again packet.writeD(_clan.getCrestId()); // crest id .. is used again
packet.writeD(_clan.getLevel()); packet.writeD(_clan.getLevel());
packet.writeD(_clan.getCastleId()); packet.writeD(_clan.getCastleId());
packet.writeD(0x00);
packet.writeD(_clan.getHideoutId()); packet.writeD(_clan.getHideoutId());
packet.writeD(_clan.getFortId()); packet.writeD(_clan.getFortId());
packet.writeD(0x00);
packet.writeD(_clan.getRank()); packet.writeD(_clan.getRank());
packet.writeD(_clan.getReputationScore()); packet.writeD(_clan.getReputationScore());
packet.writeD(0x00); // 0 packet.writeD(0x00); // 0
@ -86,11 +88,11 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
packet.writeD(_clan.getAllyCrestId()); packet.writeD(_clan.getAllyCrestId());
packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3 packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3
packet.writeD(0x00); // Territory castle ID packet.writeD(0x00); // Territory castle ID
packet.writeD(_clan.getSubPledgeMembersCount(_pledgeType)); packet.writeD(_clan.getSubPledgeMembersCount(_pledgeId));
for (L2ClanMember m : _members) for (L2ClanMember m : _members)
{ {
if (m.getPledgeType() != _pledgeType) if (m.getPledgeType() != _pledgeId)
{ {
continue; continue;
} }

View File

@ -82,14 +82,14 @@ public class ExPledgeBonusOpen implements IClientOutgoingPacket
// Members online bonus // Members online bonus
packet.writeD(highestMembersOnlineBonus.getRequiredAmount()); packet.writeD(highestMembersOnlineBonus.getRequiredAmount());
packet.writeD(clan.getMaxOnlineMembers()); packet.writeD(clan.getMaxOnlineMembers());
packet.writeD(highestMembersOnlineBonus.getSkillReward().getSkillId()); packet.writeD(membersOnlineBonus != null ? highestMembersOnlineBonus.getSkillReward().getSkillId() : 0x00);
packet.writeC(membersOnlineBonus != null ? membersOnlineBonus.getLevel() : 0x00); packet.writeC(membersOnlineBonus != null ? membersOnlineBonus.getLevel() : 0x00);
packet.writeC(membersOnlineBonus != null ? 0x01 : 0x00); packet.writeC(membersOnlineBonus != null ? 0x01 : 0x00);
// Hunting bonus // Hunting bonus
packet.writeD(highestHuntingBonus.getRequiredAmount()); packet.writeD(highestHuntingBonus.getRequiredAmount());
packet.writeD(clan.getHuntingPoints()); packet.writeD(clan.getHuntingPoints());
packet.writeD(highestHuntingBonus.getItemReward().getId()); packet.writeD(huntingBonus != null ? highestHuntingBonus.getItemReward().getId() : 0x00);
packet.writeC(huntingBonus != null ? huntingBonus.getLevel() : 0x00); packet.writeC(huntingBonus != null ? huntingBonus.getLevel() : 0x00);
packet.writeC(huntingBonus != null ? 0x01 : 0x00); packet.writeC(huntingBonus != null ? 0x01 : 0x00);
return true; return true;

View File

@ -89,7 +89,6 @@ import com.l2jmobius.gameserver.network.serverpackets.ExWorldChatCnt;
import com.l2jmobius.gameserver.network.serverpackets.HennaInfo; import com.l2jmobius.gameserver.network.serverpackets.HennaInfo;
import com.l2jmobius.gameserver.network.serverpackets.ItemList; import com.l2jmobius.gameserver.network.serverpackets.ItemList;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList; import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList;
@ -376,7 +375,6 @@ public class EnterWorld implements IClientIncomingPacket
PledgeShowMemberListAll.sendAllTo(activeChar); PledgeShowMemberListAll.sendAllTo(activeChar);
clan.broadcastToOnlineMembers(new ExPledgeCount(clan)); clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
activeChar.sendPacket(new PledgeSkillList(clan)); activeChar.sendPacket(new PledgeSkillList(clan));
activeChar.sendPacket(new PledgeShowInfoUpdate(clan));
final ClanHall ch = ClanHallData.getInstance().getClanHallByClan(clan); final ClanHall ch = ClanHallData.getInstance().getClanHallByClan(clan);
if ((ch != null) && (ch.getCostFailDay() > 0)) if ((ch != null) && (ch.getCostFailDay() > 0))
{ {

View File

@ -57,6 +57,6 @@ public class RequestClanAskJoinByName implements IClientIncomingPacket
return; return;
} }
invitedPlayer.sendPacket(new AskJoinPledge(activeChar, activeChar.getClan().getSubPledge(_pledgeType) != null ? activeChar.getClan().getSubPledge(_pledgeType).getName() : null, _pledgeType, activeChar.getClan().getName())); invitedPlayer.sendPacket(new AskJoinPledge(activeChar, _pledgeType, activeChar.getClan().getName()));
} }
} }

View File

@ -74,8 +74,7 @@ public final class RequestJoinPledge implements IClientIncomingPacket
} }
final String pledgeName = activeChar.getClan().getName(); final String pledgeName = activeChar.getClan().getName();
final String subPledgeName = (activeChar.getClan().getSubPledge(_pledgeType) != null ? activeChar.getClan().getSubPledge(_pledgeType).getName() : null); target.sendPacket(new AskJoinPledge(activeChar, _pledgeType, pledgeName));
target.sendPacket(new AskJoinPledge(activeChar, subPledgeName, _pledgeType, pledgeName));
} }
public int getPledgeType() public int getPledgeType()

View File

@ -53,6 +53,7 @@ public final class RequestPledgePower implements IClientIncomingPacket
return; return;
} }
player.sendPacket(new ManagePledgePower(client.getActiveChar().getClan(), _action, _rank));
if (_action == 2) if (_action == 2)
{ {
if (player.isClanLeader()) if (player.isClanLeader())
@ -71,9 +72,5 @@ public final class RequestPledgePower implements IClientIncomingPacket
player.getClan().setRankPrivs(_rank, _privs); player.getClan().setRankPrivs(_rank, _privs);
} }
} }
else
{
player.sendPacket(new ManagePledgePower(client.getActiveChar().getClan(), _action, _rank));
}
} }
} }

View File

@ -77,7 +77,7 @@ public final class RequestPledgeSetMemberPowerGrade implements IClientIncomingPa
if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY)
{ {
// also checked from client side // also checked from client side
activeChar.sendMessage("You cannot change academy member grade"); activeChar.sendPacket(SystemMessageId.THAT_PRIVILEGE_CANNOT_BE_GRANTED_TO_A_CLAN_ACADEMY_MEMBER);
return; return;
} }

View File

@ -39,7 +39,7 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket
public void run(L2GameClient client) public void run(L2GameClient client)
{ {
final L2PcInstance activeChar = client.getActiveChar(); final L2PcInstance activeChar = client.getActiveChar();
if ((activeChar == null) || (activeChar.getClan() == null)) if ((activeChar == null) || (activeChar.getClan() != null))
{ {
return; return;
} }

View File

@ -23,14 +23,12 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
public final class AskJoinPledge implements IClientOutgoingPacket public final class AskJoinPledge implements IClientOutgoingPacket
{ {
private final L2PcInstance _requestor; private final L2PcInstance _requestor;
private final String _subPledgeName;
private final int _pledgeType; private final int _pledgeType;
private final String _pledgeName; private final String _pledgeName;
public AskJoinPledge(L2PcInstance requestor, String subPledgeName, int pledgeType, String pledgeName) public AskJoinPledge(L2PcInstance requestor, int pledgeType, String pledgeName)
{ {
_requestor = requestor; _requestor = requestor;
_subPledgeName = subPledgeName;
_pledgeType = pledgeType; _pledgeType = pledgeType;
_pledgeName = pledgeName; _pledgeName = pledgeName;
} }
@ -39,14 +37,8 @@ public final class AskJoinPledge implements IClientOutgoingPacket
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet); OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet);
packet.writeD(_requestor.getObjectId()); packet.writeD(_requestor.getObjectId());
packet.writeS(_requestor.getName()); packet.writeS(_requestor.getName());
if (_subPledgeName != null)
{
packet.writeS(_pledgeType > 0 ? _subPledgeName : _pledgeName);
}
packet.writeS(_pledgeName); packet.writeS(_pledgeName);
if (_pledgeType != 0) if (_pledgeType != 0)
{ {

View File

@ -36,16 +36,12 @@ public class ManagePledgePower implements IClientOutgoingPacket
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
// TODO: Verify this! OutgoingPackets.MANAGE_PLEDGE_POWER.writeId(packet);
if (_action == 1)
{ packet.writeD(_rank);
OutgoingPackets.MANAGE_PLEDGE_POWER.writeId(packet); packet.writeD(_action);
packet.writeD(_clan.getRankPrivs(_rank).getBitmask());
packet.writeD(_rank);
packet.writeD(_action); return true;
packet.writeD(_clan.getRankPrivs(_rank).getBitmask());
return true;
}
return false;
} }
} }

View File

@ -34,15 +34,18 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
private final String _name; private final String _name;
private final String _leaderName; private final String _leaderName;
private final Collection<L2ClanMember> _members; private final Collection<L2ClanMember> _members;
private int _pledgeType; private final int _pledgeId;
private final boolean _isSubPledge;
private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge) private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge, boolean isSubPledge)
{ {
_clan = clan; _clan = clan;
_pledge = pledge; _pledge = pledge;
_pledgeId = _pledge == null ? 0x00 : _pledge.getId();
_leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId()); _leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId());
_name = pledge == null ? clan.getName() : pledge.getName(); _name = pledge == null ? clan.getName() : pledge.getName();
_members = _clan.getMembers(); _members = _clan.getMembers();
_isSubPledge = isSubPledge;
} }
public static void sendAllTo(L2PcInstance player) public static void sendAllTo(L2PcInstance player)
@ -50,33 +53,32 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
final L2Clan clan = player.getClan(); final L2Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
player.sendPacket(new PledgeShowMemberListAll(clan, null));
for (SubPledge subPledge : clan.getAllSubPledges()) for (SubPledge subPledge : clan.getAllSubPledges())
{ {
player.sendPacket(new PledgeShowMemberListAll(clan, subPledge)); player.sendPacket(new PledgeShowMemberListAll(clan, subPledge, false));
} }
player.sendPacket(new PledgeShowMemberListAll(clan, null, true));
} }
} }
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
final int pledgeId = (_pledge == null ? 0x00 : _pledge.getId());
OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet); OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet);
packet.writeD(_pledge == null ? 0 : 1); packet.writeD(_isSubPledge ? 0x00 : 0x01);
packet.writeD(_clan.getId()); packet.writeD(_clan.getId());
packet.writeD(Config.SERVER_ID); packet.writeD(Config.SERVER_ID);
packet.writeD(pledgeId); packet.writeD(_pledgeId);
packet.writeS(_name); packet.writeS(_name);
packet.writeS(_leaderName); packet.writeS(_leaderName);
packet.writeD(_clan.getCrestId()); // crest id .. is used again packet.writeD(_clan.getCrestId()); // crest id .. is used again
packet.writeD(_clan.getLevel()); packet.writeD(_clan.getLevel());
packet.writeD(_clan.getCastleId()); packet.writeD(_clan.getCastleId());
packet.writeD(0x00);
packet.writeD(_clan.getHideoutId()); packet.writeD(_clan.getHideoutId());
packet.writeD(_clan.getFortId()); packet.writeD(_clan.getFortId());
packet.writeD(0x00);
packet.writeD(_clan.getRank()); packet.writeD(_clan.getRank());
packet.writeD(_clan.getReputationScore()); packet.writeD(_clan.getReputationScore());
packet.writeD(0x00); // 0 packet.writeD(0x00); // 0
@ -86,11 +88,11 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
packet.writeD(_clan.getAllyCrestId()); packet.writeD(_clan.getAllyCrestId());
packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3 packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3
packet.writeD(0x00); // Territory castle ID packet.writeD(0x00); // Territory castle ID
packet.writeD(_clan.getSubPledgeMembersCount(_pledgeType)); packet.writeD(_clan.getSubPledgeMembersCount(_pledgeId));
for (L2ClanMember m : _members) for (L2ClanMember m : _members)
{ {
if (m.getPledgeType() != _pledgeType) if (m.getPledgeType() != _pledgeId)
{ {
continue; continue;
} }

View File

@ -82,14 +82,14 @@ public class ExPledgeBonusOpen implements IClientOutgoingPacket
// Members online bonus // Members online bonus
packet.writeD(highestMembersOnlineBonus.getRequiredAmount()); packet.writeD(highestMembersOnlineBonus.getRequiredAmount());
packet.writeD(clan.getMaxOnlineMembers()); packet.writeD(clan.getMaxOnlineMembers());
packet.writeD(highestMembersOnlineBonus.getSkillReward().getSkillId()); packet.writeD(membersOnlineBonus != null ? highestMembersOnlineBonus.getSkillReward().getSkillId() : 0x00);
packet.writeC(membersOnlineBonus != null ? membersOnlineBonus.getLevel() : 0x00); packet.writeC(membersOnlineBonus != null ? membersOnlineBonus.getLevel() : 0x00);
packet.writeC(membersOnlineBonus != null ? 0x01 : 0x00); packet.writeC(membersOnlineBonus != null ? 0x01 : 0x00);
// Hunting bonus // Hunting bonus
packet.writeD(highestHuntingBonus.getRequiredAmount()); packet.writeD(highestHuntingBonus.getRequiredAmount());
packet.writeD(clan.getHuntingPoints()); packet.writeD(clan.getHuntingPoints());
packet.writeD(highestHuntingBonus.getItemReward().getId()); packet.writeD(huntingBonus != null ? highestHuntingBonus.getItemReward().getId() : 0x00);
packet.writeC(huntingBonus != null ? huntingBonus.getLevel() : 0x00); packet.writeC(huntingBonus != null ? huntingBonus.getLevel() : 0x00);
packet.writeC(huntingBonus != null ? 0x01 : 0x00); packet.writeC(huntingBonus != null ? 0x01 : 0x00);
return true; return true;

View File

@ -89,7 +89,6 @@ import com.l2jmobius.gameserver.network.serverpackets.ExWorldChatCnt;
import com.l2jmobius.gameserver.network.serverpackets.HennaInfo; import com.l2jmobius.gameserver.network.serverpackets.HennaInfo;
import com.l2jmobius.gameserver.network.serverpackets.ItemList; import com.l2jmobius.gameserver.network.serverpackets.ItemList;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowInfoUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListAll;
import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate; import com.l2jmobius.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList; import com.l2jmobius.gameserver.network.serverpackets.PledgeSkillList;
@ -376,7 +375,6 @@ public class EnterWorld implements IClientIncomingPacket
PledgeShowMemberListAll.sendAllTo(activeChar); PledgeShowMemberListAll.sendAllTo(activeChar);
clan.broadcastToOnlineMembers(new ExPledgeCount(clan)); clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
activeChar.sendPacket(new PledgeSkillList(clan)); activeChar.sendPacket(new PledgeSkillList(clan));
activeChar.sendPacket(new PledgeShowInfoUpdate(clan));
final ClanHall ch = ClanHallData.getInstance().getClanHallByClan(clan); final ClanHall ch = ClanHallData.getInstance().getClanHallByClan(clan);
if ((ch != null) && (ch.getCostFailDay() > 0)) if ((ch != null) && (ch.getCostFailDay() > 0))
{ {

View File

@ -57,6 +57,6 @@ public class RequestClanAskJoinByName implements IClientIncomingPacket
return; return;
} }
invitedPlayer.sendPacket(new AskJoinPledge(activeChar, activeChar.getClan().getSubPledge(_pledgeType) != null ? activeChar.getClan().getSubPledge(_pledgeType).getName() : null, _pledgeType, activeChar.getClan().getName())); invitedPlayer.sendPacket(new AskJoinPledge(activeChar, _pledgeType, activeChar.getClan().getName()));
} }
} }

View File

@ -74,8 +74,7 @@ public final class RequestJoinPledge implements IClientIncomingPacket
} }
final String pledgeName = activeChar.getClan().getName(); final String pledgeName = activeChar.getClan().getName();
final String subPledgeName = (activeChar.getClan().getSubPledge(_pledgeType) != null ? activeChar.getClan().getSubPledge(_pledgeType).getName() : null); target.sendPacket(new AskJoinPledge(activeChar, _pledgeType, pledgeName));
target.sendPacket(new AskJoinPledge(activeChar, subPledgeName, _pledgeType, pledgeName));
} }
public int getPledgeType() public int getPledgeType()

View File

@ -53,6 +53,7 @@ public final class RequestPledgePower implements IClientIncomingPacket
return; return;
} }
player.sendPacket(new ManagePledgePower(client.getActiveChar().getClan(), _action, _rank));
if (_action == 2) if (_action == 2)
{ {
if (player.isClanLeader()) if (player.isClanLeader())
@ -71,9 +72,5 @@ public final class RequestPledgePower implements IClientIncomingPacket
player.getClan().setRankPrivs(_rank, _privs); player.getClan().setRankPrivs(_rank, _privs);
} }
} }
else
{
player.sendPacket(new ManagePledgePower(client.getActiveChar().getClan(), _action, _rank));
}
} }
} }

View File

@ -77,7 +77,7 @@ public final class RequestPledgeSetMemberPowerGrade implements IClientIncomingPa
if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY)
{ {
// also checked from client side // also checked from client side
activeChar.sendMessage("You cannot change academy member grade"); activeChar.sendPacket(SystemMessageId.THAT_PRIVILEGE_CANNOT_BE_GRANTED_TO_A_CLAN_ACADEMY_MEMBER);
return; return;
} }

View File

@ -39,7 +39,7 @@ public class RequestPledgeWaitingApplied implements IClientIncomingPacket
public void run(L2GameClient client) public void run(L2GameClient client)
{ {
final L2PcInstance activeChar = client.getActiveChar(); final L2PcInstance activeChar = client.getActiveChar();
if ((activeChar == null) || (activeChar.getClan() == null)) if ((activeChar == null) || (activeChar.getClan() != null))
{ {
return; return;
} }

View File

@ -23,14 +23,12 @@ import com.l2jmobius.gameserver.network.OutgoingPackets;
public final class AskJoinPledge implements IClientOutgoingPacket public final class AskJoinPledge implements IClientOutgoingPacket
{ {
private final L2PcInstance _requestor; private final L2PcInstance _requestor;
private final String _subPledgeName;
private final int _pledgeType; private final int _pledgeType;
private final String _pledgeName; private final String _pledgeName;
public AskJoinPledge(L2PcInstance requestor, String subPledgeName, int pledgeType, String pledgeName) public AskJoinPledge(L2PcInstance requestor, int pledgeType, String pledgeName)
{ {
_requestor = requestor; _requestor = requestor;
_subPledgeName = subPledgeName;
_pledgeType = pledgeType; _pledgeType = pledgeType;
_pledgeName = pledgeName; _pledgeName = pledgeName;
} }
@ -39,14 +37,8 @@ public final class AskJoinPledge implements IClientOutgoingPacket
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet); OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet);
packet.writeD(_requestor.getObjectId()); packet.writeD(_requestor.getObjectId());
packet.writeS(_requestor.getName()); packet.writeS(_requestor.getName());
if (_subPledgeName != null)
{
packet.writeS(_pledgeType > 0 ? _subPledgeName : _pledgeName);
}
packet.writeS(_pledgeName); packet.writeS(_pledgeName);
if (_pledgeType != 0) if (_pledgeType != 0)
{ {

View File

@ -36,16 +36,12 @@ public class ManagePledgePower implements IClientOutgoingPacket
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
// TODO: Verify this! OutgoingPackets.MANAGE_PLEDGE_POWER.writeId(packet);
if (_action == 1)
{ packet.writeD(_rank);
OutgoingPackets.MANAGE_PLEDGE_POWER.writeId(packet); packet.writeD(_action);
packet.writeD(_clan.getRankPrivs(_rank).getBitmask());
packet.writeD(_rank);
packet.writeD(_action); return true;
packet.writeD(_clan.getRankPrivs(_rank).getBitmask());
return true;
}
return false;
} }
} }

View File

@ -34,15 +34,18 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
private final String _name; private final String _name;
private final String _leaderName; private final String _leaderName;
private final Collection<L2ClanMember> _members; private final Collection<L2ClanMember> _members;
private int _pledgeType; private final int _pledgeId;
private final boolean _isSubPledge;
private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge) private PledgeShowMemberListAll(L2Clan clan, SubPledge pledge, boolean isSubPledge)
{ {
_clan = clan; _clan = clan;
_pledge = pledge; _pledge = pledge;
_pledgeId = _pledge == null ? 0x00 : _pledge.getId();
_leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId()); _leaderName = pledge == null ? clan.getLeaderName() : CharNameTable.getInstance().getNameById(pledge.getLeaderId());
_name = pledge == null ? clan.getName() : pledge.getName(); _name = pledge == null ? clan.getName() : pledge.getName();
_members = _clan.getMembers(); _members = _clan.getMembers();
_isSubPledge = isSubPledge;
} }
public static void sendAllTo(L2PcInstance player) public static void sendAllTo(L2PcInstance player)
@ -50,33 +53,32 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
final L2Clan clan = player.getClan(); final L2Clan clan = player.getClan();
if (clan != null) if (clan != null)
{ {
player.sendPacket(new PledgeShowMemberListAll(clan, null));
for (SubPledge subPledge : clan.getAllSubPledges()) for (SubPledge subPledge : clan.getAllSubPledges())
{ {
player.sendPacket(new PledgeShowMemberListAll(clan, subPledge)); player.sendPacket(new PledgeShowMemberListAll(clan, subPledge, false));
} }
player.sendPacket(new PledgeShowMemberListAll(clan, null, true));
} }
} }
@Override @Override
public boolean write(PacketWriter packet) public boolean write(PacketWriter packet)
{ {
final int pledgeId = (_pledge == null ? 0x00 : _pledge.getId());
OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet); OutgoingPackets.PLEDGE_SHOW_MEMBER_LIST_ALL.writeId(packet);
packet.writeD(_pledge == null ? 0 : 1); packet.writeD(_isSubPledge ? 0x00 : 0x01);
packet.writeD(_clan.getId()); packet.writeD(_clan.getId());
packet.writeD(Config.SERVER_ID); packet.writeD(Config.SERVER_ID);
packet.writeD(pledgeId); packet.writeD(_pledgeId);
packet.writeS(_name); packet.writeS(_name);
packet.writeS(_leaderName); packet.writeS(_leaderName);
packet.writeD(_clan.getCrestId()); // crest id .. is used again packet.writeD(_clan.getCrestId()); // crest id .. is used again
packet.writeD(_clan.getLevel()); packet.writeD(_clan.getLevel());
packet.writeD(_clan.getCastleId()); packet.writeD(_clan.getCastleId());
packet.writeD(0x00);
packet.writeD(_clan.getHideoutId()); packet.writeD(_clan.getHideoutId());
packet.writeD(_clan.getFortId()); packet.writeD(_clan.getFortId());
packet.writeD(0x00);
packet.writeD(_clan.getRank()); packet.writeD(_clan.getRank());
packet.writeD(_clan.getReputationScore()); packet.writeD(_clan.getReputationScore());
packet.writeD(0x00); // 0 packet.writeD(0x00); // 0
@ -86,11 +88,11 @@ public class PledgeShowMemberListAll implements IClientOutgoingPacket
packet.writeD(_clan.getAllyCrestId()); packet.writeD(_clan.getAllyCrestId());
packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3 packet.writeD(_clan.isAtWar() ? 1 : 0); // new c3
packet.writeD(0x00); // Territory castle ID packet.writeD(0x00); // Territory castle ID
packet.writeD(_clan.getSubPledgeMembersCount(_pledgeType)); packet.writeD(_clan.getSubPledgeMembersCount(_pledgeId));
for (L2ClanMember m : _members) for (L2ClanMember m : _members)
{ {
if (m.getPledgeType() != _pledgeType) if (m.getPledgeType() != _pledgeId)
{ {
continue; continue;
} }

View File

@ -82,14 +82,14 @@ public class ExPledgeBonusOpen implements IClientOutgoingPacket
// Members online bonus // Members online bonus
packet.writeD(highestMembersOnlineBonus.getRequiredAmount()); packet.writeD(highestMembersOnlineBonus.getRequiredAmount());
packet.writeD(clan.getMaxOnlineMembers()); packet.writeD(clan.getMaxOnlineMembers());
packet.writeD(highestMembersOnlineBonus.getSkillReward().getSkillId()); packet.writeD(membersOnlineBonus != null ? highestMembersOnlineBonus.getSkillReward().getSkillId() : 0x00);
packet.writeC(membersOnlineBonus != null ? membersOnlineBonus.getLevel() : 0x00); packet.writeC(membersOnlineBonus != null ? membersOnlineBonus.getLevel() : 0x00);
packet.writeC(membersOnlineBonus != null ? 0x01 : 0x00); packet.writeC(membersOnlineBonus != null ? 0x01 : 0x00);
// Hunting bonus // Hunting bonus
packet.writeD(highestHuntingBonus.getRequiredAmount()); packet.writeD(highestHuntingBonus.getRequiredAmount());
packet.writeD(clan.getHuntingPoints()); packet.writeD(clan.getHuntingPoints());
packet.writeD(highestHuntingBonus.getItemReward().getId()); packet.writeD(huntingBonus != null ? highestHuntingBonus.getItemReward().getId() : 0x00);
packet.writeC(huntingBonus != null ? huntingBonus.getLevel() : 0x00); packet.writeC(huntingBonus != null ? huntingBonus.getLevel() : 0x00);
packet.writeC(huntingBonus != null ? 0x01 : 0x00); packet.writeC(huntingBonus != null ? 0x01 : 0x00);
return true; return true;