From aa4224081befe9d9d7427efa3ee79e141ae4e0c8 Mon Sep 17 00:00:00 2001 From: Chomp Date: Sun, 17 Aug 2025 16:42:01 +0100 Subject: [PATCH] Improve level check logic inside `PlayerLacksTraderLoyaltyLevelToBuyOffer` --- .../Controllers/TradeController.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs b/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs index 7b3c7064..2a91b225 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/TradeController.cs @@ -227,7 +227,20 @@ public class TradeController( /// True if player can buy offer protected bool PlayerLacksTraderLoyaltyLevelToBuyOffer(RagfairOffer fleaOffer, PmcData pmcData) { - return fleaOffer.LoyaltyLevel > pmcData.TradersInfo[fleaOffer.User.Id].LoyaltyLevel; + if (fleaOffer.LoyaltyLevel == 0) + { + // No requirement, always passes + return true; + } + + if (pmcData.TradersInfo.TryGetValue(fleaOffer.User.Id, out var traderInfo)) + { + // Trader exists in profile ,do loyalty level check + return traderInfo.LoyaltyLevel >= fleaOffer.LoyaltyLevel; + } + + // No trader data on player profile, fail check + return false; } ///