Вопрос Новые обновления. Инвентарь

Начинающий
Статус
Онлайн
Регистрация
30 Мар 2020
Сообщения
326
Реакции[?]
24
Поинты[?]
12K
После обновлений перестал работать инвентори ченжер.


Делал раньше ,когда работало, так:

1.Создал шмотку ( dylib CreateSharedObject <CEconItem> )
2.Более менее заполнил её, важные поля ( ид шмотки, место в инвентаре, итеминдекс, овнер ид(стим ид & 0x7FFFFFFF) )
3.Отправил кэш ( DOTAPlayerInventory->SOCreated // index 0)
4. Обновил (DOTAPLayerInventory->SOUpdated // index 1)

Чтобы сделать его, следовал инструкциям в темах :
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.

*link3- no ad*
*link4- no ad*

и естественно советам и пинкам великому Liberalist


Оффсеты( индексы фунок ) проверял, в порядке.
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
все работает без изменений абсолютно.
в прямом смысле с портал 2(сурс1 движок) скинчейнджера скопипастил логику фастом чтобы проверить
C++:
auto& inv = CDOTALocalInventory::GetInstance();
auto item = CEconItem::Construct();
item->m_unDefIndex = 7247;
inv.GetCache()->AddObject(item);
inv.IncrementalCreate(item);
1660850756300.png
 
Начинающий
Статус
Онлайн
Регистрация
30 Мар 2020
Сообщения
326
Реакции[?]
24
Поинты[?]
12K
Аааа, так это надо было вызывать CGCClientSharedObjectCache::AddObject

или всё же PlayerInventory->SOCreated SOUpdated ?
 
Начинающий
Статус
Онлайн
Регистрация
30 Мар 2020
Сообщения
326
Реакции[?]
24
Поинты[?]
12K
Кароче вся проблема была в том, что я шмотка добавлялась только после перезахода в игру, из-за того что я вызывал вначале функцию Clear на инвентарь. Удалил вызов Очистки и всё стало норм добавлятся.
 
Сверху Снизу