Рейтинг темы:
  • 5 Голос(ов) - 4.2 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа над Goddess of Destruction (part 2)
#71
Долгожданная покупка/продажа/возврат

BuyList

PHP код:
<?php 
protected final void writeImpl()
{
writeC(0xFE);
writeH(0xB7);
writeD(0x00);
writeQ(_money); // current money
writeD(_listId);
writeD(0x00); // 0 = 250 количество слотов

writeH(_list.size());

for (
L2TradeItem item : _list)
{
if (
item.getCurrentCount() > 0 || !item.hasLimitedStock())
{
writeD(item.getItemId());
writeD(item.getItemId());
writeD(0);
writeQ(item.getCurrentCount() < 0 ? 0 : item.getCurrentCount());
writeH(item.getTemplate().getType2());
writeH(item.getTemplate().getType1()); // Custom Type 1
writeH(0x00); // isEquipped
writeD(item.getTemplate().getBodyPart()); // Body Part
writeH(0x00); // Enchant
writeH(0x00); // Custom Type
writeD(0x00); // Augment
writeD(-1); // Mana
writeD(-9999); // Time
writeH(1); // при 0 итем красный
writeH(0x00); // Element Type
writeH(0x00); // Element Power
for (byte i = 0; i < 6; i++)
{
writeH(0x00);
}
// Enchant Effects
writeH(0x00);
writeH(0x00);
writeH(0x00);

if (
item.getItemId() >= 3960 && item.getItemId() <= 4026)// Config.RATE_SIEGE_GUARDS_PRICE-//'
writeQ((long) (item.getPrice() * Config.RATE_SIEGE_GUARDS_PRICE * (1 + _taxRate)));
else
writeQ((long) (item.getPrice() * (1 + _taxRate)));
}
}
}


ExBuySellListPacket

PHP код:
<?php 
protected final void writeImpl()
{
writeC(0xFE);
writeH(0xB7);
writeD(0x01);
writeD(0x00); // 0 = 250 количество слотов

if (_sellList != null && _sellList.length > 0)
{
writeH(_sellList.length);
for (
L2ItemInstance item : _sellList)
{
writeD(item.getObjectId());
writeD(item.getItemId());
writeD(item.getLocationSlot());
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchantLevel());
writeH(item.getCustomType2());
// Augment, Mana, Time - hardcode for now
writeD(0x00);
writeD(-1);
writeD(-9999);
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);
}
}
else
writeH(0x00);

if (
_refundList != null && _refundList.length > 0)
{
writeH(_refundList.length);
int idx = 0;
for (
L2ItemInstance item : _refundList)
{
writeD(item.getObjectId());
writeD(item.getItemId());
writeD(0x00);
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchantLevel());
writeH(item.getCustomType2());
// Augment, Mana, Time - hardcode for now
writeD(0x00);
writeD(-1);
writeD(-9999);
writeH(1);
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(idx++);
writeQ(item.getItem().getReferencePrice() / 2 * item.getCount());
}
}
else
writeH(0x00);

writeC(_done ? 0x01 : 0x00);

_buyList.clear();
}


[Изображение: 26ca8c4a54ae901a09ee0720cfcd74c3.jpg]

[Изображение: d0ea2a9524754ce45988707e1d37fa83.jpg]

[Изображение: cf9510987a861682f7ba8a462424cf0f.jpg]

Добавлено через 34 минуты
WareHouseDepositList ( положить на склад )
Код:
    protected final void writeImpl()
    {
        writeC(0x41);
        /* 0x01-Private Warehouse
         * 0x02-Clan Warehouse
         * 0x03-Castle Warehouse
         * 0x04-Warehouse */
        writeH(_whType);
        writeQ(_playerAdena);
        writeD(0x00); // 0 = 100 количество слотов
        final int count = _items.size();
        if (Config.DEBUG)
            _log.fine("count:" + count);
        writeH(count);
        
        for (L2ItemInstance item : _items)
        {
            writeD(item.getObjectId());
            writeD(item.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());
            if (item.isAugmented())
                writeD(item.getAugmentation().getAugmentationId());
            else
                writeD(0x00);
            writeD(item.getMana());
            writeD(item.isTimeLimitedItem() ? (int) (item.getRemainingTime() / 1000) : -9999);
            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());
        }
        _items.clear();
    }
