diff --git a/modules/mod-player-settings/src/PlayerSettings.cpp b/modules/mod-player-settings/src/PlayerSettings.cpp index c7293c9ddc464b..d317d16eb5f793 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 4bb76d7336224c..6816f18dd6f483 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))