Смена лута в пати

В общем проблема в чем, в игре в клиенте ( будучи в пати) нельзя изменить пати лут, но при создании новой пати, прилетает сначала инвайт, а потом сразу смена лута. Каждый раз, когда берется новый игрок в пати - прилетает смена лута. Кто сталкивался?
1702736854190.png
 
Хз нет такой проблемы. Что за интерфейс?
Тести на чистом патче
 
Проверю самостоятельно, обязано менять. Я правда кое что переписывал там и мог чуток допустить ошибку, сегодня проверю.
 
Проверю самостоятельно, обязано менять. Я правда кое что переписывал там и мог чуток допустить ошибку, сегодня проверю.
Апдейт, все меняет. Но есть одно но, каждый раз, когда нового члена пати берут в группу, всем выскакивает окно "Change party loot to Find keepers"
 
Апдейт, все меняет. Но есть одно но, каждый раз, когда нового члена пати берут в группу, всем выскакивает окно "Change party loot to Find keepers"
вообще то так и должно быть... по моему, посмотрю
 
вообще то так и должно быть... по моему, посмотрю
это баг который связан из-за разности данных в пакетах пати. Недавно с Гайкотсу смотрели в чем именно проблема.

Пакет JOIN_PARTY (0x3A) должен отправляться при вступнии групу:
* Игроку, который пригласил: int response, int _distribution type
* Игроку, который встипил: int 2 вроде, int _distribution type
При выходе из групы слать пакет - SET_DISMISS_PARTY (0x3F), ну и если пати развалилась = тоже каждому слать. Значение указать "1", как integer
Ну и если есть пакет EX_REPLY_HAND_OVER_PARTY_MASTER (0xFE, 0xC5) - слать его при изменении лидера групы. Лидеру 1, остальным 0. Значение тоже как int.
Java:
public class JoinParty implements IClientOutgoingPacket
{
    private final int _response;
    private final int _distributionType;

    public JoinParty(int response, int distributionType)
    {
        _response = response;
        _distributionType = distributionType;
    }
  
    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.JOIN_PARTY.writeId(packet);
      
        packet.writeD(_response);
        packet.writeD(_distributionType);
        return true;
    }
}
Java:
/**
 * @author Index
 */
public class SetPartyDismiss implements IClientOutgoingPacket
{
    public final static SetPartyDismiss DISMISS_GROUP = new SetPartyDismiss(1);

    private final int _type;

    private SetPartyDismiss(int type)
    {
        _type = type;
    }

    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.SET_DISMISS_PARTY.writeId(packet);
        packet.writeD(_type);
        return true;
    }
}
Java:
/**
 * @author Index
 */
public class ExReplyHandOverPartyMaster implements IClientOutgoingPacket
{
    public final static ExReplyHandOverPartyMaster SEND_TO_LEADER = new ExReplyHandOverPartyMaster(true);
    public final static ExReplyHandOverPartyMaster SEND_TO_MEMBER = new ExReplyHandOverPartyMaster(false);

    private final boolean _isLeader;

    private ExReplyHandOverPartyMaster(boolean isLeader)
    {
        _isLeader = isLeader;
    }

    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.EX_REPLY_HAND_OVER_PARTY_MASTER.writeId(packet);
        packet.writeD(_isLeader ? 1 : 0);
        return true;
    }
}
 
Last edited:
Сяду разберусь, пока чуток занят с калькуляторами
 
И такс, я переписал, теперь как мне все проверить ?
 
это баг который связан из-за разности данных в пакетах пати. Недавно с Гайкотсу смотрели в чем именно проблема.

Пакет JOIN_PARTY (0x3A) должен отправляться при вступнии групу:
* Игроку, который пригласил: int response, int _distribution type
* Игроку, который встипил: int 2 вроде, int _distribution type
При выходе из групы слать пакет - SET_DISMISS_PARTY (0x3F), ну и если пати развалилась = тоже каждому слать. Значение указать "1", как integer
Ну и если есть пакет EX_REPLY_HAND_OVER_PARTY_MASTER (0xFE, 0xC5) - слать его при изменении лидера групы. Лидеру 1, остальным 0. Значение тоже как int.
Java:
public class JoinParty implements IClientOutgoingPacket
{
    private final int _response;
    private final int _distributionType;

    public JoinParty(int response, int distributionType)
    {
        _response = response;
        _distributionType = distributionType;
    }
 
    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.JOIN_PARTY.writeId(packet);
     
        packet.writeD(_response);
        packet.writeD(_distributionType);
        return true;
    }
}
Java:
/**
 * @author Index
 */
public class SetPartyDismiss implements IClientOutgoingPacket
{
    public final static SetPartyDismiss DISMISS_GROUP = new SetPartyDismiss(1);

    private final int _type;

    private SetPartyDismiss(int type)
    {
        _type = type;
    }

    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.SET_DISMISS_PARTY.writeId(packet);
        packet.writeD(_type);
        return true;
    }
}
Java:
/**
 * @author Index
 */
public class ExReplyHandOverPartyMaster implements IClientOutgoingPacket
{
    public final static ExReplyHandOverPartyMaster SEND_TO_LEADER = new ExReplyHandOverPartyMaster(true);
    public final static ExReplyHandOverPartyMaster SEND_TO_MEMBER = new ExReplyHandOverPartyMaster(false);

    private final boolean _isLeader;

    private ExReplyHandOverPartyMaster(boolean isLeader)
    {
        _isLeader = isLeader;
    }

    @Override
    public boolean write(PacketWriter packet)
    {
        OutgoingPackets.EX_REPLY_HAND_OVER_PARTY_MASTER.writeId(packet);
        packet.writeD(_isLeader ? 1 : 0);
        return true;
    }
}
Гаикосту написал - он объяснил суть, тут ExReplyHandOverPartyMaster не совсем как ты описал
 
Back
Top