private void OnMedicalItemUsed(UsedMedicalItemEventArgs ev) { if (ev.Player.IsInfected() && Config.HealItems.Contains(ev.Item)) { ev.Player.Cure(ev.Item); } }
public void OnMedicalItemUsed(UsedMedicalItemEventArgs ev) { if (beenShot == null || bleeding == null) { return; } if (ev.Item == ItemType.Adrenaline && !BleedEffect.Instance.Config.AdrenalineStopsBleeding) { return; } if (ev.Item == ItemType.Painkillers && !BleedEffect.Instance.Config.PainkillersStopBleeding) { return; } if (ev.Item == ItemType.Medkit && !BleedEffect.Instance.Config.MedKitStopsBleeding) { return; } if (ev.Item == ItemType.SCP500 && !BleedEffect.Instance.Config.SCP500StopsBleeding) { return; } if (beenShot.ContainsKey(ev.Player.Id)) { beenShot.Remove(ev.Player.Id); } if (bleeding.ContainsKey(ev.Player.Id)) { bleeding.Remove(ev.Player.Id); } }
public async void OnUsedMedicalItem(UsedMedicalItemEventArgs ev) { if (ev.Player != null && Instance.Config.EventsToLog.PlayerUsedMedicalItem && (!ev.Player.DoNotTrack || !Instance.Config.ShouldRespectDoNotTrack)) { await Network.SendAsync(new RemoteCommand("log", "gameEvents", string.Format(Language.UsedMedicalItem, ev.Player.Nickname, Instance.Config.ShouldLogUserIds ? ev.Player.UserId : Language.Redacted, ev.Player.Role, ev.Item))).ConfigureAwait(false); } }
private void OnMedicalItemUsed(UsedMedicalItemEventArgs ev) { if (CheckItem(ev.Player.CurrentItem)) { foreach (Player player in Player.List) { if (player.Role == RoleType.Scp096) { if (player.CurrentScp is PlayableScps.Scp096 scp096) { if (scp096.HasTarget(ev.Player.ReferenceHub) && scp096.PlayerState == Scp096PlayerState.Enraged || scp096.PlayerState == Scp096PlayerState.Enraging || scp096.PlayerState == Scp096PlayerState.Attacking) { scp096.ResetEnrage(); ev.Player.Kill(DamageTypes.Poison); return; } } } } if (Plugin.Singleton.Config.ItemConfigs.LethalCfg.KillOnFail) { ev.Player.Kill(DamageTypes.Poison); } } }
internal void OnUsedMedicalItem(UsedMedicalItemEventArgs ev) { if (!Round.IsStarted) { return; } data.TotalMedical++; }
private static void Prefix(ConsumableAndWearableItems __instance, ConsumableAndWearableItems.HealAnimation healAnimation, int mid) { if (healAnimation == ConsumableAndWearableItems.HealAnimation.DequipMedicalItem) { var ev = new UsedMedicalItemEventArgs(API.Features.Player.Get(__instance.gameObject), __instance.usableItems[mid].inventoryID); Player.OnMedicalItemUsed(ev); } }
public void OnMedical(UsedMedicalItemEventArgs e) { e.Player.Health = 500; Map.Broadcast(3, $"{e.Player.Nickname} Uzył {e.Item} jak mała pizda"); // wyświetla wiadomość dla całego serwera e.Player.Broadcast(10, "Jesteś pizdą"); // wyswietla wiadomość dla danego gracza e.Player.ShowHint(XD, 17f); // wyświetla wiadomość dla gracza na środku ekranu hyba Log.Info($"{e.Player.Nickname} użył przedmiotu medycznego o nazwie {e.Item}"); }
public IEnumerator <float> SetPlayerScale(UsedMedicalItemEventArgs item) { foreach (float t in plugin.Config.Step1) { if (item.Player.Scale != null) { item.Player.Scale = Vector3.one * t; } else { yield break; } yield return(Timing.WaitForSeconds(plugin.Config.TimeAllSteps)); } if (item.Player.Scale != null) { yield return(Timing.WaitForSeconds(plugin.Config.Duration)); } foreach (float t in plugin.Config.Step2) { if (item.Player.Scale != null) { item.Player.Scale = Vector3.one * t; } else { yield break; } yield return(Timing.WaitForSeconds(plugin.Config.TimeAllSteps)); } if (item.Player.Scale != null) { yield return(Timing.WaitForSeconds(plugin.Config.Duration)); } foreach (float t in plugin.Config.Step3) { if (item.Player.Scale != null) { item.Player.Scale = Vector3.one * t; } else { yield break; } yield return(Timing.WaitForSeconds(plugin.Config.TimeAllSteps)); } yield return(Timing.WaitForSeconds(0)); usedItems.RemoveAt(0); if (usedItems.Count == 0) { foreach (CoroutineHandle handle in coroutines) { Timing.KillCoroutines(handle); } } }
internal static void OnUse(UsedMedicalItemEventArgs ev) { if (ev.Player?.UserId == null || ev.Player.IsHost || !ev.Player.IsVerified || ev.Player.IPAddress == "127.0.0.WAN" || ev.Player.IPAddress == "127.0.0.1" || PauseRound || !Helper.IsPlayerValid(ev.Player) || !RoundSummary.RoundInProgress()) { return; } StatHandler.SendRequest(RequestType.Use, "{\"playerid\": \"" + Helper.HandleId(ev.Player) + "\", \"itemid\": \"" + ((int)ev.Item).ToString() + "\"}"); }
//internal void CountAdrenaline(UsedMedicalItemEventArgs ev) //{ // foreach (Pickup item in Object.FindObjectsOfType<Pickup>()) // { // if (item.ItemId.ToString() == "Adrenaline") // { // Log.Info("id: " + item.ItemId + "\nname: " + item.name); // } // } //} internal void UsedAdrenaline(UsedMedicalItemEventArgs item) { if (item.Item.ToString() == "Adrenaline") { UsedItem usedItem = new UsedItem(item); if (!usedFind(item)) { usedItems.Add(usedItem); coroutines.Add(Timing.RunCoroutine(SetPlayerScale(item), "ScaleThread")); } } }
public void RunWhenplayerDrinksSCP207(UsedMedicalItemEventArgs Used207) { if (Used207.Player != Hub || Used207.Item != ItemType.SCP207) { return; } if (Hub.IsGodModeEnabled) { Counter = 0; return; } if (Counter < CreativeToolbox.ConfigRef.Config.Scp207DrinkLimit) { string MessageToReplace = RogerFKTokenReplace.ReplaceAfterToken(CreativeToolbox.ConfigRef.Config.DrinkingScp207Message, '%', new Tuple <string, object>[] { new Tuple <string, object>("counter", Counter) }); Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{MessageToReplace}", new HintParameter[] { new StringHintParameter("") }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f))); } if (Counter == CreativeToolbox.ConfigRef.Config.Scp207PryGateLimit) { string MessageToReplace = RogerFKTokenReplace.ReplaceAfterToken(CreativeToolbox.ConfigRef.Config.PryGatesWithScp207Message, '%', new Tuple <string, object>[] { new Tuple <string, object>("counter", Counter) }); if (!CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(Hub)) { CreativeToolboxEventHandler.PlayersThatCanPryGates.Add(Hub); Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{MessageToReplace}", new HintParameter[] { new StringHintParameter("") }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f))); } } if (Counter >= CreativeToolbox.ConfigRef.Config.Scp207DrinkLimit) { string MessageToReplace = RogerFKTokenReplace.ReplaceAfterToken(CreativeToolbox.ConfigRef.Config.ExplodeAfterScp207Message, '%', new Tuple <string, object>[] { new Tuple <string, object>("counter", Counter) }); if (CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(Hub)) { CreativeToolboxEventHandler.PlayersThatCanPryGates.Remove(Hub); } Hub.Health = 0; Hub.AdrenalineHealth = 0; Hub.Kill(); CreativeToolboxEventHandler.SpawnGrenadeOnPlayer(Hub, false); Counter = 0; Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{MessageToReplace}", new HintParameter[] { new StringHintParameter("") }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f))); } }
private bool usedFind(UsedMedicalItemEventArgs item) { UsedItem temp = new UsedItem(item); string name = item.Player.Nickname; foreach (UsedItem t in usedItems) { if (temp.Equals(t)) { return(true); } } return(false); }
private static void Prefix(ConsumableAndWearableItems __instance, ConsumableAndWearableItems.HealAnimation healAnimation, int mid) { try { if (healAnimation == ConsumableAndWearableItems.HealAnimation.DequipMedicalItem) { var ev = new UsedMedicalItemEventArgs(API.Features.Player.Get(__instance.gameObject), __instance.usableItems[mid].inventoryID); Player.OnMedicalItemUsed(ev); } } catch (Exception e) { Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.UsedMedicalItem: {e}\n{e.StackTrace}"); } }
internal void MedicalItemUsed(UsedMedicalItemEventArgs ev) { if (Plugin.Instance.Config.MedicalItemUsed == "") { return; } string message = Plugin.Instance.Config.MedicalItemUsed.Replace("%player%", ev.Player.ToString()); message = message.Replace("%item%", ev.Item.ToString()); if (Plugin.Instance.Config.debug_to_console) { Log.Debug(message: "[ " + Plugin.Instance.Config.player_name + "] " + message); } Plugin.sendWebHook(Plugin.Instance.Config.player_url, message, Plugin.Instance.Config.player_name); }
public void RunOnMedItemUsed(UsedMedicalItemEventArgs ev) { if (Instance.Config.EnableCustomHealing) { switch (ev.Item) { case ItemType.Painkillers: ev.Player.AdrenalineHealth += (int)Instance.Config.PainkillerAhpHealthValue; break; case ItemType.Medkit: ev.Player.AdrenalineHealth += (int)Instance.Config.MedkitAhpHealthValue; break; case ItemType.Adrenaline: if (!(Instance.Config.AdrenalineAhpHealthValue <= 0)) { ev.Player.AdrenalineHealth += (int)Instance.Config.AdrenalineAhpHealthValue; } break; case ItemType.SCP500: ev.Player.AdrenalineHealth += (int)Instance.Config.Scp500AhpHealthValue; break; case ItemType.SCP207: ev.Player.AdrenalineHealth += (int)Instance.Config.Scp207AhpHealthValue; break; } } if (!Instance.Config.EnableCustomEffectsAfterDrinkingScp207 || ev.Item != ItemType.SCP207) { return; } if (!ev.Player.ReferenceHub.TryGetComponent(out Scp207AbilityCounter scp207AbilityCounter)) { ev.Player.ReferenceHub.gameObject.AddComponent <Scp207AbilityCounter>(); return; } scp207AbilityCounter.counter++; }
public void RunWhenplayerDrinksSCP207(UsedMedicalItemEventArgs Used207) { if (Used207.Player != Hub || Used207.Item != ItemType.SCP207) { return; } if (Hub.IsGodModeEnabled) { Counter = 0; return; } if (Counter < CreativeToolbox.ConfigRef.Config.Scp207DrinkLimit) { Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\nnumber of drinks consumed: {Counter}", new HintParameter[] { new StringHintParameter("") }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f))); } if (Counter == CreativeToolbox.ConfigRef.Config.Scp207PryGateLimit) { if (!CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(Hub.ReferenceHub)) { CreativeToolboxEventHandler.PlayersThatCanPryGates.Add(Hub.ReferenceHub); Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\nyou can now pry gates open", new HintParameter[] { new StringHintParameter("") }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f))); } } if (Counter >= CreativeToolbox.ConfigRef.Config.Scp207DrinkLimit) { CreativeToolboxEventHandler.SpawnGrenadeOnPlayer(Hub, false); Counter = 0; Used207.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\nyou drank too much and your body could not handle it", new HintParameter[] { new StringHintParameter("") }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f))); } }
public void OnMedicalItemUsed(UsedMedicalItemEventArgs ev) { //Debug message if (MedkitAntidote.Instance.Config.DebugEnabled) { Log.Debug($"{ev.Player.Nickname} used an {ev.Item}."); } //Store the appropriate list from the config file to a temporary variable List <EffectType> effectList = new List <EffectType> { }; switch (ev.Item) { case ItemType.Medkit: effectList = MedkitAntidote.Instance.Config.MedkitEffectsToRemove; break; case ItemType.Adrenaline: effectList = MedkitAntidote.Instance.Config.AdrenalineEffectsToRemove; break; case ItemType.Painkillers: effectList = MedkitAntidote.Instance.Config.PillsEffectsToRemove; break; } //Loop through the list from the config file and remove chosen effects from a player after they've used a medical item if (effectList.Count > 0) { foreach (EffectType effectName in effectList) { //Debug message if (MedkitAntidote.Instance.Config.DebugEnabled) { Log.Debug($"Trying to remove {effectName} from {ev.Player.Nickname}."); } ev.Player.DisableEffect(effectName); } } }
private static void OnMedicalItemUsed(UsedMedicalItemEventArgs ev) { if (ev.Player != _player) { return; } int maxHp = ev.Player.ReferenceHub.characterClassManager.CurRole.maxHP; if (!_config.Scp035Modifiers.CanHealBeyondHostHp && ev.Player.Health > maxHp && (ev.Item.IsMedical() || ev.Item == ItemType.SCP207)) { if (ev.Item == ItemType.SCP207) { ev.Player.Health = Mathf.Max(maxHp, ev.Player.Health - 30); } else { ev.Player.Health = maxHp; } } }
/// <summary> /// Invoked after a player used a medical item. /// </summary> /// <param name="ev">The <see cref="MedicalItemUsed"/> instance.</param> public static void OnMedicalItemUsed(UsedMedicalItemEventArgs ev) => MedicalItemUsed.InvokeSafely(ev);
public UsedItem(UsedMedicalItemEventArgs item) { this.item = item; this.status = true; }
/// <inheritdoc cref="Handlers.Mixed.OnUsedMedicalItem(UsedMedicalItemEventArgs)"/> public void OnUsedMedicalItem(UsedMedicalItemEventArgs ev) { if (ev.Player == null) { return; } if (Instance.IsAdvancedSubclassing) { if (this.HasNoArmorDecayAbility(ev.Player)) { return; } } switch (ev.Item) { case ItemType.Medkit: { if (Instance.Config.Medkit != 0) { if (!Instance.Config.WillDecay) { ev.Player.ArtificialHealth += Instance.Config.Medkit; if (ev.Player.ArtificialHealthDecay != 0) { ev.Player.ArtificialHealthDecay = 0; } } else { ev.Player.ArtificialHealth += Instance.Config.Medkit; } } return; } case ItemType.SCP207: { if (Instance.Config.SCP207 != 0) { if (!Instance.Config.WillDecay) { ev.Player.ArtificialHealth += Instance.Config.SCP207; if (ev.Player.ArtificialHealthDecay != 0) { ev.Player.ArtificialHealthDecay = 0; } } else { ev.Player.ArtificialHealth += Instance.Config.SCP207; } } return; } } }
public void RunWhenPlayerDrinksScp207(UsedMedicalItemEventArgs ev) { if (ev.Player != _ply || ev.Item != ItemType.SCP207) { return; } if (_ply.IsGodModeEnabled) { counter = 0; return; } if (counter < Instance.Config.Scp207DrinkLimit) { string messageToReplace = Instance.Config.DrinkingScp207Message.ReplaceAfterToken('%', new[] { new Tuple <string, object>("counter", counter) }); ev.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{messageToReplace}", new HintParameter[] { new StringHintParameter("") }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f))); } if (counter == Instance.Config.Scp207PryGateLimit) { string messageToReplace = Instance.Config.PryGatesWithScp207Message.ReplaceAfterToken('%', new[] { new Tuple <string, object>("counter", counter) }); if (!CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(_ply)) { CreativeToolboxEventHandler.PlayersThatCanPryGates.Add(_ply); ev.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{messageToReplace}", new HintParameter[] { new StringHintParameter("") }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f))); } } if (counter >= Instance.Config.Scp207DrinkLimit) { string messageToReplace = Instance.Config.ExplodeAfterScp207Message.ReplaceAfterToken('%', new[] { new Tuple <string, object>("counter", counter) }); if (CreativeToolboxEventHandler.PlayersThatCanPryGates.Contains(_ply)) { CreativeToolboxEventHandler.PlayersThatCanPryGates.Remove(_ply); } _ply.Health = 0; _ply.AdrenalineHealth = 0; _ply.Kill(); CreativeToolboxEventHandler.SpawnGrenadeOnPlayer(_ply, false); counter = 0; ev.Player.ReferenceHub.hints.Show(new TextHint($"\n\n\n\n\n\n\n\n\n{messageToReplace}", new HintParameter[] { new StringHintParameter("") }, HintEffectPresets.FadeInAndOut(0.25f, 1f, 0f))); } }