Psycho
Легенда
- Хроники
- Chaotic Throne: High Five
- Исходники
- Присутствуют
- Сборка
- L2JServer
Кто в курсе, на кой хер он вообще нужен? Не ну типо по логике понятно что он клиенту отправляет окно продажи.
На том же мобиусе я подобного пакета не нашел, да и отсылаемые writeC(0x06); вообще не понятно что делают.
Ну типо я перевожу пакеты на такой формат ServerPackets.ИМЯ_ПАКЕТА.writeId(this); и не понятно что за пакет writeC(0x06);
Хроники хф.
На том же мобиусе я подобного пакета не нашел, да и отсылаемые writeC(0x06); вообще не понятно что делают.
Ну типо я перевожу пакеты на такой формат ServerPackets.ИМЯ_ПАКЕТА.writeId(this); и не понятно что за пакет writeC(0x06);
Хроники хф.
Java:
package l2j.gameserver.network.serverpackets;
import l2j.gameserver.model.actor.instance.Merchant;
import l2j.gameserver.model.actor.instance.Player;
import l2j.gameserver.model.items.instance.Item;
import java.util.ArrayList;
import java.util.List;
public class SellList extends ServerPacket {
private final Player _activeChar;
private final Merchant _lease;
private final long _money;
private final List<Item> _selllist = new ArrayList<>();
public SellList(Player player) {
_activeChar = player;
_lease = null;
_money = _activeChar.getAdena();
doLease();
}
public SellList(Player player, Merchant lease) {
_activeChar = player;
_lease = lease;
_money = _activeChar.getAdena();
doLease();
}
private void doLease() {
if (_lease == null) {
for (Item item : _activeChar.getInventory().getItems()) {
if (!item.isEquipped() && item.isSellable() && (!_activeChar.hasSummon() || (item.getObjectId() != _activeChar.getSummon().getControlObjectId()))) // Pet is summoned and not the item that summoned the pet
{
_selllist.add(item);
}
}
}
}
@Override
protected final void writeImpl() {
writeC(0x06);
writeQ(_money);
writeD(_lease == null ? 0x00 : 1000000 + _lease.getTemplate().getId());
writeH(_selllist.size());
for (Item item : _selllist) {
writeH(item.getItem().getType1());
writeD(item.getObjectId());
writeD(item.getDisplayId());
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.isEquipped() ? 0x01 : 0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchantLevel());
writeH(0x00); // TODO: Verify me
writeH(item.getCustomType2());
writeQ(item.getItem().getReferencePrice() / 2);
// T1
writeH(item.getAttackElementType());
writeH(item.getAttackElementPower());
for (byte i = 0; i < 6; i++) {
writeH(item.getElementDefAttr(i));
}
// Enchant Effects
for (int op : item.getEnchantOptions()) {
writeH(op);
}
}
}
}
Последнее редактирование:
