From b279d2e639c4a75a7e60a888791c3528e260a4ae Mon Sep 17 00:00:00 2001 From: David Vogel Date: Mon, 16 Jul 2018 17:12:55 +0200 Subject: [PATCH] Take points away on death, not round end --- lua/autorun/server/pointsaving.lua | 2 +- lua/autorun/server/pointsaving_mapstats.lua | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lua/autorun/server/pointsaving.lua b/lua/autorun/server/pointsaving.lua index ea37882..06d9daa 100644 --- a/lua/autorun/server/pointsaving.lua +++ b/lua/autorun/server/pointsaving.lua @@ -24,7 +24,7 @@ local function savePoints(ply) ply:SetSavedPoints(ply:GetPoints()) end end -hook.Add("PlayerDeath", "pointsave_death", savePoints) +--hook.Add("PlayerDeath", "pointsave_death", savePoints) hook.Add("PlayerDisconnected", "pointsave_disconnect", savePoints) hook.Add("PostEndRound", "pointsave_postendround", function(winner) diff --git a/lua/autorun/server/pointsaving_mapstats.lua b/lua/autorun/server/pointsaving_mapstats.lua index fd6de63..7d38193 100644 --- a/lua/autorun/server/pointsaving_mapstats.lua +++ b/lua/autorun/server/pointsaving_mapstats.lua @@ -63,6 +63,16 @@ local function postStatistics(mapParams, timesPlayed, freqMult, zombiePercentCal PrintMessage(HUD_PRINTTALK,"Map jackpot is now "..(mapParams.Jackpot)..".") end +hook.Add("PlayerDeath", "pointsave_death", function(ply) + if PointSaving_shouldIgnoreMap(game.GetMap()) then return end + + if ply:Team() == TEAM_HUMAN then + --print("### PS Saved: "..ply:GetPoints()) + ply:SetSavedPoints(ply:GetPoints() * settings.LosePointReduction) + ply:PrintMessage(HUD_PRINTTALK,"You lost "..(settings.LosePointReduction * 100).."% of your saved points because you died!") + end +end) + hook.Add("PostEndRound", "pointsave_givedapoints", function(winner) timer.Destroy("pointsave_zombieintervalcounter") @@ -132,7 +142,7 @@ hook.Add("PostEndRound", "pointsave_givedapoints", function(winner) if ply:Team() == TEAM_HUMAN then pointsToGivePly = math.Round(pointsToGive) else - pointsToGivePly = math.Round(pointsToGive * settings.ZombiePointsFactor) - points * settings.LosePointReduction -- TODO: Reduce points on death, not round end to avoid cheating + pointsToGivePly = math.Round(pointsToGive * settings.ZombiePointsFactor) end -- Limit pointsToGivePly if points + pointsToGivePly < 0 then pointsToGivePly = -points end