diff --git a/grownupbig.png b/grownupbig.png new file mode 100644 index 0000000..565f3f1 Binary files /dev/null and b/grownupbig.png differ diff --git a/src/GrownUp.cpp b/src/GrownUp.cpp index c8d4d0b..a246555 100644 --- a/src/GrownUp.cpp +++ b/src/GrownUp.cpp @@ -16,7 +16,11 @@ public: GrowUp() : PlayerScript("GrowUp", { PLAYERHOOK_ON_LOGIN, PLAYERHOOK_ON_FIRST_LOGIN, - PLAYERHOOK_ON_LEVEL_CHANGED + PLAYERHOOK_ON_LEVEL_CHANGED, + PLAYERHOOK_ON_UPDATE_ZONE, + PLAYERHOOK_ON_MAP_CHANGED, + PLAYERHOOK_ON_UPDATE_AREA, + PLAYERHOOK_ON_PLAYER_RESURRECT }) { } void OnPlayerLogin(Player* player) override @@ -28,16 +32,12 @@ public: } if (sConfigMgr->GetOption("GrownUp.LoginCheck", true)) - ApplyScale(player, false); // ensure consistency + ApplyScale(player, false); } void OnPlayerFirstLogin(Player* player) override { - // On very first login, set to the configured StarterMinScale - float starterMin = - sConfigMgr->GetOption("GrownUp.StarterMinScale", 0.5f); - - player->SetObjectScale(starterMin); + ApplyScale(player, true); ChatHandler(player->GetSession()) .PSendSysMessage("Your adventure begins small!"); @@ -48,6 +48,26 @@ public: ApplyScale(player, true); } + void OnPlayerUpdateZone(Player* player, uint32 /*newZone*/, uint32 /*newArea*/) override + { + ApplyScale(player, false); + } + + void OnPlayerMapChanged(Player* player) override + { + ApplyScale(player, false); + } + + void OnPlayerUpdateArea(Player* player, uint32 /*oldArea*/, uint32 /*newArea*/) override + { + ApplyScale(player, false); + } + + void OnPlayerResurrect(Player* player, float /*restore_percent*/, bool /*applySickness*/) override + { + ApplyScale(player, false); + } + private: void ApplyScale(Player* player, bool notify) {