3565 | | case SPELL_EFFECT_TAMECREATURE: |
3566 | | { |
3567 | | if (!m_targets.getUnitTarget() || m_targets.getUnitTarget()->GetTypeId() == TYPEID_PLAYER) |
3568 | | return SPELL_FAILED_BAD_IMPLICIT_TARGETS; |
3569 | | |
3570 | | if (m_targets.getUnitTarget()->getLevel() > m_caster->getLevel()) |
3571 | | return SPELL_FAILED_HIGHLEVEL; |
3572 | | |
3573 | | CreatureInfo const *cinfo = ((Creature*)m_targets.getUnitTarget())->GetCreatureInfo(); |
3574 | | if( cinfo->type != CREATURE_TYPE_BEAST ) |
3575 | | return SPELL_FAILED_BAD_TARGETS; |
3576 | | |
3577 | | // use SMSG_PET_TAME_FAILURE? |
3578 | | if( !(cinfo->flag1 & 1) || !(cinfo->family) ) |
3579 | | return SPELL_FAILED_BAD_TARGETS; |
3580 | | |
3581 | | if(m_caster->GetPetGUID()) |
3582 | | return SPELL_FAILED_ALREADY_HAVE_SUMMON; |
3583 | | |
3584 | | if(m_caster->GetCharmGUID()) |
3585 | | return SPELL_FAILED_ALREADY_HAVE_CHARM; |
3586 | | |
3587 | | break; |
3588 | | } |
| 3954 | case SPELL_AURA_DUMMY: |
| 3955 | { |
| 3956 | if(m_spellInfo->Id == 1515) |
| 3957 | { |
| 3958 | if (!m_targets.getUnitTarget() || m_targets.getUnitTarget()->GetTypeId() == TYPEID_PLAYER) |
| 3959 | return SPELL_FAILED_BAD_IMPLICIT_TARGETS; |
| 3960 | |
| 3961 | if (m_targets.getUnitTarget()->getLevel() > m_caster->getLevel()) |
| 3962 | return SPELL_FAILED_HIGHLEVEL; |
| 3963 | |
| 3964 | CreatureInfo const *cinfo = ((Creature*)m_targets.getUnitTarget())->GetCreatureInfo(); |
| 3965 | if( cinfo->type != CREATURE_TYPE_BEAST ) |
| 3966 | return SPELL_FAILED_BAD_TARGETS; |
| 3967 | |
| 3968 | // use SMSG_PET_TAME_FAILURE? |
| 3969 | if( !(cinfo->flag1 & 1) || !(cinfo->family) ) |
| 3970 | return SPELL_FAILED_BAD_TARGETS; |
| 3971 | |
| 3972 | if(m_caster->GetPetGUID()) |
| 3973 | return SPELL_FAILED_ALREADY_HAVE_SUMMON; |
| 3974 | |
| 3975 | if(m_caster->GetCharmGUID()) |
| 3976 | return SPELL_FAILED_ALREADY_HAVE_CHARM; |
| 3977 | } |
| 3978 | }break; |