Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Не работает пати на 530 протоколе (https://forum.zone-game.info/showthread.php?t=44543)

Magican 19.01.2021 19:47

Не работает пати на 530 протоколе
 
Всем привет. И так, хочу обрисовать проблему, с которой я столкнулся, имея сырые исходники 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 = readD();
}

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 bufClientThread client)
    {
        
super(bufclient);

        
_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 протоколом.


Текущее время: 03:00. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot