Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Анимации ножей.

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
19 Окт 2018
Сообщения
487
Реакции
33
Ух блб, как я задолбался с ними...
Я обновил все анимации ножей,но когда обновил анимации новых ножей(canis,cord,skeleton,outdoor,css),то все анимации слетели,нормально работать остались бабочка и новые ножи все кроме css,помогите пожалуйста,умоляю вас!
 
вот вам если что мой ебаный код
C++:
Expand Collapse Copy
#include "hooks.hpp"

#include "..//helpers/items.hpp"

/*static auto random_sequence(const int low, const int high) -> int {
    return rand() % (high - low + 1) + low;
}




static auto fix_animation(const char* model, const int sequence) -> int {


    
    enum ESequence
    {
        SEQUENCE_DEFAULT_DRAW = 0,
        SEQUENCE_DEFAULT_IDLE1 = 1,
        SEQUENCE_DEFAULT_IDLE2 = 2,
        SEQUENCE_DEFAULT_LIGHT_MISS1 = 3,
        SEQUENCE_DEFAULT_LIGHT_MISS2 = 4,
        SEQUENCE_DEFAULT_HEAVY_MISS1 = 9,
        SEQUENCE_DEFAULT_HEAVY_HIT1 = 10,
        SEQUENCE_DEFAULT_HEAVY_BACKSTAB = 11,
        SEQUENCE_DEFAULT_LOOKAT01 = 12,
        SEQUENCE_BUTTERFLY_DRAW = 0,
        SEQUENCE_BUTTERFLY_DRAW2 = 1,
        SEQUENCE_BUTTERFLY_LOOKAT01 = 13,
        SEQUENCE_BUTTERFLY_LOOKAT03 = 15,
        SEQUENCE_FALCHION_IDLE1 = 1,
        SEQUENCE_FALCHION_HEAVY_MISS1 = 8,
        SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP = 9,
        SEQUENCE_FALCHION_LOOKAT01 = 12,
        SEQUENCE_FALCHION_LOOKAT02 = 13,
        SEQUENCE_DAGGERS_IDLE1 = 1,
        SEQUENCE_DAGGERS_LIGHT_MISS1 = 2,
        SEQUENCE_DAGGERS_LIGHT_MISS5 = 6,
        SEQUENCE_DAGGERS_HEAVY_MISS2 = 11,
        SEQUENCE_DAGGERS_HEAVY_MISS1 = 12,
        SEQUENCE_BOWIE_IDLE1 = 1,
    };
    if (strstr(model, "models/weapons/v_knife_butterfly.mdl")) {
        switch (sequence) {
        case SEQUENCE_DEFAULT_DRAW:
            return random_sequence(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random_sequence(SEQUENCE_BUTTERFLY_LOOKAT01, SEQUENCE_BUTTERFLY_LOOKAT03);
        default:
            return sequence + 1;
        }
    }
    else if (strstr(model, "models/weapons/v_knife_falchion_advanced.mdl")) {
        switch (sequence) {
        case SEQUENCE_DEFAULT_IDLE2:
            return SEQUENCE_FALCHION_IDLE1;
        case SEQUENCE_DEFAULT_HEAVY_MISS1:
            return random_sequence(SEQUENCE_FALCHION_HEAVY_MISS1, SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random_sequence(SEQUENCE_FALCHION_LOOKAT01, SEQUENCE_FALCHION_LOOKAT02);
        case SEQUENCE_DEFAULT_DRAW:
        case SEQUENCE_DEFAULT_IDLE1:
            return sequence;
        default:
            return sequence - 1;
        }
    }
    else if (strstr(model, "models/weapons/v_knife_push.mdl")) {
        switch (sequence) {
        case SEQUENCE_DEFAULT_IDLE2:
            return SEQUENCE_DAGGERS_IDLE1;
        case SEQUENCE_DEFAULT_LIGHT_MISS1:
        case SEQUENCE_DEFAULT_LIGHT_MISS2:
            return random_sequence(SEQUENCE_DAGGERS_LIGHT_MISS1, SEQUENCE_DAGGERS_LIGHT_MISS5);
        case SEQUENCE_DEFAULT_HEAVY_MISS1:
            return random_sequence(SEQUENCE_DAGGERS_HEAVY_MISS2, SEQUENCE_DAGGERS_HEAVY_MISS1);
        case SEQUENCE_DEFAULT_HEAVY_HIT1:
        case SEQUENCE_DEFAULT_HEAVY_BACKSTAB:
        case SEQUENCE_DEFAULT_LOOKAT01:
            return sequence + 3;
        case SEQUENCE_DEFAULT_DRAW:
        case SEQUENCE_DEFAULT_IDLE1:
            return sequence;
        default:
            return sequence + 2;
        }
    }
    else if (strstr(model, "models/weapons/v_knife_survival_bowie.mdl")) {
        switch (sequence) {
        case SEQUENCE_DEFAULT_DRAW:
        case SEQUENCE_DEFAULT_IDLE1:
            return sequence;
        case SEQUENCE_DEFAULT_IDLE2:
            return SEQUENCE_BOWIE_IDLE1;
        default:
            return sequence - 1;
        }
    }
    else if (strstr(model, "models/weapons/v_knife_ursus.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random_sequence(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random_sequence(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    else if (strstr(model, "models/weapons/v_knife_skeleton.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random_sequence(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random_sequence(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    else if (strstr(model, "models/weapons/v_knife_outdoor.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random_sequence(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random_sequence(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    else if (strstr(model, "models/weapons/v_knife_canis.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random_sequence(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random_sequence(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    else if (strstr(model, "models/weapons/v_knife_cord.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random_sequence(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random_sequence(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    else if (strstr(model, "models/weapons/v_knife_stiletto.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random_sequence(12, 13);
        }
    }
    else if (strstr(model, "models/weapons/v_knife_widowmaker.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random_sequence(14, 15);
        case SEQUENCE_DEFAULT_HEAVY_BACKSTAB:
            return sequence - 1;
        }
    }
    else {
        return sequence;
    }
}

namespace hooks
{
    void Hooks::RecvProxy(const CRecvProxyData* pData, void* entity, void* output)
//void Hooks::RecvProxy(const CRecvProxyData* pData, void* entity, void* output)
    //void Recv_Proxy::hook(const c_recv_proxy_data* pData, void* entity, void* output)
    {
        static auto ofunc = sequence_vhook->get_original_function();
    //    static auto original_fn = sequence_hook->get_original_function();
        const auto local = static_cast<C_BasePlayer*>(g_EntityList->GetClientEntity((g_EngineClient->g_LocalPlayer)));

        if (local && local->IsAlive())
        {
            const auto proxy_data = const_cast<CRecvProxyData*>(pData);
            const auto view_model = static_cast<C_BaseViewModel*>(entity);
            if (view_model && view_model->m_hOwner() && view_model->m_hOwner().IsValid()) {
                const auto owner = static_cast<C_BasePlayer*>(g_EntityList->GetClientEntityFromHandle(view_model->m_hOwner()));
                if (owner == g_EntityList->GetClientEntity(g_EntityList->g_LocalPlayer())) {
                    const auto view_model_weapon_handle = view_model->m_hWeapon();
                    if (view_model_weapon_handle.IsValid()) {
                        const auto view_model_weapon = static_cast<C_BaseAttributableItem*>(g_EntityList->GetClientEntityFromHandle(view_model_weapon_handle));
                        if (view_model_weapon)
                        {
                            if (k_weapon_info.count(view_model_weapon->m_Item().m_iItemDefinitionIndex()))
                            {
                                auto original_sequence = proxy_data->m_Value.m_Int;
                                const auto override_model = k_weapon_info.at(view_model_weapon->m_Item().m_iItemDefinitionIndex()).model;
                                proxy_data->m_Value.m_Int = fix_animation(override_model, proxy_data->m_Value.m_Int);
                            }
                        }
                    }
                }
            }
        }
        ofunc(pData, entity, output);
//        originalfn(pData, entity, output);
    }
}
void Remapping(CRecvProxyData* data, C_BaseViewModel* entity)
{
    if (!g_LocalPlayer || !g_LocalPlayer->IsAlive())
        return;

    const auto owner = g_EntityList->GetClientEntityFromHandle(entity->m_hOwner());
    if (owner != g_LocalPlayer)
        return;

    const auto view_model_weapon = static_cast<C_BaseAttributableItem*>(g_EntityList->GetClientEntityFromHandle(entity->m_hWeapon()));
    if (!view_model_weapon)
        return;

    const auto entry = k_weapon_info.find(view_model_weapon->m_Item().m_iItemDefinitionIndex());

    if (entry == k_weapon_info.end())
        return;

    if (&entry->second == nullptr)
        return;

    const auto weaponInfo = &entry->second;
    auto& sequence = data->m_Value.m_Int;
    sequence = GetNewAnimation(weaponInfo->model, sequence);
}

void Hooks::RecvProxy(const CRecvProxyData* pData, void* entity, void* output)
{
    static auto ofunc = sequence_hook->get_original_function();

    const auto proxy_data = const_cast<CRecvProxyData*>(pData);
    const auto view_model = static_cast<C_BaseViewModel*>(entity);

    Remapping(proxy_data, view_model);

    ofunc(pData, entity, output);*/