Человек просто обязан ошибаться, раз другие учатся на его ошибках .......
#72
Поделитесь пожалста, если не сложно, нормальный npcinfo. А то как не пробую, нечего не получается!НПЦ мигают при ударе по ним, да и умирать не хотят уж не как!
#73
PROGRAMMATOR Написал:Мне может на работу не ходить?

PHP код:
<?php 
// buy dQddh [item Q]
// sell ddh [item Q]
// refund dh [item dQ]
// item dddQhhhdhhhhddh hh [hhhhhh] hhh

Спс огромное, не хотел оскорбить.

P.S. Я тоже днем сижу с работы, просто можно было ответить что-то, а то кажется как игнор полный.

Добавлено через 2 минуты
Bacekk Написал:Долгожданная покупка/продажа/возврат

BuyList

PHP код:
<?php 
protected final void writeImpl()
{
writeC(0xFE);
writeH(0xB7);
writeD(0x00);
writeQ(_money); // current money
writeD(_listId);
writeD(0x00); // 0 = 250 количество слотов

writeH(_list.size());

for (
L2TradeItem item : _list)
{
if (
item.getCurrentCount() > 0 || !item.hasLimitedStock())
{
writeD(item.getItemId());
writeD(item.getItemId());
writeD(0);
writeQ(item.getCurrentCount() < 0 ? 0 : item.getCurrentCount());
writeH(item.getTemplate().getType2());
writeH(item.getTemplate().getType1()); // Custom Type 1
writeH(0x00); // isEquipped
writeD(item.getTemplate().getBodyPart()); // Body Part
writeH(0x00); // Enchant
writeH(0x00); // Custom Type
writeD(0x00); // Augment
writeD(-1); // Mana
writeD(-9999); // Time
writeH(1); // при 0 итем красный
writeH(0x00); // Element Type
writeH(0x00); // Element Power
for (byte i = 0; i < 6; i++)
{
writeH(0x00);
}
// Enchant Effects
writeH(0x00);
writeH(0x00);
writeH(0x00);

if (
item.getItemId() >= 3960 && item.getItemId() <= 4026)// Config.RATE_SIEGE_GUARDS_PRICE-//'
writeQ((long) (item.getPrice() * Config.RATE_SIEGE_GUARDS_PRICE * (1 + _taxRate)));
else
writeQ((long) (item.getPrice() * (1 + _taxRate)));
}
}
}


ExBuySellListPacket

PHP код:
<?php 
protected final void writeImpl()
{
writeC(0xFE);
writeH(0xB7);
writeD(0x01);
writeD(0x00); // 0 = 250 количество слотов

if (_sellList != null && _sellList.length > 0)
{
writeH(_sellList.length);
for (
L2ItemInstance item : _sellList)
{
writeD(item.getObjectId());
writeD(item.getItemId());
writeD(item.getLocationSlot());
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchantLevel());
writeH(item.getCustomType2());
// Augment, Mana, Time - hardcode for now
writeD(0x00);
writeD(-1);
writeD(-9999);
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);
}
}
else
writeH(0x00);

if (
_refundList != null && _refundList.length > 0)
{
writeH(_refundList.length);
int idx = 0;
for (
L2ItemInstance item : _refundList)
{
writeD(item.getObjectId());
writeD(item.getItemId());
writeD(0x00);
writeQ(item.getCount());
writeH(item.getItem().getType2());
writeH(item.getCustomType1());
writeH(0x00);
writeD(item.getItem().getBodyPart());
writeH(item.getEnchantLevel());
writeH(item.getCustomType2());
// Augment, Mana, Time - hardcode for now
writeD(0x00);
writeD(-1);
writeD(-9999);
writeH(1);
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(idx++);
writeQ(item.getItem().getReferencePrice() / 2 * item.getCount());
}
}
else
writeH(0x00);

writeC(_done ? 0x01 : 0x00);

_buyList.clear();
}


[Изображение: 26ca8c4a54ae901a09ee0720cfcd74c3.jpg]

