Show
Ignore:
Timestamp:
11/22/08 00:36:22 (17 years ago)
Author:
yumileroy
Message:

Merged commit 269 (5f0e38da128a).

Original author: gvcoman
Date: 2008-11-21 14:34:05-05:00

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/SpellEffects.cpp

    r274 r279  
    334334                        break; 
    335335                    } 
    336                     // must only affect demons 
     336                    // must only affect demons (also undead?) 
    337337                    case 45072: 
    338338                    { 
    339                         if(unitTarget->GetCreatureType() != CREATURE_TYPE_DEMON) 
     339                        if(unitTarget->GetCreatureType() != CREATURE_TYPE_DEMON 
     340                            || unitTarget->GetCreatureType() != CREATURE_TYPE_UNDEAD) 
    340341                            return; 
    341342                        break; 
    342343                    } 
     344                    // gruul's shatter 
     345                    case 33671: 
     346                    { 
     347                        // don't damage self and only players 
     348                        if(unitTarget->GetGUID() == m_caster->GetGUID() || unitTarget->GetTypeId() != TYPEID_PLAYER) 
     349                            return; 
     350 
     351                        float radius = GetSpellRadius(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[0])); 
     352                        if(!radius) return; 
     353                        float distance = m_caster->GetDistance2d(unitTarget); 
     354                        damage = (distance > radius ) ? 0 : (int32)(m_spellInfo->EffectBasePoints[0]*((radius - distance)/radius)); 
     355                    }break; 
    343356                } 
    344357                break; 
     
    11591172                    m_caster->CastSpell(m_caster, 45009, true); 
    11601173                    return; 
    1161                 }                 
     1174                } 
    11621175                case 45030:                                 // Impale Emissary 
    11631176                { 
     
    12621275                        //Polymorph Cast Visual Rank 1 
    12631276                        const uint32 spell_list[6] = {32813, 32816, 32817, 32818, 32819, 32820}; 
    1264                         unitTarget->CastSpell( unitTarget, spell_list[urand(0, 5)], true);  
     1277                        unitTarget->CastSpell( unitTarget, spell_list[urand(0, 5)], true); 
    12651278                    } 
    12661279                    return; 
     
    22382251        m_caster->ModifyPower(POWER_MANA,gain); 
    22392252        //send log 
    2240         m_caster->SendEnergizeSpellLog(m_caster, m_spellInfo->Id,gain,POWER_MANA,false); 
     2253        m_caster->SendEnergizeSpellLog(m_caster, m_spellInfo->Id,gain,POWER_MANA); 
    22412254    } 
    22422255} 
     
    22542267                    /*do not uncomment . 
    22552268                    if(bg->GetTypeID()==BATTLEGROUND_WS) 
    2256                         bg->EventPlayerClickedOnFlag((Player*)m_caster, this->gameObjTarget); 
     2269                        bg->EventPlayerClickedOnFlag((Player*)m_caster, gameObjTarget); 
    22572270                    sLog.outDebug("Send Event Horde Flag Picked Up"); 
    22582271                    break; 
     
    22672280                    /*do not uncomment ... (it will cause crash, because of null targetobject!) anyway this is a bad way to call that event, because it would cause recursion 
    22682281                    if(bg->GetTypeID()==BATTLEGROUND_WS) 
    2269                         bg->EventPlayerClickedOnFlag((Player*)m_caster, this->gameObjTarget); 
     2282                        bg->EventPlayerClickedOnFlag((Player*)m_caster, gameObjTarget); 
    22702283                    sLog.outDebug("Send Event Alliance Flag Picked Up"); 
    22712284                    break; 
     
    22782291                    case 23385:                                 // Alliance Flag Returns 
    22792292                        if(bg->GetTypeID()==BATTLEGROUND_WS) 
    2280                             bg->EventPlayerClickedOnFlag((Player*)m_caster, this->gameObjTarget); 
     2293                            bg->EventPlayerClickedOnFlag((Player*)m_caster, gameObjTarget); 
    22812294                        sLog.outDebug("Alliance Flag Returned"); 
    22822295                        break; 
    22832296                    case 23386:                                   // Horde Flag Returns 
    22842297                        if(bg->GetTypeID()==BATTLEGROUND_WS) 
    2285                             bg->EventPlayerClickedOnFlag((Player*)m_caster, this->gameObjTarget); 
     2298                            bg->EventPlayerClickedOnFlag((Player*)m_caster, gameObjTarget); 
    22862299                        sLog.outDebug("Horde Flag Returned"); 
    22872300                        break;*/ 
     
    22892302                    /* 
    22902303                    if(bg->GetTypeID()==BATTLEGROUND_EY) 
    2291                         bg->EventPlayerClickedOnFlag((Player*)m_caster, this->gameObjTarget); 
     2304                        bg->EventPlayerClickedOnFlag((Player*)m_caster, gameObjTarget); 
    22922305                    */ 
    22932306                    break; 
     
    26382651    float radius = GetSpellRadius(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[i])); 
    26392652    Unit *caster = m_originalCasterGUID ? m_originalCaster : m_caster; 
     2653    if(!caster) return; 
    26402654 
    26412655    if(Player* modOwner = caster->GetSpellModOwner()) 
     
    26672681 
    26682682    // Some level depends spells 
    2669     int multiplier  = 0; 
     2683    int multiplier = 0; 
    26702684    int level_diff = 0; 
    26712685    switch (m_spellInfo->Id) 
     
    26742688        case 9512: 
    26752689            level_diff = m_caster->getLevel() - 40; 
    2676             multiplier  = 2; 
     2690            multiplier = 2; 
    26772691            break; 
    26782692        // Blood Fury 
    26792693        case 24571: 
    26802694            level_diff = m_caster->getLevel() - 60; 
    2681             multiplier  = 10; 
     2695            multiplier = 10; 
    26822696            break; 
    26832697        // Burst of Energy 
    26842698        case 24532: 
    26852699            level_diff = m_caster->getLevel() - 60; 
    2686             multiplier  = 4; 
     2700            multiplier = 4; 
    26872701            break; 
    26882702        default: 
     
    37463760        ((Player*)unitTarget)->TeleportTo(mapid, fx, fy, fz, -m_caster->GetOrientation(), TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET | (unitTarget==m_caster ? TELE_TO_SPELL : 0)); 
    37473761    else 
    3748         MapManager::Instance().GetMap(mapid, m_caster)->CreatureRelocation((Creature*)m_caster, fx, fy, fz, -m_caster->GetOrientation()); 
     3762        m_caster->GetMap()->CreatureRelocation((Creature*)m_caster, fx, fy, fz, -m_caster->GetOrientation()); 
    37493763} 
    37503764 
     
    37673781        return; 
    37683782 
    3769     sLog.outDebug("SpellEffect::AddHonor called for spell_id %u , that rewards %d honor points to player: %u", m_spellInfo->Id, this->damage, ((Player*)unitTarget)->GetGUIDLow()); 
     3783    sLog.outDebug("SpellEffect::AddHonor called for spell_id %u , that rewards %d honor points to player: %u", m_spellInfo->Id, damage, ((Player*)unitTarget)->GetGUIDLow()); 
    37703784 
    37713785    // TODO: find formula for honor reward based on player's level! 
     
    37733787    // now fixed only for level 70 players: 
    37743788    if (((Player*)unitTarget)->getLevel() == 70) 
    3775         ((Player*)unitTarget)->RewardHonor(NULL, 1, this->damage); 
     3789        ((Player*)unitTarget)->RewardHonor(NULL, 1, damage); 
    37763790} 
    37773791 
     
    39884002 
    39894003    // add to world 
    3990     MapManager::Instance().GetMap(pet->GetMapId(), pet)->Add((Creature*)pet); 
     4004    pet->GetMap()->Add((Creature*)pet); 
    39914005 
    39924006    // visual effect for levelup 
     
    40184032                return; 
    40194033 
    4020             MapManager::Instance().GetMap(OldSummon->GetMapId(), OldSummon)->Remove((Creature*)OldSummon,false); 
     4034            OldSummon->GetMap()->Remove((Creature*)OldSummon,false); 
    40214035            OldSummon->SetMapId(m_caster->GetMapId()); 
    40224036 
     
    40254039 
    40264040            OldSummon->Relocate(px, py, pz, OldSummon->GetOrientation()); 
    4027             MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster)->Add((Creature*)OldSummon); 
     4041            m_caster->GetMap()->Add((Creature*)OldSummon); 
    40284042 
    40294043            if(m_caster->GetTypeId() == TYPEID_PLAYER && OldSummon->isControlled() ) 
     
    41084122    if(m_caster->GetTypeId() == TYPEID_UNIT) 
    41094123    { 
    4110                 if ( ((Creature*)m_caster)->isTotem() ) 
    4111                         NewSummon->GetCharmInfo()->SetReactState(REACT_AGGRESSIVE); 
    4112                 else 
    4113                         NewSummon->GetCharmInfo()->SetReactState(REACT_DEFENSIVE); 
     4124        if ( ((Creature*)m_caster)->isTotem() ) 
     4125            NewSummon->GetCharmInfo()->SetReactState(REACT_AGGRESSIVE); 
     4126        else 
     4127            NewSummon->GetCharmInfo()->SetReactState(REACT_DEFENSIVE); 
    41144128    } 
    41154129 
     
    44334447            ((Player*)m_caster)->AddComboPoints(unitTarget, 1); 
    44344448    } 
     4449 
    44354450    // Mangle (Cat): CP 
    44364451    if(m_spellInfo->SpellFamilyName==SPELLFAMILY_DRUID && (m_spellInfo->SpellFamilyFlags==0x0000040000000000LL)) 
     
    44394454            ((Player*)m_caster)->AddComboPoints(unitTarget,1); 
    44404455    } 
    4441  
    44424456 
    44434457    // take ammo 
     
    54355449} 
    54365450 
    5437 void Spell::EffectResurrect(uint32 i) 
     5451void Spell::EffectResurrect(uint32 /*effIndex*/) 
    54385452{ 
    54395453    if(!unitTarget) 
     
    56565670    int32 targetLevel = creature->getLevel(); 
    56575671 
    5658     uint32 skill = creature->GetCreatureInfo()->GetRequiredLootSkill();  
     5672    uint32 skill = creature->GetCreatureInfo()->GetRequiredLootSkill(); 
    56595673 
    56605674    ((Player*)m_caster)->SendLoot(creature->GetGUID(),LOOT_SKINNING); 
     
    56835697 
    56845698    if(m_caster->GetTypeId() != TYPEID_PLAYER) 
    5685         MapManager::Instance().GetMap(m_caster->GetMapId(), m_caster)->CreatureRelocation((Creature*)m_caster,x,y,z,m_caster->GetOrientation()); 
     5699        m_caster->GetMap()->CreatureRelocation((Creature*)m_caster,x,y,z,m_caster->GetOrientation()); 
    56865700 
    56875701    // not all charge effects used in negative spells 
     
    61196133            linkedGO->SetOwnerGUID(m_caster->GetGUID() ); 
    61206134 
    6121             MapManager::Instance().GetMap(linkedGO->GetMapId(), linkedGO)->Add(linkedGO); 
     6135            linkedGO->GetMap()->Add(linkedGO); 
    61226136        } 
    61236137        else