Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд How to add music kit in inventory

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
20 Янв 2022
Сообщения
238
Реакции
56
step 1:
dump music kit items:

C++:
Expand Collapse Copy
uto& GetMusickits() { return *reinterpret_cast<CUtlMap<int, CMusicKit*>*>((uintptr_t)(this) + 0x4D8); }
class CMusicKit {
   public:
    int32_t nID;                  // 0x0000
    int32_t nRarity;              // 0x0004
    char* sName;                  // 0x0008
    char* sNameLocToken;          // 0x0010
    char* sLocDescription;        // 0x0018
    char* sPedestalDisplayModel;  // 0x0020
    char* sInventoryImage;        // 0x0028
    char pad_0030[16];            // 0x0030
};  // Size: 0x0040

    for (const auto& it : vecMusickit) {
        CMusicKit* pMusicKit = it.m_value;
        if (!pMusicKit) continue;
        if (strstr(pMusicKit->sNameLocToken, "valve_cs2_01")) continue;
        Skin music;
        music.id = pMusicKit->nID;
        music.name = CLocalize::Get()->FindSafe(pMusicKit->sNameLocToken);
        music.rarity = std::clamp<int>(static_cast<int>(pMusicKit->nRarity - 1), 0, (pMusicKit->nRarity == 7) ? 7 : 6);
        std::string path = "file://{images}/";
        path += pMusicKit->sInventoryImage;
        path += "_png.vtex";
        music.path = path;
        music.spinner_id = GenerateSpinnerID(pMusicKit->sName, "");
        music_kits.skins.push_back(music);
    }
step 2 ->
where are u adding items:

C++:
Expand Collapse Copy
CEconItem* pItem = CEconItem::CreateInstance();
if (pItem) {
    CCSPlayerInventory* pInventory = CCSPlayerInventory::GetInstance();
    auto highestIDs = pInventory->GetHighestIDs();
    pItem->m_ulID = highestIDs.first + 1;
    pItem->m_unInventory = 1 << 30;
    pItem->m_unAccountID = uint32_t(pInventory->GetOwner().m_id);
    pItem->m_unDefIndex = equipment->GetSelectedType()->def_idx; //def idx == 1314
    pItem->m_nQuality = equipment->GetSelectedType()->quality;
    pItem->m_nRarity = 3;//default rarity for music kit
    pItem->SetMusicKitId(equipment->GetSelectedType()->skins[skin_idx].id);
    pInventory->AddEconItem(pItem);
    equipment->added_item = pItem;
    Globals->should_update = false;
    CCSInventoryManager::GetInstance()->EquipItemInLoadout(0,
                                                           equipment->GetSelectedType()->slot, pItem->m_ulID); // 0 -> global class loadout, slot loadout is 54(auto equip in my changer)
    Globals->should_update = true;
}
set music id ->
C++:
Expand Collapse Copy
void SetMusicKitId(int id) { SetDynamicAttributeValue(166, &id); }
result ->
PoC:

gZ7AGYZ.png
 
Последнее редактирование:
please and for keychains sir
C++:
Expand Collapse Copy
class CKeyChain {
public:
    int32_t m_nID;                       //0x0000
    int32_t m_nRarity;                   //0x0004
    int32_t m_nDisplaySeed;              //0x0008
    char pad_000C[4];                    //0x000C
    int32_t m_nUnk1;                     //0x0010
    char pad_0014[4];                    //0x0014
    const char* m_sName;                 //0x0018
    const char* m_sNameLocToken;         //0x0020
    const char* m_sLocDescription;       //0x0028
    const char* m_sPedestalDisplayModel; //0x0030
    const char* m_sInventoryImage;       //0x0038
    char pad0[0x38];
}; // Size: 0x78

C++:
Expand Collapse Copy
auto& GetKeyChains() {
    return *reinterpret_cast<CUtlMap<int, CKeyChain*>*>((uintptr_t)(this) + 0x4B0);
}

Set DefIndex to 1355
and set the ID using SetDynamicAttributeValue(299, &id);
 
C++:
Expand Collapse Copy
class CKeyChain {
public:
    int32_t m_nID;                       //0x0000
    int32_t m_nRarity;                   //0x0004
    int32_t m_nDisplaySeed;              //0x0008
    char pad_000C[4];                    //0x000C
    int32_t m_nUnk1;                     //0x0010
    char pad_0014[4];                    //0x0014
    const char* m_sName;                 //0x0018
    const char* m_sNameLocToken;         //0x0020
    const char* m_sLocDescription;       //0x0028
    const char* m_sPedestalDisplayModel; //0x0030
    const char* m_sInventoryImage;       //0x0038
    char pad0[0x38];
}; // Size: 0x78

C++:
Expand Collapse Copy
auto& GetKeyChains() {
    return *reinterpret_cast<CUtlMap<int, CKeyChain*>*>((uintptr_t)(this) + 0x4B0);
}

Set DefIndex to 1355
and set the ID using SetDynamicAttributeValue(299, &id);
Please make steps like the music kit
 
C++:
Expand Collapse Copy
class CKeyChain {
public:
    int32_t m_nID; //0x0000
    int32_t m_nRarity; //0x0004
    int32_t m_nDisplaySeed; //0x0008
    char pad_000C[4]; //0x000C
    int32_t m_nUnk1; //0x0010
    char pad_0014[4]; //0x0014
    const char* m_sName; //0x0018
    const char* m_sNameLocToken; //0x0020
    const char* m_sLocDescription; //0x0028
    const char* m_sPedestalDisplayModel; //0x0030
    const char* m_sInventoryImage; //0x0038
    char pad0[0x38];
}; // Size: 0x78

C++:
Expand Collapse Copy
auto& GetKeyChains() {
    return *reinterpret_cast<CUtlMap<int, CKeyChain*>*>((uintptr_t)(this) + 0x4B0);
}

Set DefIndex to 1355
and set the ID using SetDynamicAttributeValue(299, &id);
bro you are crazzzzzyyyyyyyyyyyyyyyyyy. BIG THX:pogchamp:
C++:
Expand Collapse Copy
class CKeyChain {
public:
    int32_t m_nID;            //0x0000
    int32_t m_nRarity;          //0x0004
    int32_t m_nDisplaySeed;       //0x0008
    char pad_000C[4];          //0x000C
    int32_t m_nUnk1;           //0x0010
    char pad_0014[4];          //0x0014
    const char* m_sName;         //0x0018
    const char* m_sNameLocToken;     //0x0020
    const char* m_sLocDescription;    //0x0028
    const char* m_sPedestalDisplayModel; //0x0030
    const char* m_sInventoryImage;    //0x0038
    char pad0[0x38];
}; // Size: 0x78

C++:
Expand Collapse Copy
auto& GetKeyChains() {
    return *reinterpret_cast<CUtlMap<int, CKeyChain*>*>((uintptr_t)(this) + 0x4B0);
}

Set DefIndex to 1355
and set the ID using SetDynamicAttributeValue(299, &id);
and how tf you know what need to add
 
Назад
Сверху Снизу