public async void OnThrowingGrenade(ThrowingItemEventArgs ev) { if (ev.Player != null && Instance.Config.EventsToLog.PlayerThrowingGrenade && (!ev.Player.DoNotTrack || !Instance.Config.ShouldRespectDoNotTrack)) { await Network.SendAsync(new RemoteCommand("log", "gameEvents", string.Format(Language.ThrewAGrenade, ev.Player.Nickname, Instance.Config.ShouldLogUserIds ? ev.Player.UserId : Language.Redacted, ev.Player.Role, ev.Item.Type))).ConfigureAwait(false); } if (ev.Player != null && Instance.Config.StaffOnlyEventsToLog.PlayerThrowingGrenade) { await Network.SendAsync(new RemoteCommand("log", "staffCopy", string.Format(Language.ThrewAGrenade, ev.Player.Nickname, ev.Player.UserId, ev.Player.Role, ev.Item.Type))).ConfigureAwait(false); } }
public void OnThrowingItem(ThrowingItemEventArgs ev) { if (scp372.Contains(ev.Player.UserId)) { ev.Player.IsInvisible = false; Timing.CallDelayed(1f, () => { ev.Player.IsInvisible = true; }); } }
/// <inheritdoc/> protected override void OnThrowing(ThrowingItemEventArgs ev) { ev.IsAllowed = false; ev.Player.RemoveItem(ev.Player.CurrentItem); float slowThrowMultiplier = 0.1f; if (ev.RequestType != ThrowRequest.WeakThrow) { slowThrowMultiplier = 1f; } Pickup c4 = Throw(ev.Player.CameraTransform.position, ThrowMultiplier * slowThrowMultiplier, FuseTime, Type, ev.Player); if (!PlacedCharges.ContainsKey(c4)) { PlacedCharges.Add(c4, ev.Player); } base.OnThrowing(ev); }
/// <summary> /// Called before throwing a grenade. /// </summary> /// <param name="ev">The <see cref="ThrowingItemEventArgs"/> instance.</param> public static void OnThrowingItem(ThrowingItemEventArgs ev) => ThrowingItem.InvokeSafely(ev);