static bool HandleResetLevelCommand(ChatHandler* handler, char const* args) { Player* target; if (!handler->extractPlayerTarget((char*)args, &target)) return false; if (!HandleResetStatsOrLevelHelper(target)) return false; uint8 oldLevel = target->getLevel(); // set starting level uint32 startLevel = target->getClass() != CLASS_DEATH_KNIGHT ? sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL) : sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL); target->_ApplyAllLevelScaleItemMods(false); target->SetLevel(startLevel); target->InitRunes(); target->InitStatsForLevel(true); target->InitTaxiNodesForLevel(); target->InitGlyphsForLevel(); target->InitTalentForLevel(); target->SetUInt32Value(PLAYER_XP, 0); target->_ApplyAllLevelScaleItemMods(true); // reset level for pet if (Pet* pet = target->GetPet()) pet->SynchronizeLevelWithOwner(); sScriptMgr->OnPlayerLevelChanged(target, oldLevel); return true; }
static bool HandleResetStatsCommand(ChatHandler* handler, char const* args) { Player* target; if (!handler->extractPlayerTarget((char*)args, &target)) return false; if (!HandleResetStatsOrLevelHelper(target)) return false; target->InitRunes(); target->InitStatsForLevel(true); target->InitTaxiNodesForLevel(); target->InitTalentForLevel(); return true; }