private static bool Prefix(Scp049_2PlayerScript __instance, GameObject windowObj) { if (__instance._hub.gameObject.GetComponent <SCP457Controller>() != null) { return(false); } return(true); }
private static bool HurtPlayer(Scp049_2PlayerScript __instance, GameObject plyObj) { try { if (!__instance._iawRateLimit.CanExecute(true) || plyObj == null) { return(false); } var scp = __instance.GetPlayer(); var player = plyObj?.GetPlayer(); if (player == null) { return(false); } if (!__instance.iAm049_2 || Vector3.Distance(scp.Position, player.Position) > __instance.distance * 1.5f) { return(false); } if (!SynapseExtensions.GetHarmPermission(scp, player)) { return(false); } ev.Get.Scp.InvokeScpAttack(scp, player, Api.Enum.ScpAttackType.Scp0492_Scratch, out var allow); if (!allow) { return(false); } player.PlayerStats.DealDamage(new ScpDamageHandler(scp.Hub, __instance.damage, DeathTranslations.Zombie)); Hitmarker.SendHitmarker(scp.Connection, 1f); scp.ClassManager.RpcPlaceBlood(player.Position, 0, player.RoleType == RoleType.Spectator ? 1.3f : 0.5f); return(false); } catch (Exception e) { Synapse.Api.Logger.Get.Error($"Synapse-Event: ScpAttackEvent(Scp049-2) failed!!\n{e}"); return(true); } }
private static bool Prefix(Scp049_2PlayerScript __instance, GameObject plyObj) { try { if (!__instance._iawRateLimit.CanExecute(true) || plyObj == null) { return(false); } var scp = __instance.GetPlayer(); var player = plyObj.GetPlayer(); if (player == null) { return(false); } if (scp.RoleType != RoleType.Scp0492 || Vector3.Distance(scp.Position, player.Position) > __instance.distance * 1.5f) { return(false); } if (!scp.WeaponManager.GetShootPermission(player.ClassManager)) { return(false); } ev.Get.Scp.InvokeScpAttack(scp, player, Api.Enum.ScpAttackType.Scp0492_Scratch, out var allow); if (!allow) { return(false); } player.Hurt((int)__instance.damage, DamageTypes.Scp0492, scp); __instance.TargetHitMarker(scp.Connection); scp.ClassManager.RpcPlaceBlood(player.Position, 0, player.RoleType == RoleType.Spectator ? 1.3f : 0.5f); return(false); } catch (Exception e) { Synapse.Api.Logger.Get.Error($"Synapse-Event: ScpAttackEvent(Scp049-2) failed!!\n{e}\nStackTrace:\n{e.StackTrace}"); return(true); } }
private void Attack() { RaycastHit raycastHit; if (Physics.Raycast(this.plyCam.transform.position, this.plyCam.transform.forward, out raycastHit, this.distance)) { Scp049_2PlayerScript scp049_2PlayerScript = raycastHit.transform.GetComponent <Scp049_2PlayerScript>(); if (scp049_2PlayerScript == null) { scp049_2PlayerScript = raycastHit.transform.GetComponentInParent <Scp049_2PlayerScript>(); } if (scp049_2PlayerScript != null && !scp049_2PlayerScript.sameClass) { Hitmarker.Hit(1f); this.CallCmdHurtPlayer(raycastHit.transform.gameObject, base.GetComponent <HlapiPlayer>().PlayerId); } } }
private static bool Prefix(Scp049_2PlayerScript __instance, GameObject plyObj) { if (__instance._hub.gameObject.GetComponent <SCP457Controller>() != null) { Transform playerCameraReference = __instance._hub.PlayerCameraReference; Collider[] array = Physics.OverlapSphere(playerCameraReference.position + playerCameraReference.forward * 1.25f, MainClass.singleton.Config.attack_settings.radius_attack, LayerMask.GetMask(new string[] { "PlyCenter" })); HashSet <GameObject> hashSet = new HashSet <GameObject>(); foreach (Collider collider in array) { global::ReferenceHub componentInParent3 = collider.GetComponentInParent <global::ReferenceHub>(); if (!(componentInParent3 == null) && !(componentInParent3 == __instance._hub) && !componentInParent3.characterClassManager.IsAnyScp() && hashSet.Add(componentInParent3.gameObject) && !Physics.Linecast(__instance._hub.transform.position, componentInParent3.transform.position, LayerMask.GetMask(new string[] { "Default" }))) { var burningComponent = componentInParent3.gameObject.GetComponent <BurningComponent>(); if (burningComponent != null) { if (!Physics.Linecast(__instance._hub.playerMovementSync.RealModelPosition, componentInParent3.gameObject.transform.position, __instance._hub.playerMovementSync.CollidableSurfaces)) { var burn = burningComponent.burningtime; burn += MainClass.singleton.Config.attack_settings.burning_time; burningComponent.burningAppliedBy = __instance._hub; if (burn > MainClass.singleton.Config.attack_settings.burning_time_max) { burn = MainClass.singleton.Config.attack_settings.burning_time_max; } burningComponent.burningtime = burn; burningComponent.colatime = MainClass.singleton.Config.attack_settings.cola_duration; burningComponent.hub.ReferenceHub.playerEffectsController.EnableEffect <CustomPlayerEffects.Scp207>(MainClass.singleton.Config.attack_settings.cola_duration); burningComponent.hub.ReferenceHub.playerEffectsController.GetEffect <CustomPlayerEffects.Scp207>().ServerChangeIntensity(1); burningComponent.hub.ReferenceHub.playerStats.HurtPlayer(new PlayerStats.HitInfo(MainClass.singleton.Config.attack_settings.dmg_amount, "SCP457", DamageTypes.Asphyxiation, 0), burningComponent.hub.GameObject); } } } } return(false); } 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) { } }
/// <summary> /// Initializes a new instance of the <see cref="Scp0492Role"/> class. /// </summary> /// <param name="player">The encapsulated player.</param> internal Scp0492Role(Player player) { Owner = player; script = player.ReferenceHub.characterClassManager.Scp0492; }