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); }
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; }