Исходник Easy Sticker Changer

Премиум
Премиум
Статус
Оффлайн
Регистрация
21 Фев 2017
Сообщения
290
Реакции
133
"Easy Sticker Changer" позволяет добавлять наклейки на любое оружие. Можете пастить куда угодно, даже в Индиго.
(Хайда нет, сурсы взяты с UC)

Код:
Expand Collapse Copy
enum class EStickerAttributeType
{
    Index,
    Wear,
    Scale,
    Rotation
};
 
static uint16_t s_iwoff = 0;
 
static void* o_float_fn;
 
static float __fastcall hooked_float_fn(void* thisptr, void*, int slot, EStickerAttributeType attribute, float fl)
{
    auto item = reinterpret_cast<C_BaseAttributableItem*>(uintptr_t(thisptr) - s_iwoff);
 
    switch(attribute)
    {
    case EStickerAttributeType::Wear:
        return FLT_MIN;
    case EStickerAttributeType::Scale:
        return 1.f;
    case EStickerAttributeType::Rotation:
        return 0.f;
    }
 
    return reinterpret_cast<decltype(hooked_float_fn)*>(o_float_fn)(thisptr, nullptr, slot, attribute, fl);
}
 
static void* o_uint_fn;
 
static unsigned int __fastcall hooked_uint_fn(void* thisptr, void*, int slot, EStickerAttributeType attribute, unsigned fl)
{
    auto item = reinterpret_cast<C_BaseAttributableItem*>(uintptr_t(thisptr) - s_iwoff);
 
    switch(attribute)
    {
    case EStickerAttributeType::Index:
        return 442;
    }
 
    return reinterpret_cast<decltype(hooked_uint_fn)*>(o_uint_fn)(thisptr, nullptr, slot, attribute, fl);
}
 
void ApplyStickerHooks(C_BaseAttributableItem* item)
{
    if(!s_iwoff)
        s_iwoff = NetVarManager::Get().GetOffset(FnvHash("CEconEntity->m_Item")) + 0xC;
 
    void**& iw_vt = *reinterpret_cast<void***>(uintptr_t(item) + s_iwoff);
 
    static void** iw_hook_vt = nullptr;
 
    if(!iw_hook_vt)
    {
        size_t len = 0;
        for(; platform::IsCodePtr(iw_vt[len]); ++len);
        iw_hook_vt = new void*[len];
        memcpy(iw_hook_vt, iw_vt, len * sizeof(void*));
        o_float_fn = iw_hook_vt[4];
        iw_hook_vt[4] = &hooked_float_fn;
        o_uint_fn = iw_hook_vt[5];
        iw_hook_vt[5] = &hooked_uint_fn;
    }
 
    iw_vt = iw_hook_vt;
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
толку от тех стикеров никакого , реально задрачивания уже для просто нереальных задротов скинченджера
лучше в чите будет нормальный аим , чем красивые скины с наклейками
 
толку от тех стикеров никакого , реально задрачивания уже для просто нереальных задротов скинченджера
лучше в чите будет нормальный аим , чем красивые скины с наклейками
Ты што??? скинчунгер лучшее что придумали для читов!!!
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а какой файл создавать stikers.cpp или stikers.h
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ля
"Easy Sticker Changer" позволяет добавлять наклейки на любое оружие. Можете пастить куда угодно, даже в Индиго.
(Хайда нет, сурсы взяты с UC)

Код:
Expand Collapse Copy
enum class EStickerAttributeType
{
    Index,
    Wear,
    Scale,
    Rotation
};
 
static uint16_t s_iwoff = 0;
 
static void* o_float_fn;
 
static float __fastcall hooked_float_fn(void* thisptr, void*, int slot, EStickerAttributeType attribute, float fl)
{
    auto item = reinterpret_cast<C_BaseAttributableItem*>(uintptr_t(thisptr) - s_iwoff);
 
    switch(attribute)
    {
    case EStickerAttributeType::Wear:
        return FLT_MIN;
    case EStickerAttributeType::Scale:
        return 1.f;
    case EStickerAttributeType::Rotation:
        return 0.f;
    }
 
    return reinterpret_cast<decltype(hooked_float_fn)*>(o_float_fn)(thisptr, nullptr, slot, attribute, fl);
}
 
static void* o_uint_fn;
 
static unsigned int __fastcall hooked_uint_fn(void* thisptr, void*, int slot, EStickerAttributeType attribute, unsigned fl)
{
    auto item = reinterpret_cast<C_BaseAttributableItem*>(uintptr_t(thisptr) - s_iwoff);
 
    switch(attribute)
    {
    case EStickerAttributeType::Index:
        return 442;
    }
 
    return reinterpret_cast<decltype(hooked_uint_fn)*>(o_uint_fn)(thisptr, nullptr, slot, attribute, fl);
}
 
void ApplyStickerHooks(C_BaseAttributableItem* item)
{
    if(!s_iwoff)
        s_iwoff = NetVarManager::Get().GetOffset(FnvHash("CEconEntity->m_Item")) + 0xC;
 
    void**& iw_vt = *reinterpret_cast<void***>(uintptr_t(item) + s_iwoff);
 
    static void** iw_hook_vt = nullptr;
 
    if(!iw_hook_vt)
    {
        size_t len = 0;
        for(; platform::IsCodePtr(iw_vt[len]); ++len);
        iw_hook_vt = new void*[len];
        memcpy(iw_hook_vt, iw_vt, len * sizeof(void*));
        o_float_fn = iw_hook_vt[4];
        iw_hook_vt[4] = &hooked_float_fn;
        o_uint_fn = iw_hook_vt[5];
        iw_hook_vt[5] = &hooked_uint_fn;
    }
 
    iw_vt = iw_hook_vt;
}

ля пезда добавил в софт nameSpam and ChatSpam,а стикеры не могу:ccc
 
Тут только парсер (вроде). Это лишь малая часть кода,остальное тебе придется делать (дописывать) самому,а код там получится не маленький.
Понятно:c
 
Назад
Сверху Снизу