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

Как фиксить анимации ножей

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
2 Янв 2020
Сообщения
55
Реакции
5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как фиксить анимки ножей которые вышли с батл пасом в кс (skeleton, outdoor и т.д.)
или как можно сделать что бы анимки ножей автоматом детектились
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
хуй забили на анимаций
ааа ты про это )
но мне нужно фиксить
мой внутренний перфекционист подыхает в агониях когда нож просто исчезает вместо анимки
софт делаю просто под себя не для села
 
Код:
Expand Collapse Copy
#define SEQUENCE_DEFAULT_DRAW 0
#define SEQUENCE_DEFAULT_IDLE1 1
#define SEQUENCE_DEFAULT_IDLE2 2
#define SEQUENCE_DEFAULT_LIGHT_MISS1 3
#define SEQUENCE_DEFAULT_LIGHT_MISS2 4
#define SEQUENCE_DEFAULT_HEAVY_MISS1 9
#define SEQUENCE_DEFAULT_HEAVY_HIT1 10
#define SEQUENCE_DEFAULT_HEAVY_BACKSTAB 11
#define SEQUENCE_DEFAULT_LOOKAT01 12

#define SEQUENCE_BUTTERFLY_DRAW 0
#define SEQUENCE_BUTTERFLY_DRAW2 1
#define SEQUENCE_BUTTERFLY_LOOKAT01 13
#define SEQUENCE_BUTTERFLY_LOOKAT03 15

#define SEQUENCE_FALCHION_IDLE1 1
#define SEQUENCE_FALCHION_HEAVY_MISS1 8
#define SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP 9
#define SEQUENCE_FALCHION_LOOKAT01 12
#define SEQUENCE_FALCHION_LOOKAT02 13

#define SEQUENCE_DAGGERS_IDLE1 1
#define SEQUENCE_DAGGERS_LIGHT_MISS1 2
#define SEQUENCE_DAGGERS_LIGHT_MISS5 6
#define SEQUENCE_DAGGERS_HEAVY_MISS2 11
#define SEQUENCE_DAGGERS_HEAVY_MISS1 12

#define SEQUENCE_BOWIE_IDLE1 1

#define    LIFE_ALIVE 0
#include <memory>



class RecvPropHook
{
private:
    RecvProp* target_property;
    RecvVarProxyFn original_proxy_fn;
public:
    RecvPropHook(RecvProp* target_property)
    {
        this->target_property = target_property;
        this->original_proxy_fn = (RecvVarProxyFn)target_property->m_ProxyFn;
    }

    ~RecvPropHook()
    {
        target_property->m_ProxyFn = this->original_proxy_fn;
    }

    RecvVarProxyFn GetOriginalFunction()
    {
        return this->original_proxy_fn;
    }

    void SetProxyFunction(RecvVarProxyFn user_proxy_fn)
    {
        target_property->m_ProxyFn = user_proxy_fn;
    }
};

std::unique_ptr<RecvPropHook> sequenceHook;