enum ESequence
{
    SEQUENCE_DEFAULT_DRAW = 0,
    SEQUENCE_DEFAULT_IDLE1 = 1,
    SEQUENCE_DEFAULT_IDLE2 = 2,
    SEQUENCE_DEFAULT_LIGHT_MISS1 = 3,
    SEQUENCE_DEFAULT_LIGHT_MISS2 = 4,
    SEQUENCE_DEFAULT_HEAVY_MISS1 = 9,
    SEQUENCE_DEFAULT_HEAVY_HIT1 = 10,
    SEQUENCE_DEFAULT_HEAVY_BACKSTAB = 11,
    SEQUENCE_DEFAULT_LOOKAT01 = 12,
    SEQUENCE_BUTTERFLY_DRAW = 0,
    SEQUENCE_BUTTERFLY_DRAW2 = 1,
    SEQUENCE_BUTTERFLY_LOOKAT01 = 13,
    SEQUENCE_BUTTERFLY_LOOKAT03 = 15,
    SEQUENCE_FALCHION_IDLE1 = 1,
    SEQUENCE_FALCHION_HEAVY_MISS1 = 8,
    SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP = 9,
    SEQUENCE_FALCHION_LOOKAT01 = 12,
    SEQUENCE_FALCHION_LOOKAT02 = 13,
    SEQUENCE_DAGGERS_IDLE1 = 1,
    SEQUENCE_DAGGERS_LIGHT_MISS1 = 2,
    SEQUENCE_DAGGERS_LIGHT_MISS5 = 6,
    SEQUENCE_DAGGERS_HEAVY_MISS2 = 11,
    SEQUENCE_DAGGERS_HEAVY_MISS1 = 12,
    SEQUENCE_BOWIE_IDLE1 = 1,
/*    SEQUENCE_DEFAULT_DRAW = 0,
    SEQUENCE_DEFAULT_IDLE1 = 1,
    SEQUENCE_DEFAULT_IDLE2 = 2,
    SEQUENCE_DEFAULT_LIGHT_MISS1 = 3,
    SEQUENCE_DEFAULT_LIGHT_MISS2 = 4,
    SEQUENCE_DEFAULT_HEAVY_MISS1 = 9,
    SEQUENCE_DEFAULT_HEAVY_HIT1 = 10,
    SEQUENCE_DEFAULT_HEAVY_BACKSTAB = 11,
    SEQUENCE_DEFAULT_LOOKAT01 = 12,

    SEQUENCE_BUTTERFLY_DRAW = 0,
    SEQUENCE_BUTTERFLY_DRAW2 = 1,
    SEQUENCE_BUTTERFLY_LOOKAT01 = 13,
    SEQUENCE_BUTTERFLY_LOOKAT02 = 14,
    SEQUENCE_BUTTERFLY_LOOKAT03 = 15,

    SEQUENCE_FALCHION_IDLE1 = 1,
    SEQUENCE_FALCHION_HEAVY_MISS1 = 8,
    SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP = 9,
    SEQUENCE_FALCHION_LOOKAT01 = 12,
    SEQUENCE_FALCHION_LOOKAT02 = 13,

    SEQUENCE_DAGGERS_IDLE1 = 1,
    SEQUENCE_DAGGERS_LIGHT_MISS1 = 2,
    SEQUENCE_DAGGERS_LIGHT_MISS5 = 6,
    SEQUENCE_DAGGERS_HEAVY_MISS2 = 11,
    SEQUENCE_DAGGERS_HEAVY_MISS1 = 12,

    SEQUENCE_BOWIE_IDLE1 = 1,*/
};

int random(const int& min, const int& max)
{
    return rand() % (max - min + 1) + min;
}

int GetNewAnimation(std::string model, const int sequence)
{
    if ((model, "models/weapons/v_knife_butterfly.mdl")) {
        switch (sequence) {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, SEQUENCE_BUTTERFLY_LOOKAT03);
        default:
            return sequence + 1;
        }
    }
    else if ((model, "models/weapons/v_knife_outdoor.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    else if ((model, "models/weapons/v_knife_canis.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    else if ((model, "models/weapons/v_knife_cord.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }

/*    if (model == "models/weapons/v_knife_cord.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    if (model == "models/weapons/v_knife_canis.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    if (model == "models/weapons/v_knife_outdoor.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }*/
    else if ((model, "models/weapons/v_knife_skeleton.mdl"))
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    /*if (model == "models/weapons/v_knife_skeleton.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }*/
    if (model == "models/weapons/v_knife_falchion_advanced.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_IDLE2:
            return SEQUENCE_FALCHION_IDLE1;
        case SEQUENCE_DEFAULT_HEAVY_MISS1:
            return random(SEQUENCE_FALCHION_HEAVY_MISS1, SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_FALCHION_LOOKAT01, SEQUENCE_FALCHION_LOOKAT02);
        case SEQUENCE_DEFAULT_DRAW:
        case SEQUENCE_DEFAULT_IDLE1:
            return sequence;
        default:
            return sequence - 1;
        }
    }
    if (model == "models/weapons/v_knife_push.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_IDLE2:
            return SEQUENCE_DAGGERS_IDLE1;
        case SEQUENCE_DEFAULT_LIGHT_MISS1:
        case SEQUENCE_DEFAULT_LIGHT_MISS2:
            return random(SEQUENCE_DAGGERS_LIGHT_MISS1, SEQUENCE_DAGGERS_LIGHT_MISS5);
        case SEQUENCE_DEFAULT_HEAVY_MISS1:
            return random(SEQUENCE_DAGGERS_HEAVY_MISS2, SEQUENCE_DAGGERS_HEAVY_MISS1);
        case SEQUENCE_DEFAULT_HEAVY_HIT1:
        case SEQUENCE_DEFAULT_HEAVY_BACKSTAB:
        case SEQUENCE_DEFAULT_LOOKAT01:
            return sequence + 3;
        case SEQUENCE_DEFAULT_DRAW:
        case SEQUENCE_DEFAULT_IDLE1:
            return sequence;
        default:
            return sequence + 2;
        }
    }
    if (model == "models/weapons/v_knife_survival_bowie.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
        case SEQUENCE_DEFAULT_IDLE1:
            return sequence;
        case SEQUENCE_DEFAULT_IDLE2:
            return SEQUENCE_BOWIE_IDLE1;
        default:
            return sequence - 1;
        }
    }
    if (model == "models/weapons/v_knife_ursus.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_DRAW:
            return random(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(SEQUENCE_BUTTERFLY_LOOKAT01, 14);
        default:
            return sequence + 1;
        }
    }
    if (model == "models/weapons/v_knife_stiletto.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(12, 13);
        }
    }
    if (model == "models/weapons/v_knife_widowmaker.mdl")
    {
        switch (sequence)
        {
        case SEQUENCE_DEFAULT_LOOKAT01:
            return random(14, 15);
        case SEQUENCE_DEFAULT_HEAVY_BACKSTAB:
            return sequence - 1;
        }
    }
    return sequence;
}


