static bool HandleRemoveDualSpecCommand(ChatHandler* handler, const char* args) { std::string name; Player *player; char *TargetName = strtok((char*)args, " "); if (!TargetName) { player = handler->getSelectedPlayer(); if (player) { name = player->GetName(); normalizePlayerName(name); } } else { name = TargetName; normalizePlayerName(name); player = sObjectAccessor->FindPlayerByName(name.c_str()); } if (!player) { // Try reset talents as Hunter Pet Creature* creature = handler->getSelectedCreature(); if (creature && creature->isPet()) { Unit *owner = creature->GetOwner(); if (owner && owner->GetTypeId() == TYPEID_PLAYER && ((Pet *)creature)->IsPermanentPetFor(owner->ToPlayer())) { ((Pet *)creature)->resetTalents(true); owner->ToPlayer()->SendTalentsInfoData(true); ChatHandler(owner->ToPlayer()).SendSysMessage(LANG_RESET_PET_TALENTS); return true; } } } else { player->ActivateSpec(1); player->resetTalents(true); player->SendTalentsInfoData(false); player->ActivateSpec(0); player->CastSpell(player, SPELL_DUAL_SPEC, true); ChatHandler(player).SendSysMessage(LANG_RESET_TALENTS); Pet* pet = player->GetPet(); Pet::resetTalentsForAllPetsOf(player, pet); if (pet) player->SendTalentsInfoData(true); return true; } handler->SendSysMessage(LANG_NO_CHAR_SELECTED); return false; }