@@ -213,4 +213,73 @@ void PluginWeapon::Remove()
213213 itemServices->DropPlayerWeapon (this ->m_ptr );
214214 weaponServices->RemoveWeapon (this ->m_ptr );
215215 this ->m_ptr ->Despawn ();
216+ }
217+
218+ std::vector<uint16_t > paintkitsFallbackCheck = {1171 , 1170 , 1169 , 1164 , 1162 , 1161 , 1159 , 1175 , 1174 , 1167 , 1165 , 1168 , 1163 , 1160 , 1166 , 1173 };
219+
220+ void PluginWeapon::SetDefaultAttributes ()
221+ {
222+ if (!this ->m_ptr )
223+ return ;
224+
225+ Player *player = g_playerManager->GetPlayer (m_playerId);
226+ if (!player)
227+ return ;
228+
229+ CCSPlayerPawn *pawn = player->GetPlayerPawn ();
230+ if (!pawn)
231+ return ;
232+
233+ this ->m_ptr ->m_AttributeManager ().m_Item ().m_iItemIDHigh = -1 ;
234+
235+ if (this ->m_ptr ->GetWeaponVData ()->m_GearSlot == cgear_slot_t ::GEAR_SLOT_KNIFE)
236+ {
237+ this ->m_ptr ->m_AttributeManager ().m_Item ().m_iEntityQuality = 3 ;
238+ }
239+
240+ int paintkit = this ->m_ptr ->m_nFallbackPaintKit ();
241+ bool legacy = (std::find (paintkitsFallbackCheck.begin (), paintkitsFallbackCheck.end (), paintkit) == paintkitsFallbackCheck.end ());
242+
243+ if (this ->m_ptr ->m_CBodyComponent () && this ->m_ptr ->m_CBodyComponent ()->m_pSceneNode ())
244+ {
245+ CSkeletonInstance *skeleton = this ->m_ptr ->m_CBodyComponent ()->m_pSceneNode ()->GetSkeletonInstance ();
246+ if (skeleton)
247+ {
248+ if (skeleton->m_modelState ().m_MeshGroupMask () != (legacy == true ? 2 : 1 ))
249+ {
250+ skeleton->m_modelState ().m_MeshGroupMask = (legacy == true ? 2 : 1 );
251+ }
252+ }
253+ }
254+
255+ CCSPlayer_ViewModelServices *viewmodelServices = pawn->m_pViewModelServices ();
256+ if (!viewmodelServices)
257+ return ;
258+
259+ CHandle<CBaseViewModel> *viewmodelHandles = viewmodelServices->m_hViewModel ();
260+ if (!viewmodelHandles)
261+ return ;
262+ if (!viewmodelHandles[0 ])
263+ return ;
264+ if (!viewmodelHandles[0 ].IsValid ())
265+ return ;
266+
267+ CBaseViewModel *viewmodel = viewmodelHandles[0 ].Get ();
268+
269+ if (!viewmodel)
270+ return ;
271+
272+ if (viewmodel->m_CBodyComponent () && viewmodel->m_CBodyComponent ()->m_pSceneNode ())
273+ {
274+ CSkeletonInstance *viewmodelskeleton = viewmodel->m_CBodyComponent ()->m_pSceneNode ()->GetSkeletonInstance ();
275+ if (viewmodelskeleton)
276+ {
277+ if (viewmodelskeleton->m_modelState ().m_MeshGroupMask () != (legacy == true ? 2 : 1 ))
278+ {
279+ viewmodelskeleton->m_modelState ().m_MeshGroupMask = (legacy == true ? 2 : 1 );
280+ }
281+ }
282+ }
283+
284+ viewmodel->m_CBodyComponent .StateUpdate ();
216285}
0 commit comments