RecvVarProxyFn oRecvProxySequence;
void RecvProxy_Sequence(CRecvProxyData* pDataConst, void* pStruct, void* pOut)
{
    static int lastSentSeq;
    CRecvProxyData* pData = const_cast<CRecvProxyData*>(pDataConst);

    int iSequence = pData->m_Value.m_Int;

    CBaseCombatWeapon* Weapon = static_cast<CBaseCombatWeapon*>(pStruct);
    CBaseEntity* pLocal = Interfaces.pEntList->GetClientEntity(Interfaces.pEngine->GetLocalPlayer());

    if (Weapon && Weapon->GetModelIndex() && pLocal)
    {
        std::string rWeapon = Interfaces.g_pModelInfo->GetModelName(Weapon->GetModel());

        if (rWeapon.find(("v_knife_push.mdl")) != std::string::npos)
        {
            switch (iSequence) {
            case SEQUENCE_DEFAULT_IDLE2:
                iSequence = SEQUENCE_DAGGERS_IDLE1; break;
            case SEQUENCE_DEFAULT_LIGHT_MISS1:
            case SEQUENCE_DEFAULT_LIGHT_MISS2:
                iSequence = RandomIntZ(SEQUENCE_DAGGERS_LIGHT_MISS1, SEQUENCE_DAGGERS_LIGHT_MISS5); break;
            case SEQUENCE_DEFAULT_HEAVY_MISS1:
                iSequence = RandomIntZ(SEQUENCE_DAGGERS_HEAVY_MISS2, SEQUENCE_DAGGERS_HEAVY_MISS1); break;
            case SEQUENCE_DEFAULT_HEAVY_HIT1:
            case SEQUENCE_DEFAULT_HEAVY_BACKSTAB:
            case SEQUENCE_DEFAULT_LOOKAT01:
                iSequence += 3; break;
            case SEQUENCE_DEFAULT_DRAW:
            case SEQUENCE_DEFAULT_IDLE1:
                break;
            default:
                iSequence += 2;
            }
        }
        else if (rWeapon.find(("v_knife_falchion_advanced.mdl")) != std::string::npos)
        {
            switch (iSequence) {
            case SEQUENCE_DEFAULT_IDLE2:
                iSequence = SEQUENCE_FALCHION_IDLE1; break;
            case SEQUENCE_DEFAULT_HEAVY_MISS1:
                iSequence = RandomIntZ(SEQUENCE_FALCHION_HEAVY_MISS1, SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP); break;
            case SEQUENCE_DEFAULT_LOOKAT01:
                iSequence = RandomIntZ(SEQUENCE_FALCHION_LOOKAT01, SEQUENCE_FALCHION_LOOKAT02); break;
            case SEQUENCE_DEFAULT_DRAW:
            case SEQUENCE_DEFAULT_IDLE1:
                break;
            default:
                iSequence--;
            }
        }
        else if (rWeapon.find(("v_knife_butterfly.mdl")) != std::string::npos)
        {
            switch (iSequence) {
            case SEQUENCE_DEFAULT_DRAW:
                iSequence = RandomIntZ(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2); break;
            case SEQUENCE_DEFAULT_LOOKAT01:
                iSequence = RandomIntZ(SEQUENCE_BUTTERFLY_LOOKAT01, SEQUENCE_BUTTERFLY_LOOKAT03); break;
            default:
                iSequence++;
            }
        }
        else if (rWeapon.find(("v_knife_survival_bowie.mdl")) != std::string::npos)
        {
            switch (iSequence) {
            case SEQUENCE_DEFAULT_DRAW:
            case SEQUENCE_DEFAULT_IDLE1:
                break;
            case SEQUENCE_DEFAULT_IDLE2:
                iSequence = SEQUENCE_BOWIE_IDLE1; break;
            default:
                iSequence--;
            }
        }
        pData->m_Value.m_Int = iSequence;
    }

    if (!oRecvProxySequence)
        oRecvProxySequence = sequenceHook->GetOriginalFunction();

    oRecvProxySequence(pData, pStruct, pOut);
}
ааа ты про это )
но мне нужно фиксить
мой внутренний перфекционист подыхает в агониях когда нож просто исчезает вместо анимки
софт делаю просто под себя не для села
вот дс lil AnF#7400 скинь сурс, или вот
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
#define SEQUENCE_DEFAULT_DRAW 0
#define SEQUENCE_DEFAULT_IDLE1 1
#define SEQUENCE_DEFAULT_IDLE2 2
#define SEQUENCE_DEFAULT_LIGHT_MISS1 3
#define SEQUENCE_DEFAULT_LIGHT_MISS2 4
#define SEQUENCE_DEFAULT_HEAVY_MISS1 9
#define SEQUENCE_DEFAULT_HEAVY_HIT1 10
#define SEQUENCE_DEFAULT_HEAVY_BACKSTAB 11
#define SEQUENCE_DEFAULT_LOOKAT01 12

#define SEQUENCE_BUTTERFLY_DRAW 0
#define SEQUENCE_BUTTERFLY_DRAW2 1
#define SEQUENCE_BUTTERFLY_LOOKAT01 13
#define SEQUENCE_BUTTERFLY_LOOKAT03 15

#define SEQUENCE_FALCHION_IDLE1 1
#define SEQUENCE_FALCHION_HEAVY_MISS1 8
#define SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP 9
#define SEQUENCE_FALCHION_LOOKAT01 12
#define SEQUENCE_FALCHION_LOOKAT02 13

#define SEQUENCE_DAGGERS_IDLE1 1
#define SEQUENCE_DAGGERS_LIGHT_MISS1 2
#define SEQUENCE_DAGGERS_LIGHT_MISS5 6
#define SEQUENCE_DAGGERS_HEAVY_MISS2 11
#define SEQUENCE_DAGGERS_HEAVY_MISS1 12

#define SEQUENCE_BOWIE_IDLE1 1

#define    LIFE_ALIVE 0
#include <memory>



class RecvPropHook
{
private:
    RecvProp* target_property;
    RecvVarProxyFn original_proxy_fn;
public:
    RecvPropHook(RecvProp* target_property)
    {
        this->target_property = target_property;
        this->original_proxy_fn = (RecvVarProxyFn)target_property->m_ProxyFn;
    }

    ~RecvPropHook()
    {
        target_property->m_ProxyFn = this->original_proxy_fn;
    }

    RecvVarProxyFn GetOriginalFunction()
    {
        return this->original_proxy_fn;
    }

    void SetProxyFunction(RecvVarProxyFn user_proxy_fn)
    {
        target_property->m_ProxyFn = user_proxy_fn;
    }
};

std::unique_ptr<RecvPropHook> sequenceHook;

