Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. void SetViewModelSequence(const CRecvProxyData *pDataConst, void *pStruct, void *pOut) {
  2.  
  3. void SkinChanger::SetViewModelSequence(const CRecvProxyData *pDataConst, void *pStruct, void *pOut)
  4. {
  5. if (ModSupport::current_mod == ModType::CSCO)
  6. return;
  7.  
  8. // Make the incoming data editable.
  9. CRecvProxyData* pData = const_cast<CRecvProxyData*>(pDataConst);
  10.  
  11. // Confirm that we are replacing our view model and not someone elses.
  12. C_BaseViewModel* pViewModel = (C_BaseViewModel*)pStruct;
  13.  
  14. if (pViewModel)
  15. {
  16. IClientEntity* pOwner = (IClientEntity*)entityList->GetClientEntity(pViewModel->GetOwner() & 0xFFF);
  17.  
  18. // Compare the owner entity of this view model to the local player entity.
  19. if (pOwner && pOwner->GetIndex() == engine->GetLocalPlayer())
  20. {
  21. // Get the filename of the current view model.
  22. model_t* pModel = modelInfo->GetModel(*pViewModel->GetModelIndex());
  23. std::string szModel = modelInfo->GetModelName(pModel);
  24.  
  25. // Store the current sequence.
  26. int m_nSequence = pData->m_Value.m_Int;
  27. if (szModel == "models/weapons/v_knife_butterfly.mdl")
  28. {
  29. // Fix animations for the Butterfly Knife.
  30. switch (m_nSequence)
  31. {
  32. case SEQUENCE_DEFAULT_DRAW:
  33. m_nSequence = RandomInt(SEQUENCE_BUTTERFLY_DRAW, SEQUENCE_BUTTERFLY_DRAW2);
  34. break;
  35. case SEQUENCE_DEFAULT_LOOKAT01:
  36. m_nSequence = RandomInt(SEQUENCE_BUTTERFLY_LOOKAT01, SEQUENCE_BUTTERFLY_LOOKAT03);
  37. break;
  38. default:
  39. m_nSequence++;
  40. }
  41. }
  42. else if (szModel == "models/weapons/v_knife_falchion_advanced.mdl")
  43. {
  44. // Fix animations for the Falchion Knife.
  45. switch (m_nSequence)
  46. {
  47. case SEQUENCE_DEFAULT_IDLE2:
  48. m_nSequence = SEQUENCE_FALCHION_IDLE1; break;
  49. case SEQUENCE_DEFAULT_HEAVY_MISS1:
  50. m_nSequence = RandomInt(SEQUENCE_FALCHION_HEAVY_MISS1, SEQUENCE_FALCHION_HEAVY_MISS1_NOFLIP);
  51. break;
  52. case SEQUENCE_DEFAULT_LOOKAT01:
  53. m_nSequence = RandomInt(SEQUENCE_FALCHION_LOOKAT01, SEQUENCE_FALCHION_LOOKAT02);
  54. break;
  55. case SEQUENCE_DEFAULT_DRAW:
  56. case SEQUENCE_DEFAULT_IDLE1:
  57. break;
  58. default:
  59. m_nSequence--;
  60. }
  61. }
  62. else if (szModel == "models/weapons/v_knife_push.mdl")
  63. {
  64. // Fix animations for the Shadow Daggers.
  65. switch (m_nSequence)
  66. {
  67. case SEQUENCE_DEFAULT_IDLE2:
  68. m_nSequence = SEQUENCE_DAGGERS_IDLE1; break;
  69. case SEQUENCE_DEFAULT_LIGHT_MISS1:
  70. case SEQUENCE_DEFAULT_LIGHT_MISS2:
  71. m_nSequence = RandomInt(SEQUENCE_DAGGERS_LIGHT_MISS1, SEQUENCE_DAGGERS_LIGHT_MISS5);
  72. break;
  73. case SEQUENCE_DEFAULT_HEAVY_MISS1:
  74. m_nSequence = RandomInt(SEQUENCE_DAGGERS_HEAVY_MISS2, SEQUENCE_DAGGERS_HEAVY_MISS1);
  75. break;
  76. case SEQUENCE_DEFAULT_HEAVY_HIT1:
  77. case SEQUENCE_DEFAULT_HEAVY_BACKSTAB:
  78. case SEQUENCE_DEFAULT_LOOKAT01:
  79. m_nSequence += 3; break;
  80. case SEQUENCE_DEFAULT_DRAW:
  81. case SEQUENCE_DEFAULT_IDLE1:
  82. break;
  83. default:
  84. m_nSequence += 2;
  85. }
  86. }
  87. else if (szModel == "models/weapons/v_knife_survival_bowie.mdl")
  88. {
  89. // Fix animations for the Bowie Knife.
  90. switch (m_nSequence)
  91. {
  92. case SEQUENCE_DEFAULT_DRAW:
  93. case SEQUENCE_DEFAULT_IDLE1:
  94. break;
  95. case SEQUENCE_DEFAULT_IDLE2:
  96. m_nSequence = SEQUENCE_BOWIE_IDLE1;
  97. break;
  98. default:
  99. m_nSequence--;
  100. }
  101. }
  102.  
  103. // Set the fixed sequence.
  104. pData->m_Value.m_Int = m_nSequence;
  105. }
  106. }
  107.  
  108. // Call original function with the modified data.
  109. if (!fnSequenceProxyFn)
  110. fnSequenceProxyFn = sequenceHook->GetOriginalFunction();
  111.  
  112. fnSequenceProxyFn(pData, pStruct, pOut);
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement