Skip to content
This repository was archived by the owner on Jan 25, 2025. It is now read-only.

Commit 6f009cf

Browse files
committed
fix: Possible reference problems
1 parent 23c0cf9 commit 6f009cf

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

src/Events.cs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ private void SetupGameEvents()
408408
CCSPlayerController killerController = @event.Attacker;
409409
CCSPlayerController assisterController = @event.Assister;
410410

411-
if (!victimController.IsValid || victimController.UserId <= 0)
411+
if (!victimController.IsValid)
412412
return HookResult.Continue;
413413

414414
if (!victimController.IsBot)
@@ -429,18 +429,15 @@ private void SetupGameEvents()
429429
ModifyClientPoints(victimController, CHANGE_MODE.REMOVE, Config.PointSettings.Suicide, "Suicide");
430430
Log($"EventPlayerDeath: Suicide recorded for player: {victimController.PlayerName}", LogLevel.Debug);
431431
}
432-
else if (!killerController.IsBot)
432+
else if (Config.RankSettings.PointsForBots || !killerController.IsBot)
433433
{
434434
ModifyClientPoints(victimController, CHANGE_MODE.REMOVE, Config.PointSettings.Death, "Dying");
435435
Log($"EventPlayerDeath: Death recorded for player: {victimController.PlayerName}", LogLevel.Debug);
436436
}
437437
}
438438
}
439439

440-
if (victimController.UserId == killerController.UserId)
441-
return HookResult.Continue;
442-
443-
if (killerController.IsValidPlayer())
440+
if (killerController.IsValidPlayer() && victimController.UserId != killerController.UserId)
444441
{
445442
if (!PlayerSummaries.ContainsPlayer(killerController))
446443
LoadPlayerData(killerController);
@@ -525,15 +522,18 @@ private void SetupGameEvents()
525522
}
526523
}
527524

528-
int attackerIndex = (int)killerController.UserId!;
529-
if (playerKillStreaks.ContainsKey(attackerIndex))
525+
int attackerIndex = (killerController.UserId != null) ? (int)killerController.UserId : -1;
526+
527+
if (attackerIndex != -1)
530528
{
531-
if (playerKillStreaks[attackerIndex].killStreak > 0 && DateTime.Now - playerKillStreaks[attackerIndex].lastKillTime <= TimeSpan.FromSeconds(Config.PointSettings.SecondsBetweenKills))
529+
if (playerKillStreaks.ContainsKey(attackerIndex))
532530
{
533-
playerKillStreaks[attackerIndex] = (playerKillStreaks[attackerIndex].killStreak + 1, DateTime.Now);
534-
int killStreak = playerKillStreaks[attackerIndex].killStreak;
531+
if (playerKillStreaks[attackerIndex].killStreak > 0 && DateTime.Now - playerKillStreaks[attackerIndex].lastKillTime <= TimeSpan.FromSeconds(Config.PointSettings.SecondsBetweenKills))
532+
{
533+
playerKillStreaks[attackerIndex] = (playerKillStreaks[attackerIndex].killStreak + 1, DateTime.Now);
534+
int killStreak = playerKillStreaks[attackerIndex].killStreak;
535535

536-
Dictionary<int, (int points, string message)> killStreakMap = new Dictionary<int, (int points, string message)>
536+
Dictionary<int, (int points, string message)> killStreakMap = new Dictionary<int, (int points, string message)>
537537
{
538538
{ 2, (Config.PointSettings.DoubleKill, "Double Kill") },
539539
{ 3, (Config.PointSettings.TripleKill, "Triple Kill") },
@@ -548,10 +548,13 @@ private void SetupGameEvents()
548548
{ 12, (Config.PointSettings.GodLike, "God Like") }
549549
};
550550

551-
if (killStreakMap.TryGetValue(killStreak, out var killStreakInfo))
552-
{
553-
ModifyClientPoints(killerController, CHANGE_MODE.GIVE, killStreakInfo.points, killStreakInfo.message);
554-
Log($"EventPlayerDeath: {killStreakInfo.message} recorded for player: {killerController.PlayerName}", LogLevel.Debug);
551+
if (killStreakMap.TryGetValue(killStreak, out var killStreakInfo))
552+
{
553+
ModifyClientPoints(killerController, CHANGE_MODE.GIVE, killStreakInfo.points, killStreakInfo.message);
554+
Log($"EventPlayerDeath: {killStreakInfo.message} recorded for player: {killerController.PlayerName}", LogLevel.Debug);
555+
}
556+
else
557+
ResetKillStreak(attackerIndex);
555558
}
556559
else
557560
ResetKillStreak(attackerIndex);

0 commit comments

Comments
 (0)