Повторная покупка в ядре

  • Автор темы Автор темы blodden
  • Дата начала Дата начала

blodden

Знаменитый
Участник
Сообщения
48
Розыгрыши
0
Решения
1
Репутация
16
Реакции
13
Баллы
1 298
Хроники
  1. The 2nd Throne: Gracia
Исходники
Присутствуют
Сборка
nextgen
Всем привет, ребят подскажите где в ядре найти повторную покупку в ядре ?
 

Вложения

  • Screenshot_4.webp
    Screenshot_4.webp
    7,3 КБ · Просмотры: 40
Там нет никакой повторной покупки
Когда предмет продаешь в игре, ты можешь его выкупить обратно, может в клиенте описание кривое как бы не заморачивался.
в SysString-ru.dat: 2028 u, Повторная покупка\0 вроде так описана
 
Когда предмет продаешь в игре, ты можешь его выкупить обратно, может в клиенте описание кривое как бы не заморачивался.
Ну выкуп и повторная покупка разные вещи.... По теме , тебя интересует
Связь : пакет клиента "RequestRefundItem" и ответка как правило у всех одна это "ExBuySellList" (на некоторых сборка это абстрактный пакет, то-есть там еще есть 3 других (купить, продать, возврат)).

Ну и пример ExBuySellList (ток имей введу это мой, и он 100% тебе не подойдет, но логику можно посмотреть)
Код:
public void writeImpl(GameClient client, WritableBuffer buffer) {
        writeId(ServerPacketId.EX_BUY_SELL_LIST, buffer);

        buffer.writeInt(0x01); // Type SELL
        buffer.writeInt(_inventorySlots);

        if ((_sellList != null)) {
            buffer.writeShort(_sellList.size());
            for (ItemInstance item : _sellList) {
                writeItem(item, buffer);
                int price = item.getItem().getReferencePrice() / 4;
                final int crystalLevel = item.getItem().getCrystalType().getLevel();
                if ((item.isWeapon() || item.isArmor()) && ((crystalLevel >= CrystalType.D.getLevel()) && (crystalLevel <= CrystalType.B.getLevel()))) {
                    price /= 3;
                }
                buffer.writeLong(Config.MERCHANT_ZERO_SELL_PRICE ? 0 : price);
            }
        } else {
            buffer.writeShort(0x00);
        }

        if ((_refundList != null) && !_refundList.isEmpty()) {
            buffer.writeShort(_refundList.size());
            int i = 0;
            for (ItemInstance item : _refundList) {
                writeItem(item, buffer);
                buffer.writeInt(i++);
                int price = item.getItem().getReferencePrice() / 4;
                final int crystalLevel = item.getItem().getCrystalType().getLevel();
                if ((item.isWeapon() || item.isArmor()) && ((crystalLevel >= CrystalType.D.getLevel()) && (crystalLevel <= CrystalType.B.getLevel()))) {
                    price /= 3;
                }
                buffer.writeLong(Config.MERCHANT_ZERO_SELL_PRICE ? 0 : (price) * item.getCount());
            }
        } else {
            buffer.writeShort(0x00);
        }

        buffer.writeByte(_done ? 0x01 : 0x00);
    }
 
В java пока что чайник, возможно даже нулевой.
Спасибо за помощь))
 
Назад
Сверху Снизу