private static void FrameStageNotify(IBaseClientDLL.FrameStage FrameStage) { if (FrameStage == IBaseClientDLL.FrameStage.RENDER_START) { Visual.FakePrime(); } if (FrameStage == IBaseClientDLL.FrameStage.NET_UPDATE_POSTDATAUPDATE_START) { BasePlayer *localPlayer = Interface.ClientEntityList.GetClientEntity(Interface.VEngineClient.GetLocalPlayer)->GetPlayer; if (localPlayer == null) { Interface.BaseClientDLL.FrameStageNotifyOriginal(FrameStage); return; } if (ConfigManager.CSkinChanger.SkinChangerActive) { SkinChanger.OnFrameStage(FrameStage, localPlayer); } } Interface.BaseClientDLL.FrameStageNotifyOriginal(FrameStage); }
public static void OnFrameStage(IBaseClientDLL.FrameStage frameStage, BasePlayer *localPlayer) { if (!localPlayer->IsAlive) { return; } Interface.VEngineClient.GetPlayerInfo(Interface.VEngineClient.GetLocalPlayer, out IVEngineClient.PlayerInfo PlayerInfo); for (int Index = 0; Index < 8; Index++) { BaseCombatWeapon *Weapon = localPlayer->GetMyWeapons(Index); if (Weapon == null) { continue; } if (Weapon->OriginalOwnerXuidLow != PlayerInfo.m_nXuidLow) { continue; } if (Weapon->OriginalOwnerXuidHigh != PlayerInfo.m_nXuidHigh) { continue; } CSkinChangerWeapon WeaponId = ConfigManager.CSkinChangerWeapons[Weapon->ItemDefinitionIndex.GetWeaponId()]; ApplyWeapon(localPlayer, Weapon, WeaponId, PlayerInfo); } ApplyKnife(localPlayer, ref ConfigManager.CSkinChangerWeapons[35]); ApplyWearable(localPlayer, ref ConfigManager.CSkinChangerWeapons[36], PlayerInfo); }