public void Awake() { Log.Error("Aimbot awake."); try { hub = gameObject.GetPlayer(); script = gameObject.GetComponent <Scp049PlayerScript>(); obj = Instantiate( NetworkManager.singleton.spawnPrefabs.FirstOrDefault(p => p.gameObject.name == "Player")); CharacterClassManager ccm = obj.GetComponent <CharacterClassManager>(); ccm.CurClass = RoleType.ClassD; ccm.RefreshPlyModel(); List <ReferenceHub> players = Player.GetHubs().ToList(); int r = EventPlugin.Gen.Next(players.Count); obj.GetComponent <NicknameSync>().Network_myNickSync = players[r].GetNickname(); obj.GetComponent <QueryProcessor>().PlayerId = players[r].GetPlayerId(); obj.transform.localScale *= 0.0000001f; obj.transform.position = hub.GetPosition(); NetworkServer.Spawn(obj); sync = obj.GetComponent <PlyMovementSync>(); ident = obj.GetComponent <NetworkIdentity>(); ReferenceHub fakeHub = obj.GetComponent <ReferenceHub>(); if (fakeHub != null) { Destroy(hub); } Timing.RunCoroutine(RefreshAimbotLocation(), gameObject); } catch (Exception e) { Log.Error(e.ToString()); } }
private void Attack() { RaycastHit raycastHit; if (this.iAm049 && Physics.Raycast(this.plyCam.transform.position, this.plyCam.transform.forward, out raycastHit, this.distance)) { Scp049PlayerScript component = raycastHit.transform.GetComponent <Scp049PlayerScript>(); if (component != null && !component.sameClass) { this.InfectPlayer(component.gameObject, base.GetComponent <HlapiPlayer>().PlayerId); } } }
public static void Postfix(Scp049PlayerScript __instance, ref GameObject target) { Log.Debug($"[Recall049Patch] SCP049:{Player.GetPlayer(__instance.gameObject).GetNickname()} Target:{Player.GetPlayer(target).GetNickname()} TargetRole:{Player.GetPlayer(target).GetRole()}"); if (Player.GetPlayer(target)?.GetRole() != RoleType.Scp0492) { return; } if (Configs.recovery_amount_scp049 > 0) { ReferenceHub.GetHub(__instance.gameObject).playerStats.HealHPAmount(Configs.recovery_amount_scp049); } if (Configs.scp049_reset_ragdoll_after_recall) { foreach (var player in Player.GetHubs()) { __instance.RpcSetDeathTime(player.gameObject); } } }
public static bool Prefix(PlayerPositionManager __instance) { try { List <GameObject> players = PlayerManager.players; __instance.usedData = players.Count; if (__instance.receivedData == null || __instance.receivedData.Length < __instance.usedData) { __instance.receivedData = new PlayerPositionData[__instance.usedData * 2]; } for (int index = 0; index < __instance.usedData; ++index) { __instance.receivedData[index] = new PlayerPositionData(players[index]); } if (__instance.transmitBuffer == null || __instance.transmitBuffer.Length < __instance.usedData) { __instance.transmitBuffer = new PlayerPositionData[__instance.usedData * 2]; } foreach (GameObject gameObject in players) { CharacterClassManager component1 = gameObject.GetComponent <CharacterClassManager>(); Array.Copy(__instance.receivedData, __instance.transmitBuffer, __instance.usedData); if (component1.CurClass == RoleType.Scp096 || component1.CurClass == RoleType.Scp173) { for (int i = 0; i < __instance.usedData; i++) { ReferenceHub hub = Plugin.GetPlayer(__instance.transmitBuffer[i].playerID.ToString()); if (hub.characterClassManager.CurClass != RoleType.Tutorial) { continue; } Scp049PlayerScript script = hub.GetComponent <Scp049PlayerScript>(); Vector3 fwd = script.plyCam.transform.forward; Vector3 pos = script.gameObject.transform.position; Vector3 position = component1.gameObject.transform.position; float angle = Vector3.Angle(fwd, (pos - position).normalized); Vector3 dir = (pos - position).normalized; Quaternion rot = Quaternion.LookRotation(dir); if (angle <= 80f) { __instance.transmitBuffer[i] = new PlayerPositionData(__instance.transmitBuffer[i].position, Quaternion.Inverse(rot).y, __instance.transmitBuffer[i].playerID, __instance.transmitBuffer[i].uses268); } } } if (component1.CurClass.Is939()) { for (int index = 0; index < __instance.usedData; ++index) { if (__instance.transmitBuffer[index].position.y < 800.0) { CharacterClassManager component2 = players[index].GetComponent <CharacterClassManager>(); if (component2.Classes.SafeGet(component2.CurClass).team != Team.SCP && component2.Classes.SafeGet(component2.CurClass).team != Team.RIP && !players[index] .GetComponent <Scp939_VisionController>() .CanSee(component1.GetComponent <Scp939PlayerScript>())) { __instance.transmitBuffer[index] = new PlayerPositionData(Vector3.up * 6000f, 0.0f, __instance.transmitBuffer[index].playerID); } } } } else if (component1.CurClass == RoleType.Scp096) { Scp096PlayerScript script = component1.GetComponent <Scp096PlayerScript>(); if (script.Networkenraged == Scp096PlayerScript.RageState.Enraged || script.Networkenraged == Scp096PlayerScript.RageState.Panic) { for (int i = 0; i < __instance.usedData; i++) { if (!Plugin.Scp096Targets.Contains(__instance.transmitBuffer[i].playerID)) { __instance.transmitBuffer[i] = new PlayerPositionData(Vector3.up * 6000f, 0f, __instance.transmitBuffer[i].playerID); } } } } else if (component1.CurClass != RoleType.Scp079 && component1.CurClass != RoleType.Spectator) { for (int index = 0; index < __instance.usedData; ++index) { if (__instance.transmitBuffer[index].uses268 || EXILED.EventPlugin.GhostedIds.Contains(__instance.transmitBuffer[index].playerID)) { __instance.transmitBuffer[index] = new PlayerPositionData(Vector3.up * 6000f, 0.0f, __instance.transmitBuffer[index].playerID); } } } NetworkConnection networkConnection = component1.netIdentity.isLocalPlayer ? NetworkServer.localConnection : component1.netIdentity.connectionToClient; if (__instance.usedData <= 20) { networkConnection.Send( new PlayerPositionManager.PositionMessage(__instance.transmitBuffer, (byte)__instance.usedData, 0), 1); } else { byte part; for (part = (byte)0; (int)part < __instance.usedData / 20; ++part) { networkConnection.Send( new PlayerPositionManager.PositionMessage(__instance.transmitBuffer, 20, part), 1); } byte count = (byte)(__instance.usedData % (part * 20)); if (count > 0) { networkConnection.Send( new PlayerPositionManager.PositionMessage(__instance.transmitBuffer, count, part), 1); } } } return(false); } catch (Exception e) { Plugin.Info($"TransmitData Error. {e}"); return(true); } }
public static bool Prefix(PlayerPositionManager __instance) { if (EventPlugin.GhostmodePatchDisable) { return(true); } try { List <GameObject> players = PlayerManager.players; __instance.usedData = players.Count; if (__instance.receivedData == null || __instance.receivedData.Length < __instance.usedData) { __instance.receivedData = new PlayerPositionData[__instance.usedData * 2]; } for (int index = 0; index < __instance.usedData; ++index) { __instance.receivedData[index] = new PlayerPositionData(players[index]); } if (__instance.transmitBuffer == null || __instance.transmitBuffer.Length < __instance.usedData) { __instance.transmitBuffer = new PlayerPositionData[__instance.usedData * 2]; } foreach (GameObject gameObject in players) { CharacterClassManager component1 = gameObject.GetComponent <CharacterClassManager>(); Array.Copy(__instance.receivedData, __instance.transmitBuffer, __instance.usedData); if (component1.CurClass == RoleType.Scp096 || component1.CurClass == RoleType.Scp173) { for (int i = 0; i < __instance.usedData; i++) { ReferenceHub hub = Player.GetPlayer(__instance.transmitBuffer[i].playerID); if (hub.characterClassManager.CurClass != RoleType.Tutorial) { continue; } Scp049PlayerScript script = hub.GetComponent <Scp049PlayerScript>(); Vector3 fwd = script.plyCam.transform.forward; Vector3 pos = script.gameObject.transform.position; Vector3 position = component1.gameObject.transform.position; float angle = Vector3.Angle(fwd, (pos - position).normalized); Vector3 dir = (pos - position).normalized; Quaternion rot = Quaternion.LookRotation(dir); if (angle >= 100f) { float newAngle = Vector3.Angle(new Vector3(fwd.x, fwd.y + 180f, fwd.z), (pos - position).normalized); if (component1.CurClass == RoleType.Scp096 && EventPlugin.Scp096Fix || component1.CurClass == RoleType.Scp173 && EventPlugin.Scp173Fix) { __instance.transmitBuffer[i] = new PlayerPositionData(__instance.transmitBuffer[i].position, newAngle, __instance.transmitBuffer[i].playerID); } } } } if (component1.CurClass.Is939()) { for (int index = 0; index < __instance.usedData; ++index) { if (__instance.transmitBuffer[index].position.y < 800.0) { CharacterClassManager component2 = players[index].GetComponent <CharacterClassManager>(); if (component2.Classes.SafeGet(component2.CurClass).team != Team.SCP && component2.Classes.SafeGet(component2.CurClass).team != Team.RIP && !players[index] .GetComponent <Scp939_VisionController>() .CanSee(component1.GetComponent <Scp939PlayerScript>())) { __instance.transmitBuffer[index] = new PlayerPositionData(Vector3.up * 6000f, 0.0f, __instance.transmitBuffer[index].playerID); } } } } else if (component1.CurClass != RoleType.Scp079 && component1.CurClass != RoleType.Spectator) { for (int index = 0; index < __instance.usedData; ++index) { if (__instance.transmitBuffer[index].uses268 || EventPlugin.GhostedIds.Contains(__instance.transmitBuffer[index].playerID)) { __instance.transmitBuffer[index] = new PlayerPositionData(Vector3.up * 6000f, 0.0f, __instance.transmitBuffer[index].playerID); } } } if (EventPlugin.TargetGhost.ContainsKey(gameObject.GetPlayer())) { for (int i = 0; i < __instance.usedData; i++) { if (EventPlugin.TargetGhost[gameObject.GetPlayer()] .Contains(__instance.transmitBuffer[i].playerID)) { __instance.transmitBuffer[i] = new PlayerPositionData(Vector3.up * 6000f, 0.0f, __instance.transmitBuffer[i].playerID); } } } NetworkConnection networkConnection = component1.netIdentity.isLocalPlayer ? NetworkServer.localConnection : component1.netIdentity.connectionToClient; if (__instance.usedData <= 20) { networkConnection.Send( new PlayerPositionManager.PositionMessage(__instance.transmitBuffer, (byte)__instance.usedData, 0), 1); } else { byte part; for (part = 0; part < __instance.usedData / 20; ++part) { networkConnection.Send( new PlayerPositionManager.PositionMessage(__instance.transmitBuffer, 20, part), 1); } byte count = (byte)(__instance.usedData % (part * 20)); if (count > 0) { networkConnection.Send( new PlayerPositionManager.PositionMessage(__instance.transmitBuffer, count, part), 1); } } } return(false); } catch (Exception exception) { Log.Error($"GhostmodePatch error: {exception}"); return(true); } }
private static void SCPMode() { var ccm = PlayerManager.localPlayer.GetComponent <CharacterClassManager>(); Scp173PlayerScript peanut = ccm.GetComponent <Scp173PlayerScript>(); Scp049PlayerScript doctor = ccm.GetComponent <Scp049PlayerScript>(); Scp049_2PlayerScript zombie = ccm.GetComponent <Scp049_2PlayerScript>(); Scp939PlayerScript dogo = ccm.GetComponent <Scp939PlayerScript>(); Scp096PlayerScript shyguy = ccm.GetComponent <Scp096PlayerScript>(); Scp106PlayerScript larry = ccm.GetComponent <Scp106PlayerScript>(); Scp079PlayerScript computer = ccm.GetComponent <Scp079PlayerScript>(); if (peanut.iAm173) { foreach (GameObject player in PlayerManager.singleton.players) { if (Vector3.Distance(PlayerManager.localPlayer.transform.position, player.transform.position) < 4f + peanut.boost_teleportDistance.Evaluate(PlayerManager.localPlayer.GetComponent <PlayerStats>().GetHealthPercent())) { peanut.GetType().GetMethod("HurtPlayer", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(peanut, new object[] { player, "123" }); } } } if (doctor.iAm049) { foreach (GameObject player in PlayerManager.singleton.players) { if ((player != PlayerManager.localPlayer) && (Vector3.Distance(PlayerManager.localPlayer.transform.position, player.transform.position) < 3.5f)) { doctor.GetType().GetMethod("InfectPlayer", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(doctor, new object[] { player, "123" }); } } } if (zombie.iAm049_2) { foreach (GameObject player in PlayerManager.singleton.players) { if ((player != PlayerManager.localPlayer) && (Vector3.Distance(PlayerManager.localPlayer.transform.position, player.transform.position) < 4f)) { zombie.CallCmdHurtPlayer(player, "123"); } } } if (dogo.iAm939) { foreach (GameObject player in PlayerManager.singleton.players) { // ccm.klasy[player.GetComponent<CharacterClassManager>().curClass].team != Team.SCP if ((player != PlayerManager.localPlayer) && (Vector3.Distance(Camera.main.transform.position, player.transform.position) < 1.3 * dogo.attackDistance)) { dogo.CallCmdShoot(player); } } } if (shyguy.iAm096) { foreach (GameObject player in PlayerManager.singleton.players) { if ((Vector3.Distance(Camera.main.transform.position, player.transform.position) < 3.5f)) { shyguy.GetType().GetMethod("CallCmdHurtPlayer", BindingFlags.Instance | BindingFlags.Public).Invoke(shyguy, new object[] { player }); } } } if (larry.iAm106) { foreach (GameObject player in PlayerManager.singleton.players) { if (Vector3.Distance(Camera.main.transform.position, player.transform.position) < 3.5f) { larry.CallCmdMovePlayer(player, ServerTime.time); } } } if (computer.iAm079) { } }