[8052] Fixed typo in error log output. Author: The_Game_Master
[8049] Added energize effect after last heal tick for 33763 and ranks. Author: bobaz [8053] At character talents reset using chat command also reset talents for all character pets. Author: VladimirMangos --HG-- branch : trunk
This commit is contained in:
+28
-29
@@ -5374,42 +5374,51 @@ bool ChatHandler::HandleResetTalentsCommand(const char * args)
|
||||
uint64 target_guid;
|
||||
std::string target_name;
|
||||
if (!extractPlayerTarget((char*)args,&target,&target_guid,&target_name))
|
||||
{
|
||||
// Try reset talents as Hunter Pet
|
||||
Creature* creature = getSelectedCreature();
|
||||
if (!*args && creature && creature->isPet())
|
||||
{
|
||||
Unit *owner = creature->GetOwner();
|
||||
if(owner && owner->GetTypeId() == TYPEID_PLAYER && ((Pet *)creature)->IsPermanentPetFor((Player*)owner))
|
||||
{
|
||||
((Pet *)creature)->resetTalents(true);
|
||||
((Player*)owner)->SendTalentsInfoData(true);
|
||||
|
||||
ChatHandler((Player*)owner).SendSysMessage(LANG_RESET_PET_TALENTS);
|
||||
if(!m_session || m_session->GetPlayer()!=((Player*)owner))
|
||||
PSendSysMessage(LANG_RESET_PET_TALENTS_ONLINE,GetNameLink((Player*)owner).c_str());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
SendSysMessage(LANG_NO_CHAR_SELECTED);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (target)
|
||||
{
|
||||
target->resetTalents(true);
|
||||
|
||||
target->SendTalentsInfoData(false);
|
||||
ChatHandler(target).SendSysMessage(LANG_RESET_TALENTS);
|
||||
if (!m_session || m_session->GetPlayer()!=target)
|
||||
PSendSysMessage(LANG_RESET_TALENTS_ONLINE,GetNameLink(target).c_str());
|
||||
|
||||
Pet* pet = target->GetPet();
|
||||
Pet::resetTalentsForAllPetsOf(target,pet);
|
||||
if(pet)
|
||||
target->SendTalentsInfoData(true);
|
||||
return true;
|
||||
}
|
||||
else if (target_guid)
|
||||
{
|
||||
CharacterDatabase.PExecute("UPDATE characters SET at_login = at_login | '%u' WHERE guid = '%u'",uint32(AT_LOGIN_RESET_TALENTS), GUID_LOPART(target_guid) );
|
||||
uint32 at_flags = AT_LOGIN_NONE | AT_LOGIN_RESET_PET_TALENTS;
|
||||
CharacterDatabase.PExecute("UPDATE characters SET at_login = at_login | '%u' WHERE guid = '%u'",at_flags, GUID_LOPART(target_guid) );
|
||||
std::string nameLink = playerLink(target_name);
|
||||
PSendSysMessage(LANG_RESET_TALENTS_OFFLINE,nameLink.c_str());
|
||||
return true;
|
||||
}
|
||||
|
||||
// Try reset talents as Hunter Pet
|
||||
Creature* creature = getSelectedCreature();
|
||||
if (creature && creature->isPet() && ((Pet *)creature)->getPetType() == HUNTER_PET)
|
||||
{
|
||||
((Pet *)creature)->resetTalents(true);
|
||||
Unit *owner = creature->GetOwner();
|
||||
if (owner && owner->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
Player* owner_player = (Player *)owner;
|
||||
ChatHandler(owner_player).SendSysMessage(LANG_RESET_PET_TALENTS);
|
||||
if(!m_session || m_session->GetPlayer()!=owner_player)
|
||||
PSendSysMessage(LANG_RESET_PET_TALENTS_ONLINE,GetNameLink(owner_player).c_str());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
SendSysMessage(LANG_NO_CHAR_SELECTED);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
@@ -5434,21 +5443,11 @@ bool ChatHandler::HandleResetAllCommand(const char * args)
|
||||
}
|
||||
else if(casename=="talents")
|
||||
{
|
||||
atLogin = AT_LOGIN_RESET_TALENTS;
|
||||
atLogin = AtLoginFlags(AT_LOGIN_RESET_TALENTS | AT_LOGIN_RESET_PET_TALENTS);
|
||||
sWorld.SendWorldText(LANG_RESETALL_TALENTS);
|
||||
if(!m_session)
|
||||
SendSysMessage(LANG_RESETALL_TALENTS);
|
||||
}
|
||||
else if(casename=="pet_spells")
|
||||
{
|
||||
CharacterDatabase.PExecute("UPDATE character_pet SET load_flags = load_flags | '%u' WHERE (load_flags & '%u') = '0'",uint32(AT_LOAD_RESET_SPELLS),uint32(AT_LOAD_RESET_SPELLS));
|
||||
HashMapHolder<Player>::MapType const& plist = ObjectAccessor::Instance().GetPlayers();
|
||||
for(HashMapHolder<Player>::MapType::const_iterator itr = plist.begin(); itr != plist.end(); ++itr)
|
||||
if (itr->second->GetPet())
|
||||
itr->second->SetPetAtLoginFlag(AT_LOAD_RESET_SPELLS);
|
||||
sWorld.SendWorldText(LANG_RESETALL_PET_SPELLS);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
PSendSysMessage(LANG_RESETALL_UNKNOWN_CASE,args);
|
||||
|
||||
Reference in New Issue
Block a user