public static void AimAtPos(Vector3 pos) { Vector2 rotation = Cons.Main._localPlayer.MovementContext.Rotation; Vector3 b = Raycast.GetHandsPos(); Vector3 eulerAngles = Quaternion.LookRotation((pos - b).normalized).eulerAngles; if (eulerAngles.x > 180f) { eulerAngles.x -= 360f; } Cons.Main._localPlayer.MovementContext.Rotation = new Vector2(eulerAngles.y, eulerAngles.x); }
private void Update() { try { Cons.Main.G_Scene.SaveScene(); } catch (Exception e) { ErrorHandler.Catch("SaveScene", e); } try { FUNC.Update.Hotkeys(); } catch (Exception e) { ErrorHandler.Catch("Hotkeys", e); } try { FUNC.Update.Buttons(); } catch (Exception e) { ErrorHandler.Catch("Buttons", e); } // make sure scene is map scene and is loaded and ready if (Cons.Main.G_Scene.isInMatch() && Cons.Main.G_Scene.isActiveAndLoaded() && !MonoBehaviourSingleton <PreloaderUI> .Instance.IsBackgroundBlackActive) { if (Cons.Bools.ChangeSessionID) { if (SessID_timer < Time.time) { MonoBehaviourSingleton <PreloaderUI> .Instance.SetSessionId("NotForSale"); // use this for memes ;) SessID_timer = Time.time + 1f; } } else { if (Cons.Bools.StreamerMode) { MonoBehaviourSingleton <PreloaderUI> .Instance.SetStreamMode(true); // this should disable this stupid text ;) } else { // MonoBehaviourSingleton<PreloaderUI>.Instance.SetStreamMode(false); // this will not work cause of braindead BSG coders } } if (Cons.Bools.NoVisorScreen) { if (Camera.main != null) { Camera.main.GetComponent <VisorEffect>().Intensity = 0f; Camera.main.GetComponent <VisorEffect>().enabled = true; } } // delay start of script for 20 seconds on start of match cause match is starting way before deploy is displaying - it will cause less errors displaying // lower time from 20f if its holdup too long if (timestamp == 0f) { timestamp = Time.time + delay; } if (Time.time > timestamp) { if (Cons.Main._GameWorld == null) { //done only once on start of each map try { Cons.Main._GameWorld = FindObjectOfType <GameWorld>(); } catch (Exception e) { ErrorHandler.Catch("Get_GameWorld", e); } } else { // LiquidAce and his idea of grabbing data directly from GameWorld cause its better and less retarded - Thanks Mate #region Doors /*if (Cons.Bools.Draw_Doors) * { * Doors.Update.Doors(); * }*/ #endregion #region Players if (Cons.Bools.Draw_ESP) { /* make sure to not call it all the time but only on ESP Enabled * it creates list of alive objects (which is propably only alive objects but i check it anyway here) * also it creates class with players count in diffrent distances between you */ E5P.Players.Update.PlayerList(); } #endregion #region Grenades if (Cons.Bools.Draw_Grenades) { /* Grenade scanner - scans for grenades if this function is enabled * also added as much RAM free functions as possible */ E5P.Throwables.Update.ThrowableList(); } #endregion #region Corpses if (Cons.Bools.Draw_Corpses) { /* Corspes scanner - scans for corpses in the map and creates a list of them * also contains RAM free things to not cause out of memory violations 0xc0...05 * also online Corpses are diffrent then Offline Corpses and i check for both of them * EFT.Interactive.ObservedCorpse - as online corpse * EFT.Interactive.Corpse - as offline corpse */ E5P.Players.Update.DeadBodyList(); } #endregion #region AllLoot if (Cons.Bools.Draw_Loot) { /* Map Loot Scanner - scans and creates a list of loot on map - RAM free as always * EFT.Interactive.ObservedLootItem - as online LootItem * EFT.Interactive.LootItem - as offline LootItem */ E5P.Items.Update.ItemsList(); } if (Cons.Bools.Draw_Containers) { E5P.Items.Update.ContainerList(); } #endregion #region Exfiltrations if (Cons.Bools.Draw_Exfil) { /* Exfiltration - scans for Exfils in the map and creates a list of them * also contains RAM free things to not cause out of memory violations 0xc0...05 * also online Corpses are diffrent then Offline Corpses and i check for both of them */ E5P.Exfils.Update.ExfilsList(); } #endregion #region not used - loot pool map /* * - Items Patterns located on maps - also displays invisible loot deleted from map and broken loot below maps * if (Bools.Draw_Loot) * { * List<GClass711> tItems = new List<GClass711>(); * foreach (GClass711 li in _GameWorld.AllLoot) * { * tItems.Add(li); * } * _lootItems = tItems; * } */ #endregion // recoil reducer (break recoil animations) try { if (Cons.Bools.Recoil_Reducer) { Cons.LocalPlayer.Weapon.NoRecoil(); } } catch (Exception e) { ErrorHandler.Catch("NoRecoil", e); } try { if (Cons.Main._localPlayer != null) { Cons.AimPoint = Raycast.BarrelRaycast(); } } catch (Exception e) { ErrorHandler.Catch("BarrelRaycast", e); } //FUNC.Update.RecoilReducer(); // incase we dont use that so we can leave it like this for now try { FUNC.Update.FullBright(); } catch (Exception e) { ErrorHandler.Catch("Update_FullBright", e); } } } } else { Cons.AliveCount.Reset(); Cons.Main.Clear(); timestamp = 0f; Cons.Main._GameWorld = null; } }
public static void Players() { try { #region [INITIALS] - to skip data overflow (incase) float deltaDistance = 25f; string playerDisplayName = ""; float devLabel = 1f; string Status = ""; var LabelSize = new GUIStyle { fontSize = 12 }; Color playerColor = Constants.Colors.ESP.npc; float distancesAxisY_0 = 0; float distancesAxisY_1 = 0; float distancesAxisY_2 = 0; Color Backup; #endregion var e = Cons.Main._players.GetEnumerator(); while (e.MoveNext()) { var player = e.Current; if (FUNC.isInScreenYZ(FUNC.W2S(player.Transform.position))) { //fix for colors not holds after leaving screen Calculations.PlayerType playerType = Calculations.PlayerType.Scav; playerDisplayName = Calculations.PlayerName(player, ref playerType); playerColor = Calculations.PlayerColor(playerType); #region [Snap.Lines] if (Cons.Bools.SnapLines && player != Cons.Main._localPlayer) { Calculations.SnapLines(player, playerColor); } #endregion if (FUNC.isInScreenRestricted(FUNC.W2S(player.Transform.position))) { float dTO = FastMath.FD(Camera.main.transform.position, player.Transform.position); // main head vector 3d (x,y,z) Vector3 pHeadVector = FUNC.W2S(player.PlayerBones.Head.position); // setting head size comparing head position and neck position and multiplying by 1.5 (actually its head size) float find_sizebox = Math.Abs(pHeadVector.y - FUNC.W2S(player.PlayerBones.Neck.position).y) * 1.5f; // size of the head - its not good but its scaling without much maths // making sure head will not be too big find_sizebox = (find_sizebox > 30f) ? 30f : find_sizebox; float half_sizebox = (find_sizebox > 30f) ? 15f : find_sizebox / 2f; // size of fonts depending on distance int FontSize = 12; FastMath.DistSizer(dTO, ref FontSize, ref deltaDistance, ref devLabel); LabelSize.fontSize = FontSize; //create 3 size table of distances for texts (name, status, weapon) distancesAxisY_0 = deltaDistance + 10f; distancesAxisY_1 = distancesAxisY_0 + FontSize + 1; distancesAxisY_2 = distancesAxisY_1 + FontSize + 1; Status = Calculations.GetPlayerTotalHealth(player); // Health here #region BONE-DUMP /*if (dTO < 20f) * { * //string forDump = ""; * try * { * for (int i = 0; i < 134; i++) * { * if ((i > 13 && i <= 27) || i == 38 || i == 39 || i == 40 || i == 41 || (i >= 66 && i <= 70) || i == 132) * { * string name = ""; * try * { * name = FUNC.Bones.SkeletonBoneName(player.PlayerBones.AnimatedTransform.Original.gameObject.GetComponent<PlayerBody>().SkeletonRootJoint, i); * name = name.Split('/')[name.Split('/').Length - 1]; * Vector3 pos = FUNC.W2S(FUNC.Bones.GetBonePosByID(player, i)); * Drawing.Text(new Rect(pos.x, Screen.height - pos.y, 20f, 20f), i.ToString()); * } * catch (Exception) * { * name = "bad"; * } * //forDump = forDump + name + " - " + i + Environment.NewLine; * } * } * } * catch (Exception ex) * { * ErrorHandler.Catch("DUMPED", ex); * } * //ErrorHandler.Dump("DUMPED", forDump); * }*/ #endregion #region [BONE-ESP] if (Cons.Bools.ShowBones) { Calculations.PlayerBones(dTO, player); } #endregion if (playerType != Calculations.PlayerType.TeamMate) { Backup = GUI.color; GUI.color = Color.red; Drawing.Special.DrawPoint(pHeadVector.x - half_sizebox, (float)(Screen.height - pHeadVector.y) - half_sizebox, find_sizebox, Constants.Colors.Red); GUI.color = Backup; } #region [VISIBILITY-CHECK] string isVisible = ""; if (Raycast.BodyRaycastCheck(player.gameObject, pHeadVector)) { isVisible = "+"; } #endregion #region [Group-Num] int gInt; string groupID = ""; try { if (Types.GroupTable.TryGetValue(player.GroupId, out gInt)) { groupID = "{" + gInt + "}"; } } catch (Exception) { } #endregion #region [INIT-Texts] string nameNickname = $"{playerDisplayName}{groupID}"; string playerStatus = $"{isVisible}[{(int)dTO}m] {Status}"; string WeaponName = ""; #endregion #region [TRY-DecodeWeaponName] try { WeaponName = player.Weapon.ShortName.Localized(); } catch (Exception) { WeaponName = "No Weapon"; } #endregion // set colors now LabelSize.normal.textColor = playerColor; #region Slot 0 - Player Name (vector, size, drawing) if (nameNickname != "") { Vector2 vector_playerName = GUI.skin.GetStyle(nameNickname).CalcSize(new GUIContent(nameNickname)); float player_NameText = (devLabel == 1f) ? vector_playerName.x : (vector_playerName.x / devLabel); Drawing.Special.DrawText( nameNickname, pHeadVector.x - player_NameText / 2f, (float)Screen.height - FUNC.W2S(player.PlayerBones.Head.position).y - distancesAxisY_0, vector_playerName, LabelSize, playerColor ); } #endregion #region Slot 1 - Status (distance, health) Vector2 vector_playerStatus = GUI.skin.GetStyle(playerStatus).CalcSize(new GUIContent(playerStatus)); float player_TextWidth = (devLabel == 1f) ? vector_playerStatus.x : (vector_playerStatus.x / devLabel); Drawing.Special.DrawText( playerStatus, pHeadVector.x - player_TextWidth / 2f, (float)Screen.height - FUNC.W2S(player.PlayerBones.Head.position).y - distancesAxisY_1, vector_playerStatus, LabelSize, playerColor ); #endregion #region Slot 2 - Weapon Name (vector, size, drawing) - if not empty if (WeaponName != "") { Vector2 vector_WeaponName = GUI.skin.GetStyle(WeaponName).CalcSize(new GUIContent(WeaponName)); float player_WeaponName = (devLabel == 1f) ? vector_WeaponName.x : (vector_WeaponName.x / devLabel); Drawing.Special.DrawText( WeaponName, pHeadVector.x - player_TextWidth / 2f, (float)Screen.height - FUNC.W2S(player.PlayerBones.Head.position).y - distancesAxisY_2, vector_WeaponName, LabelSize, playerColor ); } #endregion } } } } catch (Exception e) { ErrorHandler.Catch("e5p_Players_Draw_Players", e); } }