Всем привет. И так, хочу обрисовать проблему, с которой я столкнулся, имея сырые исходники l2j сервера C3. У меня имеется протокол клиента 530, и вот на нём, не работа запрос пати, при этом, на 560 протоколе всё отлично работает.
Покопавшись в исходниках, нашел такую закономерность в классе class RequestJoinParty:
private int _id;
private String _name = null;
private final int _itemDistribution;
private final int revision;
public RequestJoinParty(ByteBuffer buf, ClientThread client)
{
super(buf, client);
revision = client.getRevision();
if (revision >= 551)
{
_name = readS();
}
else
{
_id = readD();
}
_itemDistribution = read
D();
}
void runImpl()
{
SystemMessage msg;
L2PcInstance target = null;
if (revision < 551)
{
target = (L2PcInstance) L2World.getInstance().findObject(_id);
}
else
{
target = L2World.getInstance().getPlayer(_name);
}
if(target == null)
{
SystemMessage sm = new SystemMessage(SystemMessage.TARGET_IS_INCORRECT);
getClient().getActiveChar().sendPacket(sm);
return;
}
А вот код, на котором работает пати с протоколом 560 и выше:
PHP код:
private final String _name;
private final int _itemDistribution;
public RequestJoinParty(ByteBuffer buf, ClientThread client)
{
super(buf, client);
_name = readS();
_itemDistribution = readD();
}
void runImpl()
{
L2PcInstance requestor = getClient().getActiveChar();
L2PcInstance target = L2World.getInstance().getPlayer(_name);
if (requestor == null)
return;
if (target == null)
{
requestor.sendPacket(new SystemMessage(SystemMessage.TARGET_IS_INCORRECT));
return;
}
SystemMessage msg;
if (target.isInParty())
{
msg = new SystemMessage(SystemMessage.S1_IS_ALREADY_IN_PARTY);
msg.addString(target.getName());
requestor.sendPacket(msg);
return;
}
И я никак не могу понять, в чём может быть проблема. Точнее подозреваю где, но я не уверен и возможно не знаю куда ссылаться и где искать.
Кто-то сможет помочь мне? Если конечно не затруднит? Мне нужно, чтобы запрос на пати принимался вторым игроком, ибо сейчас просто пишет Incorrect Target, хотя персонаж в таргет выделен
P.S Но, даже при первом приведенном раскладе, пати не работает. Скорее всего, разрабы не успели реализовать это в джаве с 530 протоколом.