• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

[Essence] [474 HeartOfVolcano] L2jMobius [Source + Compile] 474

Нет прав для скачивания

Kraken

Путник
Пользователь
Сообщения
7
Розыгрыши
0
Репутация
4
Реакции
15
Баллы
19
Kraken добавил(а) новый ресурс:

[Essence] [474 HeartOfVolcano] L2jMobius [Source + Compile] - Свежак


Узнать больше об этом ресурсе...
 
thanks for the source, can you drop the geodata too
 

интересно, он смотрит ли на официальные сервера ну или хотя-бы в ПТС файлы
Java:
/**
 * @author Mobius
 */
public class CreateSlotProbList extends ServerPacket
{
    private final RandomCraftRewardItemHolder _rewardList;
    private final int _slot;
    private final double _chance;
   
    public CreateSlotProbList(Player player, int slot)
    {
        _slot = slot;
        _rewardList = player.getRandomCraft().getRewards().get(_slot);
        _chance = RandomCraftData.getInstance().getRewardChance(_rewardList.getItemId());
    }
   
    @Override
    public void writeImpl(GameClient client, WritableBuffer buffer)
    {
        ServerPackets.EX_CRAFT_SLOT_PROB_LIST.writeId(this, buffer);
        buffer.writeInt(_slot);
       
        buffer.writeInt(1);
        buffer.writeInt(_rewardList.getItemId());
        buffer.writeLong(_rewardList.getItemCount());
        buffer.writeInt((int) _chance * 1000000);
    }
}
Так же прекрасная реализация с шансами... Очаровательно вообщем. Еще и структуру умудрились поломать (multi-items не так записываються)
Если аболутсы читают, то там именно шанс записывается. У вас даже в интерфейсе структура есть, зачем вам предпологать что туда писать?

Java:
/**
 * @author smo2015
 */
public class CreateItemProbList extends ServerPacket
{
    private final int _classId;
    private final List<ExtractableProduct> _guaranteedItems;
    private final List<ExtractableProduct> _randomItems;
    
    public CreateItemProbList(int classId)
    {
        _classId = classId;
        _guaranteedItems = new ArrayList<>();
        _randomItems = new ArrayList<>();
        
        final ItemTemplate template = ItemData.getInstance().getTemplate(_classId);
        if ((template == null) || !template.isEtcItem())
        {
            return;
        }
        
        final List<ExtractableProduct> extractableItems = ((EtcItem) template).getExtractableItems();
        if (extractableItems != null)
        {
            for (ExtractableProduct expi : extractableItems)
            {
                if (expi.getChance() == 100000)
                {
                    _guaranteedItems.add(expi);
                }
                else
                {
                    _randomItems.add(expi);
                }
            }
        }
    }
    
    @Override
    public void writeImpl(GameClient client, WritableBuffer buffer)
    {
        ServerPackets.EX_CREATE_ITEM_PROB_LIST.writeId(this, buffer);
        buffer.writeInt(_classId);
        
        // Guaranteed Items.
        buffer.writeInt(_guaranteedItems.size());
        for (ExtractableProduct product : _guaranteedItems)
        {
            buffer.writeInt(product.getId()); // ItemId
            buffer.writeInt(product.getMinEnchant());// Enchant
            buffer.writeLong(product.getMin()); // ItemCount
            buffer.writeLong(0); // Chance?
        }
        
        // Random Items.
        buffer.writeInt(_randomItems.size());
        for (ExtractableProduct product : _randomItems)
        {
            buffer.writeInt(product.getId()); // ItemId
            buffer.writeInt(product.getMinEnchant());// Enchant
            buffer.writeLong(product.getMin()); // ItemCount
            buffer.writeLong(0); // Chance?
        }
        
        // Multi Items?
        buffer.writeInt(_randomItems.size());
        for (ExtractableProduct product : _randomItems)
        {
            buffer.writeInt(product.getId()); // ItemId
            buffer.writeInt(product.getMinEnchant());// Enchant
            buffer.writeLong(product.getMin()); // ItemCount
            buffer.writeLong(0); // Chance?
        }
    }

RequestCombinationProbList - выглядит вполне нормально даже, я аж удивлен.

I - Implementation!
Java:
/**
 * @author Mobius
 */
public class NewHennaComposeProbList extends ServerPacket
{
    public NewHennaComposeProbList()
    {
    }
    
    @Override
    public void writeImpl(GameClient client, WritableBuffer buffer)
    {
        ServerPackets.EX_NEW_HENNA_COMPOSE_PROB_LIST.writeId(this, buffer);
        
        // array<_HennaComposeProbInfo> vHennaComposeProbInfoList
        buffer.writeInt(0);
        
        // struct _HennaComposeProbInfo
        // int nHennaId
        // array<_ProbInfo> vProbInfoList
        
        // struct _ProbInfo
        // int nItemClassId
        // int nProb
    }
}

Что за гений это писал?
Код:
/**
 * @author Magik
 */
public class ExMax extends ServerPacket
{
    public ExMax()
    {
    }
    
    @Override
    public void writeImpl(GameClient client, WritableBuffer buffer)
    {
        ServerPackets.EX_MAX.writeId(this, buffer);
        buffer.writeInt(1);
    }
}
 
Последнее редактирование:

а зачем?) И так сойдет )
 
Типа смотрит на патчнод, ибо ссылки оставляет верные на централ, хотя это все форки делают.
А в остальном, хз куда кто там смотрит, когда более чем 5 лет одно и то же...
 
да было бы не плохо еще бы мейн версию чтоб закинули)