inventory Slot Vanganth

WmzBot

Поклонник кармы
Участник
Старожил I степени
Сообщения
563
Розыгрыши
0
Решения
1
Репутация
68
Реакции
181
Баллы
775
Доброго вечера. Не работал второй (правый)слот инвентаря под ушки, маски. Починил это, он стал работать, но сразу 2 слота (например ушки + маска) одеть не могу. Один снимается (с правого слота) второй одевается (в левый слот).
Мой код решения проблемы с этим слотом.

Код:
        if (BodyPart == 65536) //Если используется слот Hair
        {
            if (pItem->pSID->nItemID == 7680)  //Если этот айтем ушки.
            {
            BodyPart = 262144; //вставляем его в правый слот
            }else
            {
            BodyPart = 65536; //Иначе все остальное вставляем в левый слот.
            }
        }

Как научить их дружить? сделать не взаимозменяемыми ?(естественно шляпы и короны я отдельно выведу, чтобы они занимали 2 слота)
Функции ItemListFix и InventoryUpdateFix
 

а разве сервер не с датапака эти данные парсит?

В итемдате есть параметр slot_bit_type, в плане с шапками он принимает hair, hair2 и hairall (кажется), что собсна и есть - право, лево и оба сразу.
А у вас всё выглядит так, как будто уши использую в датапаке Hair, а вы хардкодом в движке их перегоняете в Hair2.

Я может конечно не до конца чёто понял, но выглядит со стороны всё именно так.
 
а разве сервер не с датапака эти данные парсит?

В итемдате есть параметр slot_bit_type, в плане с шапками он принимает hair, hair2 и hairall (кажется), что собсна и есть - право, лево и оба сразу.
А у вас всё выглядит так, как будто уши использую в датапаке Hair, а вы хардкодом в движке их перегоняете в Hair2.

Я может конечно не до конца чёто понял, но выглядит со стороны всё именно так.
у ванги в датапаке не работает hair2, hairall, все ставит в левую ячейку. здесь нужно именно в его исходном коде копать. я даже готов для каждого итема писать условие, в какую ячейку ставить, лишь бы оно их не стокало, но оно все выходит взаимозаменяемо, не важно, в какой ячейке стоит
 
у ванги в датапаке не работает hair2, hairall, все ставит в левую ячейку. здесь нужно именно в его исходном коде копать. я даже готов для каждого итема писать условие, в какую ячейку ставить, лишь бы оно их не стокало, но оно все выходит взаимозаменяемо, не важно, в какой ячейке стоит
а может слоты починить?
1642444916640.png
 
Сам Vanganth пытался переделать слоты.
Можете найти в коде громадную функцию CSharedFactory::ReallocatePaperDoll() . И судя по тому что она закомменчена, он это дело забросил. Это очень непросто патчить каждую функцию которая работает с предметами и инвентарем. Но вы можете пробововать. :)
А еще можно задействовать другие слоты - например слот для белья или плащей
 
Сам Vanganth пытался переделать слоты.
Можете найти в коде громадную функцию CSharedFactory::ReallocatePaperDoll() . И судя по тому что она закомменчена, он это дело забросил. Это очень непросто патчить каждую функцию которая работает с предметами и инвентарем. Но вы можете пробововать. :)
А еще можно задействовать другие слоты - например слот для белья или плащей
Хммм, а это идея, сделать маски, их не так уж много, тип слота нижнее белье, и уже условием переставлять их в слот правый hair2. Стоит попробовать на заменяемость, если сервер пропустит такое, и будет одеваться 2 предмета, все окей. Для hairall я решение нашёл, оно работает. Занимает 2 ячейки.
 
dont sure about modify these two place could fix this bugz.
ItemList.cpp
InventoryUpdate.cpp
 
That's right, the error is fixed by sending the value of slothairex and slothairall to itemparser.cpp. But the variable accepted by this parameter in l2server.exe is a uint and can hold a maximum of 65536. An overflow occurs. You need to change the variable type from uint v152 to UINT64.

Сам Vanganth пытался переделать слоты.
Можете найти в коде громадную функцию CSharedFactory::ReallocatePaperDoll() . И судя по тому что она закомменчена, он это дело забросил. Это очень непросто патчить каждую функцию которая работает с предметами и инвентарем. Но вы можете пробововать. :)
А еще можно задействовать другие слоты - например слот для белья или плащей
Задействовав слот для белья или плащей, их каким то образом нужно отобразить в клиенте, не подскажите как?
 
contact me , i will show you something.
 
Может стоит inventory поковырять и обратить внимание как устроен оружие 1 и 2 рук, и щит, и опираясь на это сделать правку для своих ячеек, если конечно верно выставлены слоты в дп
 
в моей сборке ch4-il на базе вагназ в далеком 2014 я по нормальному дополнил эти слоты. переписывать функции и патчить там многовато. главное стек расширять в десятке функций
 

Похожие темы

Назад
Сверху Снизу