public static void Shoot(PlayerHurtEventArgs ev)
{
if (ev.DamageHandler is not FirearmDamageHandler handler)
return;
if (handler.Hitbox != HitboxType.Headshot)
return;
AudioPlayer audioPlayer = AudioPlayer.CreateOrGet($"Player {ev.Player.Nickname}", onIntialCreation: (p) =>
{
// This created speaker will be in 2D space ( audio will be always playing directly on you not from specific location ) but make sure that max distance is set to some higher value.
Speaker speaker = p.AddSpeaker("Main", isSpatial: false, maxDistance: 5000f);
},
condition: hub =>
{
if (hub.IsHost)
return false;
if (hub.authManager.InstanceMode == ClientInstanceMode.Unverified && !hub.nicknameSync.NickSet)
return false;
if (hub.authManager.syncMode == (SyncMode)ClientInstanceMode.DedicatedServer)
return false;
Logger.Info(ev.Attacker.ReferenceHub.nicknameSync.Network_myNickSync + $" IsAllowed: {ev.Attacker.ReferenceHub == hub} Shooter: {ev.Attacker.ReferenceHub.nicknameSync.Network_myNickSync}");
return ev.Attacker.ReferenceHub == hub;
});
audioPlayer.AddClip("headshot");
}
It always returns the first player who joined in the server idk really why but the attack matches the first player even tho i shot the ammo or someone else did