Light patch lucera 166Хз нет такой проблемы. Что за интерфейс?
Тести на чистом патче
Апдейт, все меняет. Но есть одно но, каждый раз, когда нового члена пати берут в группу, всем выскакивает окно "Change party loot to Find keepers"Проверю самостоятельно, обязано менять. Я правда кое что переписывал там и мог чуток допустить ошибку, сегодня проверю.
вообще то так и должно быть... по моему, посмотрюАпдейт, все меняет. Но есть одно но, каждый раз, когда нового члена пати берут в группу, всем выскакивает окно "Change party loot to Find keepers"
Нетвообще то так и должно быть... по моему, посмотрю
вообще то так и должно быть... по моему, посмотрю
это баг который связан из-за разности данных в пакетах пати. Недавно с Гайкотсу смотрели в чем именно проблема.
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;
}
}
/**
* @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;
}
}
/**
* @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 не совсем как ты описалэто баг который связан из-за разности данных в пакетах пати. Недавно с Гайкотсу смотрели в чем именно проблема.
Пакет 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; } }