void Remapping(CRecvProxyData* data, C_BaseViewModel* entity)
{
    if (!g_LocalPlayer || !g_LocalPlayer->IsAlive())
        return;

    const auto owner = g_EntityList->GetClientEntityFromHandle(entity->m_hOwner());
    if (owner != g_LocalPlayer)
        return;

    const auto view_model_weapon = static_cast<C_BaseAttributableItem*>(g_EntityList->GetClientEntityFromHandle(entity->m_hWeapon()));
    if (!view_model_weapon)
        return;

    const auto entry = k_weapon_info.find(view_model_weapon->m_Item().m_iItemDefinitionIndex());

    if (entry == k_weapon_info.end())
        return;

    if (&entry->second == nullptr)
        return;

    const auto weaponInfo = &entry->second;
    auto& sequence = data->m_Value.m_Int;
    sequence = GetNewAnimation(weaponInfo->model, sequence);
}

void Hooks::RecvProxy(const CRecvProxyData* pData, void* entity, void* output)
{
    static auto ofunc = sequence_hook->get_original_function();

    const auto proxy_data = const_cast<CRecvProxyData*>(pData);
    const auto view_model = static_cast<C_BaseViewModel*>(entity);

    Remapping(proxy_data, view_model);

    ofunc(pData, entity, output);
}
 
Назад
Сверху Снизу