From 50b8573e988f4d7d456e056adf402ad751dc2d50 Mon Sep 17 00:00:00 2001 From: fischerlol Date: Thu, 4 Aug 2022 15:41:02 -0700 Subject: [PATCH] Ticket fixes (#71) * Fix escort quest * Fix specific boss health issues --- modules/mod-player-settings/src/PlayerSettings.cpp | 8 ++++++-- .../scripts/EasternKingdoms/zone_hinterlands.cpp | 12 ++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/modules/mod-player-settings/src/PlayerSettings.cpp b/modules/mod-player-settings/src/PlayerSettings.cpp index c7293c9ddc464..d317d16eb5f79 100644 --- a/modules/mod-player-settings/src/PlayerSettings.cpp +++ b/modules/mod-player-settings/src/PlayerSettings.cpp @@ -568,8 +568,12 @@ class PlayerSettingsAllCreatureScript : public AllCreatureScript uint32 scaledCurrentHealth = previousHealth && previousMaxHealth ? float(scaledHealth) / float(previousMaxHealth) * float(previousHealth) : 0; - creature->SetHealth(scaledCurrentHealth); - creature->UpdateAllStats(); + static bool initialized; + if (!initialized) { + initialized = true; + creature->SetHealth(scaledCurrentHealth); + creature->UpdateAllStats(); + } } }; diff --git a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp index 4bb76d7336224..6816f18dd6f48 100644 --- a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp +++ b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp @@ -75,17 +75,24 @@ class npc_rinji : public CreatureScript { npc_rinjiAI(Creature* creature) : npc_escortAI(creature) { + Initialize(); _IsByOutrunner = false; spawnId = 0; - me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE); } - void Reset() override + void Initialize() { + me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE); + me->SetFaction(35); postEventCount = 0; postEventTimer = 3000; } + void Reset() override + { + Initialize(); + } + void JustRespawned() override { _IsByOutrunner = false; @@ -137,6 +144,7 @@ class npc_rinji : public CreatureScript void sQuestAccept(Player* player, Quest const* quest) override { me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE); + me->SetFaction(126); if (quest->GetQuestId() == QUEST_RINJI_TRAPPED) { if (GameObject* go = me->FindNearestGameObject(GO_RINJI_CAGE, INTERACTION_DISTANCE))