private void OnPlayerDamaged(SDG.Unturned.Player uPlayer, ref EDeathCause cause, ref ELimb limb, ref CSteamID killerId, ref global::UnityEngine.Vector3 direction, ref float damage, ref float times, ref bool canDamage) { if (uPlayer == null) { return; } playerManager.TryGetOnlinePlayerById(uPlayer.channel.owner.playerID.steamID.ToString(), out var player); playerManager.TryGetOnlinePlayerById(killerId.m_SteamID.ToString(), out var killer); UnturnedPlayerDamagedEvent damageEvent = new UnturnedPlayerDamagedEvent(player, cause, limb, killer?.User, direction.ToSystemVector(), damage, times) { IsCancelled = !canDamage }; eventManager.Emit(this, damageEvent); cause = damageEvent.DeathCause; limb = damageEvent.Limb; killerId = damageEvent.DamageDealer != null ? new CSteamID(ulong.Parse(damageEvent.DamageDealer.Id)) : CSteamID.Nil; direction = damageEvent.Direction.ToUnityVector(); damage = (float)damageEvent.Damage; times = damageEvent.Times; canDamage = !damageEvent.IsCancelled; }
private void OnPlayerDamaged(SDG.Unturned.Player uPlayer, ref EDeathCause cause, ref ELimb limb, ref CSteamID killerId, ref Vector3 direction, ref float damage, ref float times, ref bool canDamage) { var player = playerManager.GetOnlinePlayerById(uPlayer.channel.owner.playerID.steamID.m_SteamID.ToString()); var killer = playerManager.GetOnlinePlayerById(killerId.m_SteamID.ToString()); UnturnedPlayerDamagedEvent @event = new UnturnedPlayerDamagedEvent(player, cause, limb, killer.GetUser(), direction, damage, times) { IsCancelled = !canDamage }; eventManager.Emit(this, @event); cause = @event.DeathCause; limb = @event.Limb; killerId = @event.DamageDealer != null ? new CSteamID(ulong.Parse(@event.DamageDealer.Id)) : CSteamID.Nil; direction = @event.Direction; damage = (float)@event.Damage; times = @event.Times; canDamage = [email protected]; }