22
33public class HeadShotSystem (
44 IPlayerRepository playerRepository ,
5- IWorldService worldService ) : ISystem
5+ IWorldService worldService ,
6+ ServerSettings serverSettings ) : ISystem
67{
78 /// <summary>
89 /// This callback is called when a player takes damage.
910 /// </summary>
10- /// <param name="player ">
11+ /// <param name="receiver ">
1112 /// The player that took damage.
1213 /// </param>
1314 /// <param name="issuer">
@@ -23,7 +24,7 @@ public class HeadShotSystem(
2324 /// The <see href="https://www.open.mp/docs/scripting/resources/bodyparts">body part</see> that was hit.
2425 /// </param>
2526 [ Event ]
26- public void OnPlayerTakeDamage ( Player player , Player issuer , float amount , Weapon weapon , BodyPart bodyPart )
27+ public void OnPlayerTakeDamage ( Player receiver , Player issuer , float amount , Weapon weapon , BodyPart bodyPart )
2728 {
2829 if ( issuer . IsInvalidPlayer ( ) )
2930 return ;
@@ -33,17 +34,23 @@ public void OnPlayerTakeDamage(Player player, Player issuer, float amount, Weapo
3334 issuer . PlaySound ( soundId : 17802 ) ;
3435 }
3536
36- if ( issuer . Team != player . Team && weapon == Weapon . Sniper && bodyPart == BodyPart . Head )
37+ if ( issuer . Team != receiver . Team && weapon == Weapon . Sniper && bodyPart == BodyPart . Head )
3738 {
3839 PlayerInfo issuerInfo = issuer . GetInfo ( ) ;
40+ PlayerInfo receiverInfo = receiver . GetInfo ( ) ;
3941 issuerInfo . AddHeadShots ( ) ;
4042 issuerInfo . StatsPerRound . AddCoins ( 5 ) ;
4143 playerRepository . UpdateHeadShots ( issuerInfo ) ;
42- player . Health = 0 ;
44+ receiver . Health = 0 ;
45+ if ( ! receiverInfo . HasCapturedFlag ( ) )
46+ {
47+ issuer . PlayAudioStream ( serverSettings . HeadshotAudioUrl ) ;
48+ receiver . PlayAudioStream ( serverSettings . HeadshotAudioUrl ) ;
49+ }
4350 var message = Smart . Format ( Messages . HeadshotToPlayer , new
4451 {
4552 PlayerName1 = issuer . Name ,
46- PlayerName2 = player . Name
53+ PlayerName2 = receiver . Name
4754 } ) ;
4855 worldService . SendClientMessage ( Color . Yellow , message ) ;
4956 }
0 commit comments