RecvVarProxyFn oRecvProxySequence;
void RecvProxy_Sequence(CRecvProxyData* pDataConst, void* pStruct, void* pOut)
{
    static int lastSentSeq;
    CRecvProxyData* pData = const_cast<CRecvProxyData*>(pDataConst);

    int iSequence = pData->m_Value.m_Int;

    CBaseCombatWeapon* Weapon = static_cast<CBaseCombatWeapon*>(pStruct);
    CBaseEntity* pLocal = Interfaces.pEntList->GetClientEntity(Interfaces.pEngine->GetLocalPlayer());

    if (Weapon && Weapon->GetModelIndex() && pLocal)
    {
        std::string rWeapon = Interfaces.g_pModelInfo->GetModelName(Weapon->GetModel());

        if (rWeapon.find(("v_knife_push.mdl")) != std::string::npos)
        {
            switch (iSequence) {
            case SEQUENCE_DEFAULT_IDLE2:
                iSequence = SEQUENCE_DAGGERS_IDLE1; break;
            case SEQUENCE_DEFAULT_LIGHT_MISS1:
            case SEQUENCE_DEFAULT_LIGHT_MISS2:
                iSequence = RandomIntZ(SEQUENCE_DAGGERS_LIGHT_MISS1, SEQUENCE_DAGGERS_LIGHT_MISS5); break;
            case SEQUENCE_DEFAULT_HEAVY_MISS1:
                iSequence = RandomIntZ(SEQUENCE_DAGGERS_HEAVY_MISS2, SEQUENCE_DAGGERS_HEAVY_MISS1); break;
            case SEQUENCE_DEFAULT_HEAVY_HIT1:
            case SEQUENCE_DEFAULT_HEAVY_BACKSTAB:
            case SEQUENCE_DEFAULT_LOOKAT01:
                iSequence += 3; break;
            case SEQUENCE_DEFAULT_DRAW:
            case SEQUENCE_DEFAULT_IDLE1:
                break;
            default:
                iSequence += 2;
            }
        }
        else if (rWeapon.find(("v_knife_falchion_advanced.mdl")) != std::string::npos)
        {
            switch (iSequence) {
            case SEQUENCE_DEFAULT_IDLE2:
                iSequence = SEQUENCE_FALCHION_IDLE1; break;
            case SEQUENCE_DEFAULT_HEAVY_MISS1:
                iSequence = RandomIntZ(SEQUENCE_FALCHION_HEAVY_MISS1, SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP); break;
            case SEQUENCE_DEFAULT_LOOKAT01:
                iSequence = RandomIntZ(SEQUENCE_FALCHION_LOOKAT01, SEQUENCE_FALCHION_LOOKAT02); break;
            case SEQUENCE_DEFAULT_DRAW:
            case SEQUENCE_DEFAULT_IDLE1:
                break;
            default:
                iSequence--;
            }
        }
        else if (rWeapon.find(("v_knife_butterfly.mdl")) != std::string::npos)
        {
            switch (iSequence) {
            case SEQUENCE_DEFAULT_DRAW:
                iSequence = RandomIntZ(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2); break;
            case SEQUENCE_DEFAULT_LOOKAT01:
                iSequence = RandomIntZ(SEQUENCE_BUTTERFLY_LOOKAT01, SEQUENCE_BUTTERFLY_LOOKAT03); break;
            default:
                iSequence++;
            }
        }
        else if (rWeapon.find(("v_knife_survival_bowie.mdl")) != std::string::npos)
        {
            switch (iSequence) {
            case SEQUENCE_DEFAULT_DRAW:
            case SEQUENCE_DEFAULT_IDLE1:
                break;
            case SEQUENCE_DEFAULT_IDLE2:
                iSequence = SEQUENCE_BOWIE_IDLE1; break;
            default:
                iSequence--;
            }
        }
        pData->m_Value.m_Int = iSequence;
    }

    if (!oRecvProxySequence)
        oRecvProxySequence = sequenceHook->GetOriginalFunction();

    oRecvProxySequence(pData, pStruct, pOut);
}

вот дс lil AnF#7400 скинь сурс, или вот
это олд ножи.....
мне нужно фиксить новые
 
как фиксить анимки ножей которые вышли с батл пасом в кс (skeleton, outdoor и т.д.)
или как можно сделать что бы анимки ножей автоматом детектились

Код by @hvh bot
ориг тема от ботяры - https://yougame.biz/threads/108810/
C++:
Expand Collapse Copy
    if (strstr(model, "models/weapons/v_knife_canis.mdl") || strstr(model, "models/weapons/v_knife_outdoor.mdl") || strstr(model, "models/weapons/v_knife_cord.mdl") || 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;
        }
    }
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код by @hvh bot
ориг тема от ботяры - https://yougame.biz/threads/108810/
C++:
Expand Collapse Copy
    if (strstr(model, "models/weapons/v_knife_canis.mdl") || strstr(model, "models/weapons/v_knife_outdoor.mdl") || strstr(model, "models/weapons/v_knife_cord.mdl") || 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;
        }
    }
спс от души братуха
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код by @hvh bot
ориг тема от ботяры - https://yougame.biz/threads/108810/
C++:
Expand Collapse Copy
    if (strstr(model, "models/weapons/v_knife_canis.mdl") || strstr(model, "models/weapons/v_knife_outdoor.mdl") || strstr(model, "models/weapons/v_knife_cord.mdl") || 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;
        }
    }
Ботяра Намбер Ван! Мой кодер самый лучший))
 
Назад
Сверху Снизу