SetEnchantableItems - отображение доступных предметов для заточки

Elrik

Величайший
Участник
Победитель в номинации 2021
Участник Новогоднего Фонда 2021
Сообщения
235
Розыгрыши
0
Решения
2
Репутация
13
Реакции
72
Баллы
1 593
Помоги, подскажите. В 388 протоколе, свиток заточки плащей 93302 , может точить 2 плаща - 1й плащ защиты, максимальная точка 10 и 2й небесный плащ, макс заточка +5.

При выборе свитка, интерфейс НЕ показывает в списке доступных, плаз защиты +10, но при этом показывает в списке доступных плащ защиты +5.
Я нашел функцию SetEnchantableItems(), но не могу понять где задается макс заточка для предмета ( в моем кейсе - небесный плащ).
Помогите найти.
Код:
function SetEnchantableItems()
{
    local int i, enchantMax, enchantMin;
    local ItemInfo iInfo;
    local array<ItemInfo> iInfos;

    enchantMax = class'ItemEnchantWnd'.static.Inst().GetEnchantMax();
    enchantMin = class'ItemEnchantWnd'.static.Inst()._GetEnchantMin();
    ItemWnd.Clear();
    class'UIDATA_INVENTORY'.static.GetAllEnchantableInvenItem(GetIteminfoScroll().Id.ClassID, iInfos);
    Debug(" 강화 가능 아이템 수량 SetEnchantableItems" @ string(GetIteminfoScroll().Id.ClassID) @ string(iInfos.Length) @ string(enchantMax) @ string(enchantMin));
    iInfo = GetItemInfoEquipment();
    iInfos.Sort(OnSortProbCompare);
    iInfos.Sort(OnSortNameCompare);

    // End:0x12A [Loop If]
    for(i = 0; i < iInfos.Length; i++)
    {
        // End:0xB0
        if(iInfo.Id == iInfos[i].Id)
        {
            // [Explicit Continue]
            continue;
        }
        // End:0xDE
        if((iInfos[i].Enchanted > enchantMax) && enchantMax > -1)
        {
            // [Explicit Continue]
            continue;
        }
        // End:0x18D
        if((iInfos[i].Enchanted < enchantMin) && enchantMin > -1)
        {
            // [Explicit Continue]
            continue;
        }
        iInfos[i].bShowCount = IsStackableItem(iInfos[i].ConsumeType);
        ItemWnd.AddItem(iInfos[i]);
    }
}
L2_4qDucHvXGW.png
 

Проблему решил костылем, добавив проверку на айди предмета и уровня заточки.
Если у кого есть грамотное решение, буду благодарен.

Код:
if ((iInfos[i].Id.ClassID == 97452) && (iInfos[i].Enchanted > 4))
{
    continue;
}
 
А что есть в ItemEnchantWnd ?
 
Грамотное решение уже, вроде бы, сделано в интерфейсе. А проблема больше похожа на кривую датку\пакет, который должен задавать потолок заточки.

Проверяй для начала чему равны enchantMin и enchantMax.
 
Грамотное решение уже, вроде бы, сделано в интерфейсе. А проблема больше похожа на кривую датку\пакет, который должен задавать потолок заточки.

Проверяй для начала чему равны enchantMin и enchantMax.
Да вот смотрел, и вроде все норм. Мне показалось, что проблема пошла от корейцев, поскольку они не рассчитывали увидеть небесный плащ +5 вообще.
 
Назад
Сверху Снизу