[8071] Restore work .modify tp command. Allow apply it to selected character's pet.

This commit is contained in:
VladimirMangos 2009-06-23 04:43:46 +04:00
parent 7175007aba
commit f34ce077c0
5 changed files with 42 additions and 12 deletions

View file

@ -1040,23 +1040,44 @@ bool ChatHandler::HandleModifyTalentCommand (const char* args)
return false;
int tp = atoi((char*)args);
if (tp>0)
if (tp < 0)
return false;
Unit* target = getSelectedUnit();
if(!target)
{
Player* player = getSelectedPlayer();
if(!player)
{
SendSysMessage(LANG_NO_CHAR_SELECTED);
SetSentErrorMessage(true);
return false;
}
SendSysMessage(LANG_NO_CHAR_SELECTED);
SetSentErrorMessage(true);
return false;
}
if(target->GetTypeId()==TYPEID_PLAYER)
{
// check online security
if (HasLowerSecurity(player, 0))
if (HasLowerSecurity((Player*)target, 0))
return false;
player->SetFreeTalentPoints(tp);
((Player*)target)->SetFreeTalentPoints(tp);
((Player*)target)->SendTalentsInfoData(false);
return true;
}
else if(((Creature*)target)->isPet())
{
Unit *owner = target->GetOwner();
if(owner && owner->GetTypeId() == TYPEID_PLAYER && ((Pet *)target)->IsPermanentPetFor((Player*)owner))
{
// check online security
if (HasLowerSecurity((Player*)owner, 0))
return false;
((Pet *)target)->SetFreeTalentPoints(tp);
((Player*)owner)->SendTalentsInfoData(true);
return true;
}
}
SendSysMessage(LANG_NO_CHAR_SELECTED);
SetSentErrorMessage(true);
return false;
}