Changeset 106

Show
Ignore:
Timestamp:
11/19/08 13:36:29 (17 years ago)
Author:
yumileroy
Message:

[svn] Fix a crash caused by gruul script.
Change in EffectSummonWild? and DoZoneInCombat?.

Original author: megamage
Date: 2008-10-24 17:37:40-05:00

Location:
trunk/src
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/bindings/scripts/include/sc_creature.cpp

    r69 r106  
    459459    } 
    460460 
    461     if (!pUnit->CanHaveThreatList() || pUnit->getThreatManager().isThreatListEmpty()) 
     461    /*if (!pUnit->CanHaveThreatList() || pUnit->getThreatManager().isThreatListEmpty()) 
    462462    { 
    463463        error_log("SD2: DoZoneInCombat called for creature that either cannot have threat list or has empty threat list (pUnit entry = %d)", pUnit->GetTypeId() == TYPEID_UNIT ? ((Creature*)pUnit)->GetEntry() : 0); 
    464  
    465         return; 
    466     } 
     464        return; 
     465    }*/ 
    467466 
    468467    InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
     
    470469    for (i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    471470    { 
    472         if(!(*i)->isGameMaster()) 
     471        if((*i)->isAlive()) 
    473472            pUnit->AddThreat(*i, 0.0f); 
    474473    } 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp

    r90 r106  
    586586            m_creature->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); 
    587587            //m_creature->GetMotionMaster()->Clear(false); 
    588             m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING); 
     588            m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); 
    589589            //m_creature->GetMotionMaster()->MovePoint(0, m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ()); 
    590590            m_creature->StopMoving(); 
     
    595595        case 2://move to center 
    596596            //m_creature->GetMotionMaster()->Clear(false); 
    597             m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
     597            //m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
    598598            m_creature->GetMotionMaster()->MovePoint(0, CENTER_X + 5, CENTER_Y, CENTER_Z); //+5, for SPELL_THROW_GLAIVE bug 
    599             m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
     599            //m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
    600600            Timer[EVENT_FLIGHT_SEQUENCE] = 0; 
    601601            break; 
     
    637637            break; 
    638638        case 6://fly to hover point 
    639             m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
     639            //m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
    640640            m_creature->GetMotionMaster()->MovePoint(0, HoverPosition[HoverPoint].x, HoverPosition[HoverPoint].y, HoverPosition[HoverPoint].z); 
    641             m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
     641            //m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
    642642            Timer[EVENT_FLIGHT_SEQUENCE] = 0; 
    643643            break; 
    644644        case 7://return to center 
    645             m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
     645            //m_creature->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
    646646            m_creature->GetMotionMaster()->MovePoint(0, CENTER_X, CENTER_Y, CENTER_Z); 
    647             m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
     647            //m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT); 
    648648            Timer[EVENT_FLIGHT_SEQUENCE] = 0; 
    649649            break; 
     
    665665        case 9://land 
    666666            //m_creature->GetMotionMaster()->Clear(false); 
    667             m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); 
     667            m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); 
    668668            //m_creature->GetMotionMaster()->MovePoint(0, m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ()); 
    669669            m_creature->StopMoving(); 
     
    16171617    void UpdateAI(const uint32 diff) 
    16181618    { 
    1619         if((!m_creature->SelectHostilTarget() || !m_creature->getVictim()) && !Timer[1]) 
     1619        if((!m_creature->SelectHostilTarget() || !m_creature->getVictim())  
     1620            && !Timer[EVENT_MAIEV_STEALTH]) 
    16201621            return; 
    16211622 
     
    21082109    m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, 0); 
    21092110    m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+1, 0); 
    2110     m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING); 
     2111    m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_LEVITATING + MOVEMENTFLAG_ONTRANSPORT); 
    21112112 
    21122113    DoCast(m_creature, SPELL_DUAL_WIELD, true); 
  • trunk/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp

    r105 r106  
    239239        //someone evaded! 
    240240        if(pInstance && !pInstance->GetData(DATA_MAULGAREVENT)) 
     241        { 
    241242            EnterEvadeMode(); 
     243            return; 
     244        } 
    242245 
    243246        //ArcingSmash_Timer 
     
    366369        //someone evaded! 
    367370        if(pInstance && !pInstance->GetData(DATA_MAULGAREVENT)) 
     371        { 
    368372            EnterEvadeMode(); 
     373            return; 
     374        } 
    369375 
    370376        //DarkDecay_Timer 
     
    490496        //someone evaded! 
    491497        if(pInstance && !pInstance->GetData(DATA_MAULGAREVENT)) 
     498        { 
    492499            EnterEvadeMode(); 
     500            return; 
     501        } 
    493502 
    494503        //GreaterPolymorph_Timer 
     
    617626        //someone evaded! 
    618627        if(pInstance && !pInstance->GetData(DATA_MAULGAREVENT)) 
     628        { 
    619629            EnterEvadeMode(); 
     630            return; 
     631        } 
    620632 
    621633        //GreaterPowerWordShield_Timer 
     
    728740        //someone evaded! 
    729741        if(pInstance && !pInstance->GetData(DATA_MAULGAREVENT)) 
     742        { 
    730743            EnterEvadeMode(); 
     744            return; 
     745        } 
    731746 
    732747        //GreaterFireball_Timer 
  • trunk/src/game/SpellEffects.cpp

    r105 r106  
    34903490        int32 duration = GetSpellDuration(m_spellInfo); 
    34913491 
    3492         TempSummonType summonType = (duration == 0) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_OR_DEAD_DESPAWN; 
    3493  
    3494         m_caster->SummonCreature(creature_entry,px,py,pz,m_caster->GetOrientation(),summonType,duration); 
     3492        TempSummonType summonType = (duration == 0) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN; 
     3493 
     3494        if(m_originalCaster) 
     3495            m_originalCaster->SummonCreature(creature_entry,px,py,pz,m_caster->GetOrientation(),summonType,duration); 
     3496        else 
     3497            m_caster->SummonCreature(creature_entry,px,py,pz,m_caster->GetOrientation(),summonType,duration); 
    34953498    } 
    34963499}