C#:
// Все права принадлежат дискорд сообществу https://discord.gg/VgNHPpNrz6
using UnityEngine;
namespace Oxide.Plugins
{
[Info( "Fixed Headshot Sounds", "Waggy", "1.0.1" )]
[Description( "Fixes headshot sounds not playing for melee PvP and for animals" )]
class FixedHeadshotSounds : RustPlugin
{
public static Effect headshotEffect;
public void CreateHeadshotEffect( BasePlayer player )
{
headshotEffect = new Effect();
headshotEffect.Init( Effect.Type.Generic, player, 0, Vector3.zero, Vector3.zero, null );
headshotEffect.pooledString = "assets/bundled/prefabs/fx/headshot.prefab";
}
public void SendHeadshotEffect( BasePlayer player )
{
EffectNetwork.Send( headshotEffect, player.Connection );
}
public void CheckHeadshot( HitInfo info )
{
var player = info.InitiatorPlayer;
if ( player != null )
{
if ( headshotEffect == null )
{
CreateHeadshotEffect( player );
}
SendHeadshotEffect( player );
}
}
object OnEntityTakeDamage( BaseCombatEntity entity, HitInfo info )
{
if ( entity is BaseNpc && info.isHeadshot )
{
CheckHeadshot( info );
}
else if ( entity is BasePlayer && info.isHeadshot )
{
switch ( info.damageTypes.GetMajorityDamageType() )
{
default: return null;
case Rust.DamageType.Blunt:
case Rust.DamageType.Slash:
case Rust.DamageType.Stab:
{
CheckHeadshot( info );
return null;
}
}
}
return null;
}
}
}