[Изображение: d0ea2a9524754ce45988707e1d37fa83.jpg]

[Изображение: cf9510987a861682f7ba8a462424cf0f.jpg]

Добавлено через 34 минуты
WareHouseDepositList ( положить на склад )
Код:
    protected final void writeImpl()
    {
        writeC(0x41);
        /* 0x01-Private Warehouse
         * 0x02-Clan Warehouse
         * 0x03-Castle Warehouse
         * 0x04-Warehouse */
        writeH(_whType);
        writeQ(_playerAdena);
        writeD(0x00); // 0 = 100 количество слотов
        final int count = _items.size();
        if (Config.DEBUG)
            _log.fine("count:" + count);
        writeH(count);
        
        for (L2ItemInstance item : _items)
        {
            writeD(item.getObjectId());
            writeD(item.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());
            if (item.isAugmented())
                writeD(item.getAugmentation().getAugmentationId());
            else
                writeD(0x00);
            writeD(item.getMana());
            writeD(item.isTimeLimitedItem() ? (int) (item.getRemainingTime() / 1000) : -9999);
            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());
        }
        _items.clear();
    }

Вот тебе большое спасибо, я сутки промудохался, а ошибка то была оказывается под носом >_<... Я методом тыка пытался определить структуру пакета в итоге у меня внутри цикла аж 19 D лишних >_<...
#74
Пакеты на торговлю продажа/покупка
PrivateStoreListBuy
PHP код:
<?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 код:
<?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 код:
<?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 код:
<?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 лишних >_<...

Надо с самого начало смотреть пакет а не с цикла сразу =)
Человек просто обязан ошибаться, раз другие учатся на его ошибках .......
#75
Someone has the package UserInfo?

I've tried to program this of all the ways but without success.

Thanks.
#76
KhAir Написал:Someone has the package UserInfo?

I've tried to program this of all the ways but without success.

Thanks.

Look at first post.
#77
This post -> http://forum.zone-game.info/showthread.php?t=14078

Or -> http://forum.zone-game.info/showthread.php?t=14176

Which one?
#78
KhAir Написал:This post -> http://forum.zone-game.info/showthread.php?t=14078

Or -> http://forum.zone-game.info/showthread.php?t=14176

Which one?

This page - > http://forum.zone-game.info/showthread.p...78&page=26

This post - > http://forum.zone-game.info/showpost.php...tcount=259

You need changed HF2.5 packet... Use L2J_Beta...
#79
Perfect, I have it.

But where should I put this packet or in that line?

Thanks again!
#80
serverpackets/UserInfo.java

If I got it right a question.
I am sorry for my English.
Web программист\разработчик

— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Работа над Goddess of Destruction (part 7) n3k0nation 459 172,797 03-21-2022, 04:21 PM
Последний пост: TieLay
  Помогите с Сервером L2Dream версии 439 для Lineage 2 Gracia Part 2 CAHTEX 4 3,345 10-01-2021, 02:40 PM
Последний пост: tenor
  Работа с камерой и Энтер чат FriendlyGhost 0 1,286 04-29-2018, 06:07 AM
Последний пост: FriendlyGhost
  Goddess of Destruction ( новая ветка от NcSoft ) Bacek 180 58,464 08-22-2017, 12:32 PM
Последний пост: BadStealth
  EmuRT Gracia part 2 ? knaif 3 1,602 02-08-2016, 01:19 PM
Последний пост: knaif
  Gracia Part 1 от l2emu исходы TFH 6 1,934 10-05-2015, 07:53 PM
Последний пост: G1ta0
  Ищу исходы L2-Dream gracia part 2 knaif 1 1,366 10-05-2015, 07:51 PM
Последний пост: G1ta0
  Оплачиваемая работа Grek1993 1 1,330 08-01-2015, 11:29 AM
Последний пост: ztaecz
  Работа над Goddess of Destruction (part 6) Ashe 1,274 466,672 07-11-2015, 08:00 PM
Последний пост: n3k0nation
  Работа с мультиселлом Evencelance 11 2,409 09-19-2014, 12:43 PM
Последний пост: Evencelance

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)