Пакеты на торговлю продажа/покупка
PrivateStoreListBuy
PHP код:
protected final void writeImpl()
{
writeC(0xbe);
writeD(_objId);
writeQ(_playerAdena);
writeD(_items.length);
for (TradeList.TradeItem item : _items)
{
writeD(item.getObjectId());
writeD(item.getItem().getItemId());
writeD(item.getLocationSlot());
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchant());
writeH(item.getCustomType2());
// Player cannot sell/buy augmented, shadow or time-limited items
// probably so hardcode values here
writeD(0x00); // Augment
writeD(-1); // Mana
writeD(-9999); // Time
writeH(1); // при 0 итем красный(заблокирован)
writeH(item.getAttackElementType());
writeH(item.getAttackElementPower());
for (byte i = 0; i < 6; i++)
{
writeH(item.getElementDefAttr(i));
}
// Enchant Effects
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeD(item.getObjectId());
writeQ(item.getPrice());
writeQ(item.getItem().getReferencePrice() * 2);
writeQ(item.getStoreCount());
}
}
PrivateStoreListSell
PHP код:
protected final void writeImpl()
{
writeC(0xa1);
writeD(_objId);
writeD(_packageSale ? 1 : 0);
writeQ(_playerAdena);
writeD(_items.length);
for (TradeList.TradeItem item : _items)
{
writeD(item.getObjectId());
writeD(item.getItem().getItemId());
writeD(item.getLocationSlot());
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchant());
writeH(item.getCustomType2());
// Player cannot sell/buy augmented, shadow or time-limited items
// probably so hardcode values here
writeD(0x00); // Augment
writeD(-1); // Mana
writeD(-9999); // Time
writeH(1); // при 0 итем красный(заблокирован)
writeH(item.getAttackElementType());
writeH(item.getAttackElementPower());
for (byte i = 0; i < 6; i++)
{
writeH(item.getElementDefAttr(i));
}
// Enchant Effects
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeQ(item.getPrice());
writeQ(item.getItem().getReferencePrice() * 2);
}
}
PrivateStoreManageListBuy
PHP код:
protected final void writeImpl()
{
writeC(0xbd);
//section 1
writeD(_objId);
writeQ(_playerAdena);
//section2
writeD(_itemList.length); // inventory items for potential buy
for (L2ItemInstance item : _itemList)
{
writeD(item.getObjectId());
writeD(item.getItem().getItemId());
writeD(item.getLocationSlot());
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(item.isEquipped() ? 0x01 : 0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchantLevel());
writeH(item.getCustomType2());
// Player cannot sell/buy augmented, shadow or time-limited items
// probably so hardcode values here
writeD(0x00); // Augment
writeD(-1); // Mana
writeD(-9999); // Time
writeH(1); // при 0 итем красный(заблокирован)
writeH(item.getAttackElementType());
writeH(item.getAttackElementPower());
for (byte i = 0; i < 6; i++)
{
writeH(item.getElementDefAttr(i));
}
// Enchant Effects
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeQ(item.getItem().getReferencePrice() * 2);
}
//section 3
writeD(_buyList.length); //count for all items already added for buy
for (TradeList.TradeItem item : _buyList)
{
writeD(item.getObjectId());
writeD(item.getItem().getItemId());
writeD(item.getLocationSlot());
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchant());
writeH(item.getCustomType2());
// Player cannot sell/buy augmented, shadow or time-limited items
// probably so hardcode values here
writeD(0x00); // Augment
writeD(-1); // Mana
writeD(-9999); // Time
writeH(item.getAttackElementType());
writeH(item.getAttackElementPower());
for (byte i = 0; i < 6; i++)
{
writeH(item.getElementDefAttr(i));
}
// Enchant Effects
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeQ(item.getPrice());
writeQ(item.getItem().getReferencePrice() * 2);
writeQ(item.getCount());
}
}
PrivateStoreManageListSell
PHP код:
protected final void writeImpl()
{
writeC(0xa0);
//section 1
writeD(_objId);
writeD(_packageSale ? 1 : 0); // Package sell
writeQ(_playerAdena);
//section2
writeD(_itemList.length); //for potential sells
for (TradeList.TradeItem item : _itemList)
{
writeD(item.getObjectId());
writeD(item.getItem().getItemId());
writeD(item.getLocationSlot());
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchant());
writeH(item.getCustomType2());
// Player cannot sell/buy augmented, shadow or time-limited items.
// probably so hardcode values here
writeD(0x00); // Augment
writeD(-1); // Mana
writeD(-9999); // Time
writeH(1); // при 0 итем красный(заблокирован)
writeH(item.getAttackElementType());
writeH(item.getAttackElementPower());
for (byte i = 0; i < 6; i++)
{
writeH(item.getElementDefAttr(i));
}
// Enchant Effects
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeQ(item.getItem().getReferencePrice() * 2);
}
//section 3
writeD(_sellList.length); //count for any items already added for sell
for (TradeList.TradeItem item : _sellList)
{
writeD(item.getObjectId());
writeD(item.getItem().getItemId());
writeD(item.getLocationSlot());
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchant());
writeH(item.getCustomType2());
// Player cannot sell/buy augmented, shadow or time-limited items
// probably so hardcode values here
writeD(0x00); // Augment
writeD(-1); // Mana
writeD(-9999); // Time
writeH(1); // при 0 итем красный(заблокирован)
writeH(item.getAttackElementType());
writeH(item.getAttackElementPower());
for (byte i = 0; i < 6; i++)
{
writeH(item.getElementDefAttr(i));
}
// Enchant Effects
writeH(0x00);
writeH(0x00);
writeH(0x00);
writeQ(item.getPrice());
writeQ(item.getItem().getReferencePrice() * 2);
}
}
Добавлено через 7 минут
Цитата:
Сообщение от darkevil
Вот тебе большое спасибо, я сутки промудохался, а ошибка то была оказывается под носом >_<... Я методом тыка пытался определить структуру пакета в итоге у меня внутри цикла аж 19 D лишних >_<...
|
Надо с самого начало смотреть пакет а не с цикла сразу =)