示例#1
0
        unsafe public static void hkSetViewModelSequence(IntPtr addr, CRecvProxyData *pDataConst, IntPtr pStruct, IntPtr pOut)
        {
            var Data = new CRecvProxyData();

            Data = *pDataConst;
            var pData = &Data;

            FixSequence.Do(pData, pStruct);
            o_SetViewModelSequence(addr, pData, pStruct, pOut);
        }
示例#2
0
        unsafe public static void Do(CRecvProxyData *pData, IntPtr pStruct)
        {
            if (!g_LocalPlayer || !g_LocalPlayer.isAlive)
            {
                return;
            }

            var pViewModel = (BaseViewModel)pStruct;

            if (!pViewModel)
            {
                return;
            }

            var entity = (BasePlayer)g_Entity.GetClientEntityFromHandle((IntPtr)pViewModel.m_hOwner);

            if (entity.EntIndex() != g_Engine.GetLocalPlayer())
            {
                return;
            }

            var model       = g_MdlInfo.GetModel(pViewModel.m_nModelIndex);
            var mname       = Marshal.PtrToStringAnsi((IntPtr)model->szName);
            var m_nSequence = (Sequence)Enum.Parse(typeof(Sequence), pData->m_Value.m_Int.ToString());

            if (mname == null || mname == string.Empty)
            {
                return;
            }

            if (mname.Contains("models/weapons/v_knife_butterfly.mdl"))
            {
                switch (m_nSequence)
                {
                case SEQUENCE_DEFAULT_DRAW:
                    m_nSequence = RandomSequence(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
                    break;

                case SEQUENCE_DEFAULT_LOOKAT01:
                    m_nSequence = RandomSequence(SEQUENCE_BUTTERFLY_LOOKAT01, SEQUENCE_BUTTERFLY_LOOKAT03);
                    break;

                default:
                    m_nSequence++;
                    break;
                }
            }
            else if (mname.Contains("models/weapons/v_knife_falchion_advanced.mdl"))
            {
                switch (m_nSequence)
                {
                case SEQUENCE_DEFAULT_IDLE2:
                    m_nSequence = SEQUENCE_FALCHION_IDLE1;
                    break;

                case SEQUENCE_DEFAULT_HEAVY_MISS1:
                    m_nSequence = RandomSequence(SEQUENCE_FALCHION_HEAVY_MISS1, SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP);
                    break;

                case SEQUENCE_DEFAULT_LOOKAT01:
                    m_nSequence = RandomSequence(SEQUENCE_FALCHION_LOOKAT01, SEQUENCE_FALCHION_LOOKAT02);
                    break;

                case SEQUENCE_DEFAULT_DRAW:
                case SEQUENCE_DEFAULT_IDLE1:
                    break;

                default:
                    m_nSequence -= 1;
                    break;
                }
            }
            else if (mname.Contains("models/weapons/v_knife_css.mdl"))
            {
                switch (m_nSequence)
                {
                case SEQUENCE_DEFAULT_LOOKAT01:
                    m_nSequence = SEQUENCE_CSS_LOOKAT02;    //RandomSequence(SEQUENCE_CSS_LOOKAT01, SEQUENCE_CSS_LOOKAT02);
                    break;

                default:
                    break;
                }
            }
            else if (mname.Contains("models/weapons/v_knife_push.mdl"))
            {
                switch (m_nSequence)
                {
                case SEQUENCE_DEFAULT_IDLE2:
                    m_nSequence = SEQUENCE_DAGGERS_IDLE1;
                    break;

                case SEQUENCE_DEFAULT_LIGHT_MISS1:
                    break;

                case SEQUENCE_DEFAULT_LIGHT_MISS2:
                    m_nSequence = RandomSequence(SEQUENCE_DAGGERS_LIGHT_MISS1, SEQUENCE_DAGGERS_LIGHT_MISS5);
                    break;

                case SEQUENCE_DEFAULT_HEAVY_MISS1:
                    m_nSequence = RandomSequence(SEQUENCE_DAGGERS_HEAVY_MISS2, SEQUENCE_DAGGERS_HEAVY_MISS1);
                    break;

                case SEQUENCE_DEFAULT_HEAVY_HIT1:
                case SEQUENCE_DEFAULT_HEAVY_BACKSTAB:
                case SEQUENCE_DEFAULT_LOOKAT01:
                    m_nSequence += 3;
                    break;

                case SEQUENCE_DEFAULT_DRAW:
                case SEQUENCE_DEFAULT_IDLE1:
                    break;

                default:
                    m_nSequence += 2;
                    break;
                }
            }
            else if (mname.Contains("models/weapons/v_knife_survival_bowie.mdl"))
            {
                switch (m_nSequence)
                {
                case SEQUENCE_DEFAULT_DRAW:
                case SEQUENCE_DEFAULT_IDLE1:
                    break;

                case SEQUENCE_DEFAULT_IDLE2:
                    m_nSequence = SEQUENCE_BOWIE_IDLE1;
                    break;

                default:
                    m_nSequence -= 1;
                    break;
                }
            }
            else if (mname.Contains("models/weapons/v_knife_ursus.mdl") ||
                     mname.Contains("models/weapons/v_knife_cord.mdl") ||
                     mname.Contains("models/weapons/v_knife_canis.mdl") ||
                     mname.Contains("models/weapons/v_knife_outdoor.mdl") ||
                     mname.Contains("models/weapons/v_knife_skeleton.mdl"))
            {
                switch (m_nSequence)
                {
                case SEQUENCE_DEFAULT_DRAW:
                    m_nSequence = RandomSequence(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
                    break;

                case SEQUENCE_DEFAULT_LOOKAT01:
                    m_nSequence = RandomSequence(SEQUENCE_BUTTERFLY_LOOKAT01, SEQUENCE_CSS_LOOKAT01);
                    break;

                default:
                    m_nSequence += 1;
                    break;
                }
            }
            else if (mname.Contains("models/weapons/v_knife_stiletto.mdl"))
            {
                switch (m_nSequence)
                {
                case SEQUENCE_DEFAULT_LOOKAT01:
                    m_nSequence = RandomSequence(SEQUENCE_DEFAULT_LOOKAT01, SEQUENCE_BUTTERFLY_LOOKAT01);
                    break;

                default:
                    break;
                }
            }
            else if (mname.Contains("models/weapons/v_knife_widowmaker.mdl"))
            {
                switch (m_nSequence)
                {
                case SEQUENCE_DEFAULT_LOOKAT01:
                    m_nSequence = RandomSequence(SEQUENCE_CSS_LOOKAT01, SEQUENCE_BUTTERFLY_LOOKAT03);
                    break;

                default:
                    break;
                }
            }

            pData->m_Value.m_Int = (int)m_nSequence;
        }