@@ -15,7 +15,6 @@ public void RegisterEventsListeners()
1515 {
1616 RegisterEventHandler < EventPlayerSpawn > ( OnPlayerSpawn ) ;
1717 RegisterEventHandler < EventPlayerHurt > ( OnPlayerHurt ) ;
18- RegisterEventHandler < EventRoundStart > ( OnRoundStart ) ;
1918 RegisterEventHandler < EventRoundPrestart > ( OnRoundPrestart ) ;
2019 RegisterEventHandler < EventRoundEnd > ( OnRoundEnd ) ;
2120 RegisterEventHandler < EventPlayerDeath > ( OnPlayerDeath ) ;
@@ -38,43 +37,24 @@ public void RegisterEventsListeners()
3837 Logger . LogInformation ( "Registered Events and Listeners" ) ;
3938 }
4039
41- public CounterStrikeSharp . API . Modules . Timers . Timer ? SpawnTimer ;
40+ public Timer ? SpawnTimer { get ; set ; }
4241 public CounterStrikeSharp . API . Modules . Timers . Timer ? renderTimer ;
43- public float CountdownTimer ;
4442
45- public HookResult OnRoundStart ( EventRoundStart @event , GameEventInfo info )
46- {
47- SpawnTimer ? . Kill ( ) ;
48- CountdownTimer = Config . SpawnProtTime ;
49-
50- if ( IsWarmup )
51- return HookResult . Continue ;
52-
53- AddTimer ( FreezeTime , ( ) =>
54- {
55- SpawnTimer = AddTimer ( 0.1f , ( ) =>
56- {
57- if ( CountdownTimer <= 0 ) { SpawnTimer ? . Kill ( ) ; return ; }
58- CountdownTimer -= 0.1f ;
59- } , TimerFlags . REPEAT ) ;
60- } ) ;
61- return HookResult . Continue ;
62- }
6343 public HookResult OnRoundPrestart ( EventRoundPrestart @event , GameEventInfo info )
6444 {
45+ SpawnTimer ? . Kill ( ) ;
6546 Utilities . GetPlayers ( ) .
66- Where ( player => player is not null && player . IsValid == true ) . ToList ( ) . ForEach ( x => HandleCenterMessage ( x ) ) ;
47+ Where ( player => player is not null && player . IsValid == true ) . ToList ( ) . ForEach ( x => CenterMessage [ x . Index ] = false ) ;
6748
6849 return HookResult . Continue ;
6950 }
7051
7152 public HookResult OnRoundEnd ( EventRoundEnd @event , GameEventInfo info )
7253 {
54+ SpawnTimer ? . Kill ( ) ;
7355 Utilities . GetPlayers ( ) .
7456 Where ( player => player is not null && player . IsValid == true ) . ToList ( ) . ForEach ( x => CenterMessage [ x . Index ] = false ) ;
7557
76- SpawnTimer ? . Kill ( ) ;
77-
7858 return HookResult . Continue ;
7959 }
8060
@@ -104,13 +84,21 @@ public HookResult OnPlayerSpawn(EventPlayerSpawn @event, GameEventInfo info)
10484 if ( IsWarmup )
10585 return HookResult . Continue ;
10686
107- AddTimer ( FreezeTime , ( ) =>
87+ SpawnTimer ? . Kill ( ) ;
88+ protTimer [ player . Index ] = Config . SpawnProtTime ;
89+
90+ SpawnTimer = AddTimer ( 0.1f , ( ) =>
10891 {
109- HandleSpawnProt ( player ) ;
92+ if ( protTimer [ player . Index ] <= 0 ) { SpawnTimer ? . Kill ( ) ; return ; }
93+ protTimer [ player . Index ] -= 0.1f ;
94+ } , TimerFlags . REPEAT ) ;
11095
111- if ( Config . TransparentModel )
112- HandlePlayerModel ( player ) ;
113- } ) ;
96+ HandleSpawnProt ( player ) ;
97+
98+ if ( Config . TransparentModel )
99+ HandlePlayerModel ( player ) ;
100+
101+ HandleCenterMessage ( player ) ;
114102
115103 return HookResult . Continue ;
116104 }
@@ -156,7 +144,7 @@ private void HandleProtectedPlayer(CCSPlayerController player, EventPlayerHurt @
156144 Utilities . SetStateChanged ( player . PlayerPawn . Value , "CCSPlayerPawn" , "m_ArmorValue" ) ;
157145
158146 if ( Config . SpawnProtCenterMsg && player . IsAlive ( ) )
159- player . PrintToCenter ( $ "{ Localizer [ "player_isprotected" , ( int ) CountdownTimer ] } ") ;
147+ player . PrintToCenter ( $ "{ Localizer [ "player_isprotected" , ( int ) protTimer [ player . Index ] ] } ") ;
160148
161149 CCSPlayerController ? Attacker = @event . Attacker ;
162150
0 commit comments