From f8f2088e3842ca9688a7cd4ec3c963eb9fa33efc Mon Sep 17 00:00:00 2001 From: CPunch Date: Sun, 27 Sep 2020 01:13:27 -0500 Subject: [PATCH] fixed player health regen --- src/MobManager.cpp | 6 +++--- src/Player.hpp | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/MobManager.cpp b/src/MobManager.cpp index ad93cfc..595cb81 100644 --- a/src/MobManager.cpp +++ b/src/MobManager.cpp @@ -506,7 +506,6 @@ void MobManager::dealGooDamage(CNSocket *sock, int amount) { } void MobManager::playerTick(CNServer *serv, time_t currTime) { - static time_t lastHealTime = 0; for (auto& pair : PlayerManager::players) { CNSocket *sock = pair.first; Player *plr = pair.second.plr; @@ -517,9 +516,10 @@ void MobManager::playerTick(CNServer *serv, time_t currTime) { dealGooDamage(sock, 150); // a somewhat hacky way tick goo damage faster than heal, but eh - if (currTime - lastHealTime < 4000) + if (currTime - plr->lastHealTime < 4000) continue; - lastHealTime = currTime; + + plr->lastHealTime = currTime; // heal if (!plr->inCombat && plr->HP < PC_MAXHEALTH(plr->level)) { diff --git a/src/Player.hpp b/src/Player.hpp index 57c24f0..3246b6c 100644 --- a/src/Player.hpp +++ b/src/Player.hpp @@ -46,6 +46,7 @@ struct Player { bool inCombat; bool dotDamage; + time_t lastHealTime; int64_t aQuestFlag[16]; int tasks[ACTIVE_MISSION_COUNT];