Hello & Welcome to our community. Is this your first visit? Register
Follow us on
Follow us on Facebook Follow us on Twitter Watch us on YouTube


MMOCoin

Likes Likes:  0
Page 36 of 112 FirstFirst ... 2126323334353637383940465186106 ... LastLast
Results 351 to 360 of 1117
  1. #351
    The Beautiful Abomination
    CthulhuFtagn's Avatar
    Join Date
    Jan 2010
    Location
    R'lyeh
    Posts
    526
    Post Thanks / Like
    Rep Power
    20
    Reputation
    397

    Cool Gooodd mornin' ...


    Register to remove this ad
    Good morning * yawn *, thanks for the comments.

    Quote Originally Posted by Biohazzard View Post
    Well man I know i'm welcome hehe
    Umm great work for the repack it's working without problems
    I'm on my way to test it

    Addition:
    @Cthulhu Ftagn
    Well... it was a looooong night man... so wanna ask you something first...
    i was testing all night with my friends (Team & Testers) annd we've got a text file with some unscripted details... can i send you on a private message for sure if there is any mistake not to confuse the users or i must to post here with risk ?
    I promise to do my best to describe in detail the information that i givin you.
    Yeah, just PM it.

    Update Available:
    Code:
    MaNGOS updated to 10447
    Certain compilers refuse to erase const_iterator... 
    Small fix for single target auras: remove caster only auras 
    Re-implement in more safe way single cast spell targets system.
    CU_0029.zip (14.54 MB)




    › See More: [Release] TRM's Cthulhu Ftagn Dual-Database MaNGOS Repack (3.3.5.12340) - 32 & 64-bit
    Last edited by CthulhuFtagn; 05-09-10 at 11:36 AM. Reason: Update



  2. Related Threads - Scroll Down after related threads if you are only interested to view replies for above post/thread

  3. #352
    Senior Sergeant
    GrandpaJohn's Avatar
    Join Date
    Feb 2010
    Location
    West Palm Beach, Fl
    Posts
    145
    Post Thanks / Like
    Rep Power
    15
    Reputation
    24
    @CT:

    afternoon to you
    all updated sucessfully at 12:00 noon my time and everthing running great
    loving the avatar man thanks much, have a good time with the family and a great BBQ i hope.

  4. #353
    The Beautiful Abomination
    CthulhuFtagn's Avatar
    Join Date
    Jan 2010
    Location
    R'lyeh
    Posts
    526
    Post Thanks / Like
    Rep Power
    20
    Reputation
    397
    Yep, you're 3 hours ahead from Arizona (Mountain time)... gonna be a good day, the suns out, a nice breeze not too hot, not too cold (where I'm at). You're very welcome.

    EDIT: That's why you're so cool... you're from the future!
    Last edited by CthulhuFtagn; 05-09-10 at 12:16 PM.

  5. #354
    Beginner

    Join Date
    Sep 2010
    Posts
    27
    Post Thanks / Like
    Rep Power
    15
    Reputation
    1
    good ... waiting for your Private Message CT

  6. #355
    The Beautiful Abomination
    CthulhuFtagn's Avatar
    Join Date
    Jan 2010
    Location
    R'lyeh
    Posts
    526
    Post Thanks / Like
    Rep Power
    20
    Reputation
    397
    Go ahead and send the errors you spoke of, I'm gonna go drop off some of my sons old baby clothes at my brothers'.

  7. #356
    Beginner

    Join Date
    Sep 2010
    Posts
    27
    Post Thanks / Like
    Rep Power
    15
    Reputation
    1
    Umm... dude have a little problem... i'm newrly registered here and i can't send private messages yet i'll try something
    GL

    Edit: Okey... try this for now download
    Last edited by Biohazzard; 05-09-10 at 01:15 PM.

  8. #357
    Banned

    Join Date
    Jan 2010
    Posts
    41
    Post Thanks / Like
    Rep Power
    0
    Reputation
    6
    PHP Code:
    #include "precompiled.h"
    #include "def_spire.h"

    enum BossSpells
    {
        
    SPELL_INFEST                     70541,
        
    SPELL_NECROTIC_PLAGUE            70337,
        
    SPELL_PLAGUE_SIPHON              74074,
        
    SPELL_SOUL_REAPER                69409,
        
    SPELL_SPAWN_DEFILE               72762,
        
    SPELL_HARVEST_SOUL               68980,
        
    SPELL_HARVEST_SOUL_TELEPORT      71372,
    //
        
    SPELL_CHANNEL_KING               71769,
        
    SPELL_BROKEN_FROSTMOURNE         72398,
        
    SPELL_BOOM_VISUAL                72726,
        
    SPELL_ICEBLOCK_TRIGGER           71614,
        
    SPELL_TIRION_LIGHT               71797,
        
    SPELL_FROSTMOURNE_TRIGGER        72405,
        
    SPELL_SUMMON_BROKEN_FROSTMOURNE  72406,
        
    SPELL_SUMMON_BROKEN_FROSTMOURNE_2 73017,
        
    SPELL_DISENGAGE                  61508,
        
    SPELL_FURY_OF_FROSTMOURNE        70063,
        
    SPELL_REVIVE_VISUAL              37755
        
    SPELL_REVIVE                     51918,
        
    SPELL_CLONE_PLAYER               57507,
        
    SPELL_BERSERK                    47008,

        
    SPELL_REMORSELESS_WINTER         68981,
        
    SPELL_PAIN_AND_SUFFERING         72133,
        
    SPELL_QUAKE                      72262,

    //  SPELL_SUMMON_RAGING_SPIRIT       = 69201, // triggered
        
    SPELL_SUMMON_RAGING_SPIRIT       69200,
        
    SPELL_SOUL_SHRIEK                69242,

        
    SPELL_SUMMON_ICE_SPHERE          69103,
        
    SPELL_ICE_PULSE                  69099,
        
    SPELL_ICE_BURST                  69108,
        
    SPELL_ICE_SPHERE_VISUAL          69090,

        
    SPELL_SUMMON_DRUDGE_GHOULS       70358,

        
    SPELL_SUMMON_SHAMBLING_HORROR    70372,
        
    SPELL_SHOCKWAVE                  72149,
        
    SPELL_HORROR_ENRAGE              72143,

        
    SPELL_SUMMON_VILE_SPIRITS        70498,
        
    SPELL_SPIRITS_BURST              70503,

        
    SPELL_SUMMON_VALKYR              69037,
        
    NPC_VALKYR                       36609,
        
    SPELL_WINGS_OF_THE_DAMNED        74352,

        
    SPELL_DEFILE                     72743,

        
    SPELL_REVALL                     26687,

        
    NPC_ICE_SPHERE                   36633,
        
    NPC_DEFILER                      38757,
        
    NPC_RAGING_SPIRIT                36701,
        
    NPC_VILE_SPIRIT                  37799,
        
    NPC_STRANGULATE_VEHICLE          36598,

    };

    enum Common
    {
         
    FINAL_ARTHAS_MOVIE             16,
    };

    static 
    Locations SpawnLoc[]=
    {
        {
    459.93689f, -2124.638184f1040.860107f},    // 0 Lich King Intro
        
    {503.15652f, -2124.516602f1040.860107f},    // 1 Lich king move end
        
    {491.27118f, -2124.638184f1040.860107f},    // 2 Tirion 1
        
    {481.69797f, -2124.638184f1040.860107f},    // 3 Tirion 2
        
    {498.00448f, -2201.573486f1046.093872f},    // 4 Valkyrs?
        
    {517.48291f, -2124.905762f1040.861328f},    // 5 Tirion?
        
    {529.85302f, -2124.709961f1040.859985f},    // 6 Lich king final, o=3.1146
        
    {520.311f, -2124.709961f1040.859985f},      // 7 Frostmourne
    };

    struct MANGOS_DLL_DECL boss_the_lich_king_iccAI : public BSWScriptedAI
    {
        
    boss_the_lich_king_iccAI(CreaturepCreature) : BSWScriptedAI(pCreature)
        {
            
    pInstance = (instance_icecrown_spire*)pCreature->GetInstanceData();
            
    oldflag 0;
            
    Reset();
        }

        
    instance_icecrown_spirepInstance;
        
    uint8 stage;
        
    uint32 nextEvent;
        
    uint32 nextPoint;
        
    uint32 UpdateTimer;
        
    uint32 oldflag;
        
    bool movementstarted;
        
    bool battlestarted;
        
    bool finalphase;
        
    CreaturepTirion;
        
    CreaturepFrostmourne;

        
    void Reset()
        {
            if(!
    pInstance) return;
            
    resetTimers();
            
    stage 0;
            
    nextEvent 0;
            
    nextPoint 0;
            
    movementstarted false;
            
    battlestarted false;
            
    finalphase false;
            
    m_creature->SetOrientation(0.0f);
            
    pInstance->CloseDoor(pInstance->GetData64(GO_ICESHARD_1));
            
    pInstance->CloseDoor(pInstance->GetData64(GO_ICESHARD_2));
            
    pInstance->CloseDoor(pInstance->GetData64(GO_ICESHARD_3));
            
    pInstance->CloseDoor(pInstance->GetData64(GO_ICESHARD_4));
            if (
    oldflag)
                if (
    GameObjectpGoFloor pInstance->instance->GetGameObject(pInstance->GetData64(GO_ARTHAS_PLATFORM)))
                {
                   
    pGoFloor->RemoveFlag(GAMEOBJECT_FLAGSGO_FLAG_DAMAGED GO_FLAG_NODESPAWN);
                   
    pGoFloor->SetUInt32Value(GAMEOBJECT_BYTES_1,oldflag);
                }
            
    pInstance->CloseDoor(pInstance->GetData64(GO_FROSTY_WIND));
        }

        
    void MoveInLineOfSight(UnitpWho
        {
        }

        
    void EnterEvadeMode()
        {
            if (!
    pInstance) return;
            if (
    finalphase && pInstance->GetData(TYPE_LICH_KING) == IN_PROGRESS) return;

            
    m_creature->RemoveAllAuras();
            
    m_creature->DeleteThreatList();
            
    m_creature->CombatStop(true);
            
    m_creature->LoadCreaturesAddon();
            if (
    m_creature->isAlive())
                
    m_creature->GetMotionMaster()->MoveTargetedHome();

            
    m_creature->SetLootRecipient(NULL);

            
    Reset();
        }

        
    void MovementInform(uint32 typeuint32 id)
        {
            if (
    type != POINT_MOTION_TYPE || !movementstarted) return;
            if (
    id == nextPoint
            {
                
    movementstarted false;
                
    pInstance->SetData(TYPE_EVENT,nextEvent);
                
    m_creature->GetMotionMaster()->MovementExpired();
            }
        }

        
    void KilledUnit(UnitpVictim)
        {

         if (!
    battlestarted) return;

         switch (
    urand(0,1)) {
            case 
    0:
                   
    DoScriptText(-1631519,m_creature,pVictim);
                   break;
            case 
    1:
                   
    DoScriptText(-1631517,m_creature,pVictim);
                   break;
            };
        }

        
    void JustReachedHome()
        {
            if (!
    pInstance) return;
            
    pInstance->SetData(TYPE_LICH_KINGFAIL);
            
    stage 0;
            
    battlestarted false;
            
    finalphase false;
        }


        
    void StartMovement(uint32 iduint32 _nextEvent)
        {
            
    nextPoint id;
            
    nextEvent _nextEvent;
            
    m_creature->GetMotionMaster()->Clear();
            
    m_creature->GetMotionMaster()->MovePoint(idSpawnLoc[id].xSpawnLoc[id].ySpawnLoc[id].z);
            
    pInstance->SetData(TYPE_EVENT,0);
            
    movementstarted true;
        }

        
    void JustSummoned(Creaturesummoned)
        {
            if(!
    pInstance || !summoned) return;

            if (
    UnitpTarget doSelectRandomPlayerAtRange(60.0f))
               {
                  
    summoned->SetInCombatWith(pTarget);
                  
    summoned->AddThreat(pTarget,100.0f);
               }
        }

        
    void Aggro(Unit *who
        {
            if(!
    pInstance) return;
            
    pInstance->SetData(TYPE_LICH_KINGIN_PROGRESS);
        }

        
    void JustDied(Unit *killer)
        {
            if(!
    pInstance) return;
            
    pInstance->SetData(TYPE_LICH_KINGDONE);
            
    DoScriptText(-1631528,m_creature,killer);

            
    pInstance->SetData(TYPE_EVENT,14010);

        }

        
    void UpdateAI(const uint32 diff)
        {

            if(!
    pInstance) return;

            if (
    pInstance->GetData(TYPE_EVENT_NPC) == NPC_LICH_KING)
            {
                
    UpdateTimer pInstance->GetData(TYPE_EVENT_TIMER);
                if (
    UpdateTimer <= diff)
                {
                
    debug_log("EventMGR: creature %u received signal %u ",m_creature->GetEntry(),pInstance->GetData(TYPE_EVENT));
                switch (
    pInstance->GetData(TYPE_EVENT))
                    {
                    case 
    12000:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_STATE_STAND);
                              
    m_creature->SetStandState(UNIT_STAND_STATE_STAND);
                              
    StartMovement(0,12020);
                              break;
                    case 
    12020:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_STATE_TALK);
                              
    DoScriptText(-1631501m_creature);
                              
    UpdateTimer 12000;
                              
    pInstance->SetData(TYPE_EVENT,12030);
                              break;
                    case 
    12040:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_STATE_READY2H);
                              
    DoScriptText(-1631503m_creature);
                              
    UpdateTimer 8000;
                              
    pInstance->SetData(TYPE_EVENT,12041);
                              break;
                    case 
    12041:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_STATE_LAUGH);
                              
    UpdateTimer 3000;
                              
    pInstance->SetData(TYPE_EVENT,12042);
                              break;
                    case 
    12042:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE,EMOTE_ONESHOT_POINT_NOSHEATHE);
                              
    UpdateTimer 2000;
                              
    pInstance->SetData(TYPE_EVENT,12043);
                              break;
                    case 
    12043:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE,EMOTE_ONESHOT_NONE);
                              
    UpdateTimer 10000;
                              
    pInstance->SetData(TYPE_EVENT,12050);
                              break;
                    case 
    12060:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_STATE_TALK);
                              
    DoScriptText(-1631505m_creature);
                              
    UpdateTimer 10000;
                              
    pInstance->SetData(TYPE_EVENT,12080);
                              break;
                    case 
    12080:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE,EMOTE_STATE_READY2H);
                              
    UpdateTimer 2000;
                              
    pInstance->SetData(TYPE_EVENT,12100);
                              break;
                    case 
    12100:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE,EMOTE_ONESHOT_NONE);
                              
    UpdateTimer 6000;
                              
    pInstance->SetData(TYPE_EVENT,12120);
                              break;
                    case 
    12120:
                              
    m_creature->SetInCombatWithZone();
                              
    battlestarted true;
                              
    pInstance->SetData(TYPE_EVENT,12200);
                              
    UpdateTimer 10000;
                              break;
                    case 
    12200:
                              
    DoScriptText(-1631506m_creature);
                              
    UpdateTimer 5000;
                              
    pInstance->SetData(TYPE_EVENT,12220);
                              break;
                    case 
    13000:
                              
    m_creature->SetOrientation(3.1146f);
                              
    DoScriptText(-1631507m_creature);
                              
    UpdateTimer 12000;
                              
    finalphase true;
                              
    doCast(SPELL_FURY_OF_FROSTMOURNE);
                              
    pInstance->SetData(TYPE_EVENT,13020);
                              if (
    pTirion = (Creature*)Unit::GetUnit((*m_creature),pInstance->GetData64(NPC_TIRION))) {
                                    
    m_creature->SetInCombatWith(pTirion);
                                    
    pTirion->AddThreat(m_creature1000.0f);
                                    }
                              
    m_creature->SetInCombatWithZone();
                              break;
                    case 
    13020:
                              
    DoScriptText(-1631508m_creature);
                              
    UpdateTimer 12000;
                              
    pInstance->SetData(TYPE_EVENT,13060);
                              break;
                    case 
    13060:
                              
    DoScriptText(-1631509m_creature);
                              
    UpdateTimer 15000;
                              
    pInstance->SetData(TYPE_EVENT,13100);
                              break;
                    case 
    13100:
                              
    DoScriptText(-1631510m_creature);
                              
    UpdateTimer 15000;
                              
    pInstance->SetData(TYPE_EVENT,13110);
                              
    doCast(SPELL_CHANNEL_KING);
                              break;
                    case 
    13120:
                              
    DoScriptText(-1631511m_creature);
                              
    UpdateTimer 12000;
                              
    pInstance->SetData(TYPE_EVENT,13130);
                              break;
                    case 
    13140:
                              
    UpdateTimer 6000;
                              
    doRemove(SPELL_CHANNEL_KING);
                              
    pInstance->SetData(TYPE_EVENT,13150);
                              
    m_creature->CastSpell(m_creatureSPELL_SUMMON_BROKEN_FROSTMOURNEfalse);
                              break;
                    case 
    13160:
                              
    UpdateTimer 6000;
                              
    pInstance->SetData(TYPE_EVENT,13170);
                              
    m_creature->CastSpell(m_creatureSPELL_SUMMON_BROKEN_FROSTMOURNE_2false);
                              break;
                    case 
    13180:
                              
    UpdateTimer 12000;
                              
    pInstance->SetData(TYPE_EVENT,13190);
                              if (
    pFrostmourne m_creature->SummonCreature(NPC_FROSTMOURNE_HOLDERSpawnLoc[7].xSpawnLoc[7].ySpawnLoc[7].z0TEMPSUMMON_MANUAL_DESPAWN5000))
                                 {
                                     
    pFrostmourne->CastSpell(pFrostmourneSPELL_BROKEN_FROSTMOURNEfalse);
                                     
    pFrostmourne->CastSpell(pFrostmourneSPELL_FROSTMOURNE_TRIGGERfalse);
                                     
    pFrostmourne->GetMotionMaster()->MoveChase(m_creature);
                                     
    m_creature->SetFlag(UNIT_FIELD_FLAGSUNIT_FLAG_DISARMED);
                                 }
                              break;
                    case 
    13200:
                              
    DoScriptText(-1631512m_creature);
                              
    m_creature->RemoveAurasDueToSpell(SPELL_SUMMON_BROKEN_FROSTMOURNE);
                              
    m_creature->RemoveAllAuras();
                              
    pFrostmourne->RemoveAurasDueToSpell(SPELL_FROSTMOURNE_TRIGGER);
                              
    UpdateTimer 5000;
                              
    pInstance->SetData(TYPE_EVENT,13210);
                              break;
                    case 
    13280:
                              
    UpdateTimer 2000;
                              
    pInstance->SetData(TYPE_EVENT,13290);
                              
    stage 13;
                              if (
    pFrostmournepFrostmourne->ForcedDespawn();
                              if (
    CreaturepTemp = (Creature*)Unit::GetUnit((*m_creature),pInstance->GetData64(NPC_FROSTMOURNE_TRIGGER)))
                                 
    pTemp->ForcedDespawn();
                              if (
    CreaturepTemp = (Creature*)Unit::GetUnit((*m_creature),pInstance->GetData64(NPC_FROSTMOURNE_HOLDER)))
                                 
    pTemp->ForcedDespawn();
                              
    SetCombatMovement(true);
                              
    battlestarted true;
                              break;
                    default:
                              break;
                    }
                 } else 
    UpdateTimer -= diff;
                 
    pInstance->SetData(TYPE_EVENT_TIMERUpdateTimer);
            }

            if (
    battlestarted && !m_creature->SelectHostileTarget() && !finalphase)
            {
                
    battlestarted false;
                
    pInstance->SetData(TYPE_LICH_KINGFAIL);
                
    pInstance->SetData(TYPE_EVENT,0);
                
    EnterEvadeMode();
                return;
            }

            if (!
    m_creature->SelectHostileTarget() || !m_creature->getVictim())
                return;

            switch(
    stage)
            {
                case 
    0:           // Phase 1
    //                    timedCast(SPELL_SHOCKWAVE, diff);
                        
    timedCast(SPELL_INFESTdiff);
                        
    timedCast(SPELL_SUMMON_DRUDGE_GHOULSdiff);
                        
    timedCast(SPELL_PLAGUE_SIPHONdiff);
                        
    timedCast(SPELL_SUMMON_SHAMBLING_HORRORdiff);
                        
    timedCast(SPELL_NECROTIC_PLAGUEdiff);

                        
    DoMeleeAttackIfReady();
                        if (
    timedQuery(SPELL_BERSERKdiff))
                        {
                            
    doCast(SPELL_BERSERK);
                            
    DoScriptText(-1631518,m_creature);
                        };

                        if (
    m_creature->GetHealthPercent() < 70.0f
                           {
                                
    stage 1;
                                
    DoScriptText(-1631515,m_creature);
                           }
                        break;
                case 
    1:             // Go in transition phase
                        
    m_creature->AttackStop();
                        
    m_creature->SetFlag(UNIT_FIELD_FLAGSUNIT_FLAG_NON_ATTACKABLE);
                        
    SetCombatMovement(false);
                        
    StartMovement(1,0);
                        
    stage 2;
                        break;
                case 
    2:
                        if (
    movementstarted) return;
                        
    doCast(SPELL_REMORSELESS_WINTER);
                        
    stage 3;
                        break;
                case 
    3:
                        
    timedCast(SPELL_SUMMON_RAGING_SPIRITdiff);
                        
    timedCast(SPELL_SUMMON_ICE_SPHEREdiff);
                        
    timedCast(SPELL_PAIN_AND_SUFFERINGdiff);

                        if (
    timedQuery(SPELL_BERSERKdiff))
                        {
                            
    doCast(SPELL_BERSERK);
                            
    DoScriptText(-1631518,m_creature);
                        };

                        if (
    timedQuery(SPELL_REMORSELESS_WINTERdiff))
                           {
                                
    doCast(SPELL_QUAKE);
                                
    stage 4;
                                
    DoScriptText(-1631524m_creature);
                                
    pInstance->OpenDoor(pInstance->GetData64(GO_SNOW_EDGE));
                           };
                        break;
                case 
    4:           // Platform destruct
                        
    if (timedQuery(SPELL_QUAKEdiff))
                           {
                                
    pInstance->OpenDoor(pInstance->GetData64(GO_ICESHARD_1));
                                
    pInstance->OpenDoor(pInstance->GetData64(GO_ICESHARD_2));
                                
    pInstance->OpenDoor(pInstance->GetData64(GO_ICESHARD_3));
                                
    pInstance->OpenDoor(pInstance->GetData64(GO_ICESHARD_4));
                                if (
    GameObjectpGoFloor pInstance->instance->GetGameObject(pInstance->GetData64(GO_ARTHAS_PLATFORM)))
                                {
                                     
    pGoFloor->SetFlag(GAMEOBJECT_FLAGSGO_FLAG_DAMAGED GO_FLAG_NODESPAWN);
                                     
    oldflag pGoFloor->GetUInt32Value(GAMEOBJECT_BYTES_1);
                                     
    pGoFloor->SetUInt32Value(GAMEOBJECT_BYTES_1,8449);
                                }
                                
    pInstance->CloseDoor(pInstance->GetData64(GO_FROSTY_WIND));
                                
    pInstance->CloseDoor(pInstance->GetData64(GO_SNOW_EDGE));
                                
    m_creature->GetMotionMaster()->Clear();
                                
    m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim());
                                
    m_creature->RemoveFlag(UNIT_FIELD_FLAGSUNIT_FLAG_NON_ATTACKABLE);
                                
    SetCombatMovement(true);
                                
    stage 5;
                           }
                        break;
                case 
    5:           // Phase 2

                        
    if (timedQuery(SPELL_SPAWN_DEFILEdiff)) 
                           {
                                
    doCast(SPELL_SPAWN_DEFILE);
                                
    DoScriptText(-1631531,m_creature);
                           }
                        if (
    timedQuery(SPELL_SUMMON_VALKYRdiff)) 
                           {
                                
    doCast(SPELL_SUMMON_VALKYR);
                                
    DoScriptText(-1631527,m_creature);
                           }

                        
    timedCast(SPELL_SOUL_REAPERdiff);
                        
    timedCast(SPELL_INFESTdiff);

                        
    DoMeleeAttackIfReady();

                        if (
    timedQuery(SPELL_BERSERKdiff))
                        {
                            
    doCast(SPELL_BERSERK);
                            
    DoScriptText(-1631518,m_creature);
                        };

                        if (
    m_creature->GetHealthPercent() < 40.0f
                           {
                                
    stage 6;
                                
    DoScriptText(-1631523,m_creature);
                           }
                        break;
                case 
    6:           // Go in transition phase
                        
    m_creature->AttackStop();
                        
    m_creature->SetFlag(UNIT_FIELD_FLAGSUNIT_FLAG_NON_ATTACKABLE);
                        
    SetCombatMovement(false);
                        
    StartMovement(1,0);
                        
    stage 7;
                        break;
                case 
    7:          // Platform restore
                        
    if (movementstarted) return;
                        if (
    GameObjectpGoFloor pInstance->instance->GetGameObject(pInstance->GetData64(GO_ARTHAS_PLATFORM)))
                        {
                            
    pGoFloor->RemoveFlag(GAMEOBJECT_FLAGSGO_FLAG_DAMAGED GO_FLAG_NODESPAWN);
                            
    pGoFloor->SetUInt32Value(GAMEOBJECT_BYTES_1,oldflag);
                        }
                        
    pInstance->OpenDoor(pInstance->GetData64(GO_FROSTY_WIND));
                        
    doCast(SPELL_REMORSELESS_WINTER);
                        
    stage 8;
                        break;
                case 
    8:
                        
    timedCast(SPELL_SUMMON_RAGING_SPIRITdiff);
                        
    timedCast(SPELL_SUMMON_ICE_SPHEREdiff);
                        
    timedCast(SPELL_PAIN_AND_SUFFERINGdiff);

                        if (
    timedQuery(SPELL_BERSERKdiff))
                        {
                            
    doCast(SPELL_BERSERK);
                            
    DoScriptText(-1631518,m_creature);
                        };

                        if (
    timedQuery(SPELL_REMORSELESS_WINTERdiff))
                           {
                                
    DoScriptText(-1631524m_creature);
                                
    doCast(SPELL_SUMMON_VILE_SPIRITS);
                                for (
    uint8 i 0getSpellData(SPELL_SUMMON_VILE_SPIRITS); ++i)
                                     
    doCast(NPC_VILE_SPIRIT);
                                
    doCast(SPELL_QUAKE);
                                
    stage 9;
                                
    pInstance->OpenDoor(pInstance->GetData64(GO_SNOW_EDGE));
                           };

                        break;
                case 
    9:           // Platform destruct
                        
    if (timedQuery(SPELL_QUAKEdiff))
                           {
                                if (
    GameObjectpGoFloor pInstance->instance->GetGameObject(pInstance->GetData64(GO_ARTHAS_PLATFORM)))
                                {
                                     
    pGoFloor->SetFlag(GAMEOBJECT_FLAGSGO_FLAG_DAMAGED GO_FLAG_NODESPAWN);
                                     
    oldflag pGoFloor->GetUInt32Value(GAMEOBJECT_BYTES_1);
                                     
    pGoFloor->SetUInt32Value(GAMEOBJECT_BYTES_1,8449);
                                }
                                
    pInstance->CloseDoor(pInstance->GetData64(GO_SNOW_EDGE));
                                
    pInstance->CloseDoor(pInstance->GetData64(GO_FROSTY_WIND));
                                
    m_creature->GetMotionMaster()->Clear();
                                
    m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim());
                                
    m_creature->RemoveFlag(UNIT_FIELD_FLAGSUNIT_FLAG_NON_ATTACKABLE);
                                
    SetCombatMovement(true);
                                
    stage 10;
                           }
                       break;
                case 
    10:           // Phase 3
                        
    if (timedQuery(SPELL_SPAWN_DEFILEdiff)) 
                           {
                                
    doCast(SPELL_SPAWN_DEFILE);
    //                            DoScriptText(-1631527,m_creature);
                           
    }
                        
    timedCast(SPELL_SOUL_REAPERdiff);

                        if (
    timedQuery(SPELL_HARVEST_SOULdiff)) 
                           {
                                
    doCast(SPELL_HARVEST_SOUL);
                                
    DoScriptText(-1631520,m_creature);
                           }

                        
    timedCast(SPELL_SOUL_REAPERdiff);
                        
    timedCast(SPELL_INFESTdiff);

                        
    DoMeleeAttackIfReady();

                        if (
    m_creature->GetHealthPercent() < 10.0f
                           {
                                
    stage 11;
                                
    DoScriptText(-1631513,m_creature);
                           }
                        break;
                case 
    11:           // Ending Phase start
                        
    m_creature->AttackStop();
                        
    SetCombatMovement(false);
                        
    StartMovement(6,13000);
                        
    stage 12;
                        
    battlestarted false;
                        break;
                case 
    12:
                        break;
                case 
    13:
                        
    DoMeleeAttackIfReady();
                        break;
            }
        }
    };


    CreatureAIGetAI_boss_the_lich_king_icc(CreaturepCreature)
    {
        return new 
    boss_the_lich_king_iccAI(pCreature);
    };

    struct MANGOS_DLL_DECL boss_tirion_iccAI : public ScriptedAI
    {
        
    boss_tirion_iccAI(CreaturepCreature) : ScriptedAI(pCreature)
        {
            
    pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
            
    Reset();
        }

        
    ScriptedInstance *pInstance;
        
    uint32 UpdateTimer;
        
    uint32 nextEvent;
        
    uint32 nextPoint;
        
    bool movementstarted;
        
    CreaturepMenethil;

        
    void Reset()
        {
            if(!
    pInstance) return;
            
    movementstarted false;
            
    m_creature->RemoveAurasDueToSpell(SPELL_ICEBLOCK_TRIGGER);
            
    m_creature->SetOrientation(M_PI_F);
        }

        
    void StartMovement(uint32 iduint32 _nextEvent)
        {
            
    nextPoint id;
            
    nextEvent _nextEvent;
            
    m_creature->GetMotionMaster()->MovePoint(idSpawnLoc[id].xSpawnLoc[id].ySpawnLoc[id].z);
            
    pInstance->SetData(TYPE_EVENT,0);
            
    movementstarted true;
        }

        
    void MovementInform(uint32 typeuint32 id)
        {
            if (
    type != POINT_MOTION_TYPE || !movementstarted) return;
            if (
    id == nextPoint
            {
                
    movementstarted false;
                
    pInstance->SetData(TYPE_EVENT,nextEvent);
                
    m_creature->GetMotionMaster()->MovementExpired();
            }
        }

        
    void doSendCinematic()
        {
            
    Map::PlayerList const &pList m_creature->GetMap()->GetPlayers();
            if (
    pList.isEmpty()) return;
            for (
    Map::PlayerList::const_iterator i pList.begin(); != pList.end(); ++i)
                 if (
    PlayerpPlayer i->getSource())
                     if (
    pPlayer && pPlayer->isAlive() && pPlayer->IsInMap(m_creature))
                         
    pPlayer->SendMovieStart(FINAL_ARTHAS_MOVIE);
        }

        
    void doRevivePlayers()
        {
            
    Map::PlayerList const &pList pMenethil->GetMap()->GetPlayers();
            if (
    pList.isEmpty()) return;
            for (
    Map::PlayerList::const_iterator i pList.begin(); != pList.end(); ++i)
                {
                   if (
    PlayerpPlayer i->getSource())
                   {
                       if (
    pPlayer && !pPlayer->isAlive() && pPlayer->IsInMap(pMenethil))
                          {
                              
    pMenethil->CastSpell(pPlayerSPELL_REVALLtrue);
                              
    pPlayer->ResurrectPlayer(100false);
                           }
                    }
                 };
        }

        
    void UpdateAI(const uint32 diff)
        {

            if (
    pInstance->GetData(TYPE_LICH_KING) == FAIL && m_creature->HasAura(SPELL_ICEBLOCK_TRIGGER)) 
            {
                
    m_creature->RemoveAurasDueToSpell(SPELL_ICEBLOCK_TRIGGER);
                
    m_creature->GetMotionMaster()->MoveTargetedHome();
                
    Reset();
            }

            if (
    pInstance->GetData(TYPE_EVENT_NPC) == NPC_TIRION)
            {
                
    UpdateTimer pInstance->GetData(TYPE_EVENT_TIMER);
                if (
    UpdateTimer <= diff)
                {
                
    debug_log("EventMGR: creature %u received signal %u ",m_creature->GetEntry(),pInstance->GetData(TYPE_EVENT));
                switch (
    pInstance->GetData(TYPE_EVENT))
                    {
                    case 
    12030:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_ONESHOT_TALK);
                              
    DoScriptText(-1631552m_creature);
                              
    UpdateTimer 9000;
                              
    pInstance->SetData(TYPE_EVENT,12040);
                              break;
                    case 
    12050:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_ONESHOT_POINT_NOSHEATHE);
                              
    DoScriptText(-1631554m_creature);
                              
    UpdateTimer 3000;
                              
    pInstance->SetData(TYPE_EVENT,12051);
                              break;
                    case 
    12051:
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_ONESHOT_NONE);
                              
    UpdateTimer 1000;
                              
    pInstance->SetData(TYPE_EVENT,12052);
                              break;
                    case 
    12052:
                              
    m_creature->RemoveSplineFlag(SPLINEFLAG_WALKMODE);
                              
    StartMovement(3,12053);
                              break;
                    case 
    12053:
                              
    UpdateTimer 3000;
                              
    pInstance->SetData(TYPE_EVENT,12060);
                              
    m_creature->CastSpell(m_creatureSPELL_ICEBLOCK_TRIGGERtrue);
                              break;
                    case 
    13110:
                              
    DoScriptText(-1631555m_creature);
                              
    UpdateTimer 6000;
                              
    m_creature->CastSpell(m_creatureSPELL_TIRION_LIGHTfalse);
                              
    pInstance->SetData(TYPE_EVENT,13120);
                              break;
                    case 
    13130:
                              
    SetCombatMovement(false);
                              
    m_creature->RemoveAurasDueToSpell(SPELL_ICEBLOCK_TRIGGER);
                              
    UpdateTimer 500;
                              
    m_creature->SetOrientation(0.0f);
                              
    pInstance->SetData(TYPE_EVENT,13131);
                              break;
                    case 
    13131:
                              
    m_creature->RemoveSplineFlag(SPLINEFLAG_WALKMODE);
                              
    StartMovement(2,13132);
                              break;
                    case 
    13132:
                              
    StartMovement(5,13140);
                              
    DoScriptText(-1631556m_creature);
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_STATE_READY2H);
                              break;
                    case 
    13150:
                              
    UpdateTimer 1000;
                              
    pInstance->SetData(TYPE_EVENT,13160);
                              break;
                    case 
    13170:
                              
    UpdateTimer 2000;
                              
    pInstance->SetData(TYPE_EVENT,13180);
                              break;
                    case 
    13190:
                              
    UpdateTimer 500;
                              
    pInstance->SetData(TYPE_EVENT,13200);
                              break;
                    case 
    13210:
                              
    UpdateTimer 3000;
                              
    pInstance->SetData(TYPE_EVENT,13230);
                              break;
                    case 
    13230:
                              
    UpdateTimer 12000;
                              
    pMenethil m_creature->SummonCreature(NPC_MENETHILm_creature->GetPositionX()+5m_creature->GetPositionY()+5m_creature->GetPositionZ(), 0TEMPSUMMON_MANUAL_DESPAWN5000);
                              
    pInstance->SetData(TYPE_EVENT,13250);
                              
    DoScriptText(-1631560pMenethil);
                              break;
                    case 
    13250:
                              
    UpdateTimer 6000;
                              
    pInstance->SetData(TYPE_EVENT,13270);
                              
    DoScriptText(-1631561pMenethil);
                              
    pMenethil->CastSpell(pMenethilSPELL_REVIVE_VISUALfalse);
                              
    doRevivePlayers();
                              break;
                    case 
    13270:
                              
    UpdateTimer 6000;
                              
    pInstance->SetData(TYPE_EVENT,13280);
                              if (
    CreaturepLichKing = (Creature*)Unit::GetUnit((*m_creature),pInstance->GetData64(NPC_LICH_KING)))
                              {
                                  
    m_creature->SetInCombatWith(pLichKing);
                                  
    pLichKing->SetInCombatWith(m_creature);
                                  
    pLichKing->AddThreat(m_creature1000.0f);
                                  
    m_creature->AI()->AttackStart(pLichKing);
                                  
    pMenethil->AI()->AttackStart(pLichKing);
                                  
    SetCombatMovement(true);
                                  
    m_creature->GetMotionMaster()->MoveChase(pLichKing);
                              };
                              break;
                    case 
    13290:
                              
    UpdateTimer 5000;
                              
    pInstance->SetData(TYPE_EVENT,13310);
                              
    DoScriptText(-1631590pMenethil);
                              break;
                    case 
    13310:
                              
    UpdateTimer 5000;
                              
    pInstance->SetData(TYPE_EVENT,13330);
                              
    DoScriptText(-1631591m_creature);
                              break;
                    case 
    13330:
                              
    UpdateTimer 5000;
                              
    pInstance->SetData(TYPE_EVENT,13350);
                              
    DoScriptText(-1631592pMenethil);
                              break;
                    case 
    13350:
                              
    UpdateTimer 2000;
                              
    pInstance->SetData(TYPE_EVENT,13370);
                              
    DoScriptText(-1631593m_creature);
                              break;
                    case 
    14010:
                              
    m_creature->AttackStop();
                              
    SetCombatMovement(false);
                              
    UpdateTimer =90000;
                              
    pInstance->SetData(TYPE_EVENT,14030);
                              
    m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATEEMOTE_ONESHOT_NONE);
                              if (
    CreaturepLichKing = (Creature*)Unit::GetUnit((*m_creature),pInstance->GetData64(NPC_LICH_KING)))
                                  
    pLichKing->RemoveFlag(UNIT_DYNAMIC_FLAGSUNIT_DYNFLAG_LOOTABLE);
                              
    doSendCinematic();
                              break;
                    case 
    14030:
                              
    UpdateTimer 20000;
                              
    pInstance->SetData(TYPE_EVENT,14030);
                              
    DoScriptText(-1631594m_creature);
    //                          if (pMenethil && pMenethil->isAlive()) pMenethil->ForcedDespawn();
                              
    if (pMenethil && pMenethil->isAlive()) pMenethil->SetVisibility(VISIBILITY_OFF);
                              if (
    CreaturepLichKing = (Creature*)Unit::GetUnit((*m_creature),pInstance->GetData64(NPC_LICH_KING)))
                                  
    pLichKing->SetFlag(UNIT_DYNAMIC_FLAGSUNIT_DYNFLAG_LOOTABLE);
                              
    pInstance->SetData(TYPE_EVENT,0);
                              
    EnterEvadeMode();
                              break;
                    default:
                              break;
                    }
                 } else 
    UpdateTimer -= diff;
                 
    pInstance->SetData(TYPE_EVENT_TIMERUpdateTimer);
            }

            if (!
    m_creature->SelectHostileTarget() || !m_creature->getVictim())
                return;
            
    DoMeleeAttackIfReady();
        }


    };

    bool GossipHello_boss_tirion_icc(PlayerpPlayerCreaturepCreature)
    {
        
    ScriptedInstancepInstance;
        
    pInstance = (ScriptedInstance*)pCreature->GetInstanceData();

        if (
    pInstance->GetData(TYPE_LICH_KING) != NOT_STARTED &&
            
    pInstance->GetData(TYPE_LICH_KING) != FAIL )
            {
                
    pPlayer->PlayerTalkClass->SendGossipMenu(721002pCreature->GetGUID());
                return 
    true;
            };

        
    pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, -1631608GOSSIP_SENDER_MAINGOSSIP_ACTION_INFO_DEF);
        
    pPlayer->PlayerTalkClass->SendGossipMenu(721001pCreature->GetGUID());
        return 
    true;
    };

    bool GossipSelect_boss_tirion_icc(PlayerpPlayerCreaturepCreatureuint32 uiSenderuint32 uiAction)
    {
        
    ScriptedInstancepInstance;
        
    pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
        if (!
    pInstance) return false;

        if (
    uiAction == GOSSIP_ACTION_INFO_DEF)
        {
            
    pPlayer->CLOSE_GOSSIP_MENU();
            
    pInstance->SetData(TYPE_LICH_KINGIN_PROGRESS);
            
    pInstance->SetData(TYPE_EVENT,12000);
            return 
    true;
        } else return 
    false;
    };

    CreatureAIGetAI_boss_tirion_icc(CreaturepCreature)
    {
        return new 
    boss_tirion_iccAI(pCreature);
    };

    struct MANGOS_DLL_DECL  mob_ice_sphere_iccAI : public BSWScriptedAI
    {
        
    mob_ice_sphere_iccAI(Creature *pCreature) : BSWScriptedAI(pCreature
        {
            
    pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
            
    Reset();
        }

        
    ScriptedInstance *pInstance;

        
    void Reset()
        {
           
    resetTimers();
           
    doCast(SPELL_ICE_SPHERE_VISUAL);
           
    m_creature->AddSplineFlag(SPLINEFLAG_WALKMODE);
        }


        
    void UpdateAI(const uint32 uiDiff)
        {
            if (!
    pInstance || pInstance->GetData(TYPE_LICH_KING) != IN_PROGRESS
                  
    m_creature->ForcedDespawn();

            if (!
    m_creature->SelectHostileTarget() || !m_creature->getVictim())
                {
                    if (
    UnitpTarget doSelectRandomPlayerAtRange(120.0f))
                    {
                       
    m_creature->SetInCombatWith(pTarget);
                       
    m_creature->AddThreat(pTarget,100.0f);
                    }
                return;
                }

            if (
    m_creature->getVictim()->GetTypeId() != TYPEID_PLAYER
                return;

            
    timedCast(SPELL_ICE_PULSEuiDiff);

            if (
    m_creature->IsWithinDistInMap(m_creature->getVictim(), 1.0f))
                
    timedCast(SPELL_ICE_BURST,uiDiff);
        }
    };

    CreatureAIGetAI_mob_ice_sphere_icc(CreaturepCreature)
    {
        return new 
    mob_ice_sphere_iccAI(pCreature);
    };

    struct MANGOS_DLL_DECL mob_defiler_iccAI : public BSWScriptedAI
    {
        
    mob_defiler_iccAI(Creature *pCreature) : BSWScriptedAI(pCreature)
        {
            
    m_pInstance = ((ScriptedInstance*)pCreature->GetInstanceData());
            
    Reset();
        }

        
    ScriptedInstance *m_pInstance;
        
    uint32 life_timer;
        
    float m_Size0;
        
    float m_Size;

        
    void Reset()
        {
            
    SetCombatMovement(false);
            
    life_timer 30000;
            
    m_creature->SetFlag(UNIT_FIELD_FLAGSUNIT_FLAG_NON_ATTACKABLE);
            
    m_creature->SetFlag(UNIT_FIELD_FLAGSUNIT_FLAG_NOT_SELECTABLE);
            
    m_creature->CastSpell(m_creatureSPELL_DEFILEtrue);
            
    m_Size0 m_creature->GetFloatValue(OBJECT_FIELD_SCALE_X);
            
    m_Size m_Size0;
        }

        
    void AttackStart(Unit *pWho)
        {
            return;
        }

        
    bool doSearchPlayers()
        {
            if(
    doSelectRandomPlayerAtRange(m_Size 3.0f)) return true;
            else return 
    false;
        }

        
    void UpdateAI(const uint32 uiDiff)
        {
            if(
    m_pInstance && m_pInstance->GetData(TYPE_LICH_KING) != IN_PROGRESS)
                
    m_creature->ForcedDespawn();

            if (
    life_timer <= uiDiff)
                
    m_creature->ForcedDespawn();
            else 
    life_timer -= uiDiff;

            if (
    doSearchPlayers() && m_Size <= m_Size0 6.0f) {
                    
    m_Size m_Size*1.01;
                    
    m_creature->SetFloatValue(OBJECT_FIELD_SCALE_Xm_Size);
                    }

        }

    };

    CreatureAIGetAI_mob_defiler_icc(CreaturepCreature)
    {
        return new 
    mob_defiler_iccAI(pCreature);
    }

    struct MANGOS_DLL_DECL mob_strangulate_vehicleAI : public ScriptedAI
    {
        
    mob_strangulate_vehicleAI(Creature *pCreature) : ScriptedAI(pCreature)
        {
            
    m_pInstance = ((ScriptedInstance*)pCreature->GetInstanceData());
            
    Reset();
        }

        
    ScriptedInstance *m_pInstance;

        
    void Reset()
        {
            
    SetCombatMovement(false);
            
    m_creature->SetFlag(UNIT_FIELD_FLAGSUNIT_FLAG_NON_ATTACKABLE);
            
    m_creature->SetFlag(UNIT_FIELD_FLAGSUNIT_FLAG_NOT_SELECTABLE);
        }

        
    void AttackStart(Unit *pWho)
        {
            return;
        }

        
    void UpdateAI(const uint32 uiDiff)
        {
           
    m_creature->ForcedDespawn();
        }

    };

    CreatureAIGetAI_mob_strangulate_vehicle(CreaturepCreature)
    {
        return new 
    mob_strangulate_vehicleAI(pCreature);
    }

    struct MANGOS_DLL_DECL  mob_vile_spiritAI : public BSWScriptedAI
    {
        
    mob_vile_spiritAI(Creature *pCreature) : BSWScriptedAI(pCreature
        {
            
    pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
            
    Reset();
        }

        
    ScriptedInstance *pInstance;
        
    bool movementstarted;

        
    void Reset()
        {
           
    resetTimers();
           if (
    UnitpTarget doSelectRandomPlayerAtRange(120.0f))
               {
                   
    m_creature->SetInCombatWith(pTarget);
                   
    m_creature->AddThreat(pTarget,1000.0f);
               }
           
    SetCombatMovement(false);
           
    movementstarted false;
           
    m_creature->AddSplineFlag(SPLINEFLAG_WALKMODE);
        }


        
    void UpdateAI(const uint32 uiDiff)
        {
            if (!
    pInstance || pInstance->GetData(TYPE_LICH_KING) != IN_PROGRESS
                  
    m_creature->ForcedDespawn();

            if (!
    m_creature->SelectHostileTarget() || !m_creature->getVictim())
                return;

            if (
    timedQuery(SPELL_SPIRITS_BURSTuiDiff) && !movementstarted)
            {
               
    SetCombatMovement(true);
               
    m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim());
               
    movementstarted true;
            }

            if (
    m_creature->getVictim()->GetTypeId() != TYPEID_PLAYER
                return;

            if (
    m_creature->IsWithinDistInMap(m_creature->getVictim(), 1.0f))
            {
                
    doCast(SPELL_SPIRITS_BURST);
                
    m_creature->ForcedDespawn();
            };
        }
    };

    CreatureAIGetAI_mob_vile_spirit(CreaturepCreature)
    {
        return new 
    mob_vile_spiritAI(pCreature);
    }

    struct MANGOS_DLL_DECL  mob_raging_spiritAI : public BSWScriptedAI
    {
        
    mob_raging_spiritAI(Creature *pCreature) : BSWScriptedAI(pCreature
        {
            
    pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
            
    Reset();
        }

        
    ScriptedInstance *pInstance;

        
    void Reset()
        {
            
    resetTimers();
            
    m_creature->SetDisplayId(10771);
        }

        
    void UpdateAI(const uint32 uiDiff)
        {
            if (!
    pInstance || pInstance->GetData(TYPE_LICH_KING) != IN_PROGRESS
                  
    m_creature->ForcedDespawn();

            if (!
    m_creature->SelectHostileTarget() || !m_creature->getVictim())
                return;

                
    timedCast(SPELL_SOUL_SHRIEKuiDiff);
        }
    };

    CreatureAIGetAI_mob_raging_spirit(CreaturepCreature)
    {
        return new 
    mob_raging_spiritAI(pCreature);
    }

    void AddSC_boss_the_lich_king_icc()
    {
        
    Script *newscript;

        
    newscript = new Script;
        
    newscript->Name "boss_the_lich_king_icc";
        
    newscript->GetAI = &GetAI_boss_the_lich_king_icc;
        
    newscript->RegisterSelf();

        
    newscript = new Script;
        
    newscript->Name "boss_tirion_icc";
        
    newscript->GetAI = &GetAI_boss_tirion_icc;
        
    newscript->pGossipHello = &GossipHello_boss_tirion_icc;
        
    newscript->pGossipSelect = &GossipSelect_boss_tirion_icc;
        
    newscript->RegisterSelf();

        
    newscript = new Script;
        
    newscript->Name "mob_ice_sphere_icc";
        
    newscript->GetAI = &GetAI_mob_ice_sphere_icc;
        
    newscript->RegisterSelf();

        
    newscript = new Script;
        
    newscript->Name "mob_defiler_icc";
        
    newscript->GetAI = &GetAI_mob_defiler_icc;
        
    newscript->RegisterSelf();

        
    newscript = new Script;
        
    newscript->Name "mob_strangulate_vehicle";
        
    newscript->GetAI = &GetAI_mob_strangulate_vehicle;
        
    newscript->RegisterSelf();

        
    newscript = new Script;
        
    newscript->Name "mob_vile_spirit";
        
    newscript->GetAI = &GetAI_mob_vile_spirit;
        
    newscript->RegisterSelf();

        
    newscript = new Script;
        
    newscript->Name "mob_raging_spirit";
        
    newscript->GetAI = &GetAI_mob_raging_spirit;
        
    newscript->RegisterSelf();

    }; 
    Can you make this script in your next update is the lichking fight

    PHP Code:
    // Script Generated: 2010-03-29 23:23:48
    // Run this query on your world database
    // UPDATE `creature_template` SET ScriptName='npc_Professor Putricide' WHERE `entry`=36678;
    #include "precompiled.h"


    struct MANGOS_DLL_DECL Professor PutricideAI : public ScriptedAI
    {
        
    Professor PutricideAI(CreaturepCreature) : ScriptedAI(pCreature)
        {
            
    Reset();
        }

        
    uint32 spell1_phase1_Timer;
        
    uint32 spell2_phase1_Timer;
        
    uint32 spell3_phase1_Timer;
        
    uint32 spell4_phase1_Timer;
        
    uint32 spell5_phase1_Timer;
        
    uint32 spell6_phase1_Timer;
        
    uint32 spell1_phase2_Timer;
        
    uint32 spell2_phase2_Timer;
        
    uint32 spell3_phase2_Timer;
        
    uint32 spell4_phase2_Timer;
        
    uint32 spell5_phase2_Timer;
        
    uint32 spell6_phase2_Timer;
        
    uint32 spell1_phase3_Timer;
        
    uint32 spell2_phase3_Timer;
        
    uint32 phase;

        
    void Aggro(UnitpWho)
        {
        }

        
    void KilledUnit(UnitpVictim)
        {
        }

        
    void JustDied(UnitpKiller)
        {
        }

        
    void Reset()
        {
            
    spell1_phase1_Timer 20000+rand()%20000;
            
    spell2_phase1_Timer 80000+rand()%20000;
            
    spell3_phase1_Timer 20000+rand()%20000;
            
    spell4_phase1_Timer 20000+rand()%20000;
            
    spell5_phase1_Timer 50000+rand()%30000;
            
    spell6_phase1_Timer 80000+rand()%20000;
            
    spell1_phase2_Timer 20000+rand()%20000;
            
    spell2_phase2_Timer 60000+rand()%20000;
            
    spell3_phase2_Timer 50000+rand()%30000;
            
    spell4_phase2_Timer 50000+rand()%30000;
            
    spell5_phase2_Timer 30000+rand()%30000;
            
    spell6_phase2_Timer 50000+rand()%40000;
            
    spell1_phase3_Timer 20000+rand()%20000;
            
    spell2_phase3_Timer 10000+rand()%10000;
            
    phase 0;
        }

        
    void UpdateAI(const uint32 diff)
        {
            if (!
    m_creature->SelectHostileTarget() || !m_creature->getVictim())
                return;

            if (
    phase == 1)
            {

                if (
    spell1_phase1_Timer <= diff)
                {
                    
    DoCastSpellIfCan(SelectUnit(SELECT_TARGET_RANDOM0), 70346);
                    
    spell1_phase1_Timer 20000+rand()%20000;
                } else 
    spell1_phase1_Timer -= diff;

                if (
    spell2_phase1_Timer <= diff)
                {
                    
    DoCastSpellIfCan(SelectUnit(SELECT_TARGET_RANDOM0), 71968);
                    
    spell2_phase1_Timer 80000+rand()%20000;
                } else 
    spell2_phase1_Timer -= diff;

                if (
    spell3_phase1_Timer <= diff)
                {
                    
    DoCastSpellIfCan(m_creature->getVictim(), 70672);
                    
    spell3_phase1_Timer 20000+rand()%20000;
                } else 
    spell3_phase1_Timer -= diff;

                if (
    spell4_phase1_Timer <= diff)
                {
                    
    DoCastSpellIfCan(SelectUnit(SELECT_TARGET_RANDOM0), 70701);
                    
    spell4_phase1_Timer 20000+rand()%20000;
                } else 
    spell4_phase1_Timer -= diff;

                if (
    spell5_phase1_Timer <= diff)
                {
                    
    DoCastSpellIfCan(m_creature->getVictim(), 70447);
                    
    spell5_phase1_Timer 50000+rand()%30000;
                } else 
    spell5_phase1_Timer -= diff;

                if (
    spell6_phase1_Timer <= diff)
                {
                    
    DoCastSpellIfCan(SelectUnit(SELECT_TARGET_RANDOM0), 71617);
                    
    spell6_phase1_Timer 80000+rand()%20000;
                } else 
    spell6_phase1_Timer -= diff;
            }

            if (
    phase == 2)
            {

                if (
    spell1_phase2_Timer <= diff)
                {
                    
    DoCastSpellIfCan(SelectUnit(SELECT_TARGET_RANDOM0), 70346);
                    
    spell1_phase2_Timer 20000+rand()%20000;
                } else 
    spell1_phase2_Timer -= diff;

                if (
    spell2_phase2_Timer <= diff)
                {
                    
    DoCastSpellIfCan(m_creature->getVictim(), 71968);
                    
    spell2_phase2_Timer 60000+rand()%20000;
                } else 
    spell2_phase2_Timer -= diff;

                if (
    spell3_phase2_Timer <= diff)
                {
                    
    DoCastSpellIfCan(SelectUnit(SELECT_TARGET_RANDOM0), 70672);
                    
    spell3_phase2_Timer 50000+rand()%30000;
                } else 
    spell3_phase2_Timer -= diff;

                if (
    spell4_phase2_Timer <= diff)
                {
                    
    DoCastSpellIfCan(m_creature->getVictim(), 70447);
                    
    spell4_phase2_Timer 50000+rand()%30000;
                } else 
    spell4_phase2_Timer -= diff;

                if (
    spell5_phase2_Timer <= diff)
                {
                    
    DoCastSpellIfCan(SelectUnit(SELECT_TARGET_RANDOM0), 71278);
                    
    spell5_phase2_Timer 30000+rand()%30000;
                } else 
    spell5_phase2_Timer -= diff;

                if (
    spell6_phase2_Timer <= diff)
                {
                    
    DoCastSpellIfCan(SelectUnit(SELECT_TARGET_RANDOM0), 72297);
                    
    spell6_phase2_Timer 50000+rand()%40000;
                } else 
    spell6_phase2_Timer -= diff;
            }

            if (
    phase == 3)
            {

                if (
    spell1_phase3_Timer <= diff)
                {
                    
    DoCastSpellIfCan(m_creature71603);
                    
    spell1_phase3_Timer 20000+rand()%20000;
                } else 
    spell1_phase3_Timer -= diff;

                if (
    spell2_phase3_Timer <= diff)
                {
                    
    DoCastSpellIfCan(SelectUnit(SELECT_TARGET_RANDOM0), 72672);
                    
    spell2_phase3_Timer 10000+rand()%10000;
                } else 
    spell2_phase3_Timer -= diff;
            }

            
    DoMeleeAttackIfReady();
        }
    };

    CreatureAIGetAIProfessor Putricide(CreaturepCreature)
    {
        return new 
    Professor PutricideAI (pCreature);
    }

    void AddSC_Professor Putricide()
    {
        
    Script *newscript;
        
    newscript = new Script;
        
    newscript->Name "npc_Professor Putricide";
        
    newscript->GetAI = &GetAIProfessor Putricide;
        
    newscript->RegisterSelf();

    this is the script from Professor Putricide or is this wrong for mangos
    Last edited by ellenya; 05-09-10 at 01:12 PM.

  9. #358
    Banned

    Join Date
    Jan 2010
    Posts
    41
    Post Thanks / Like
    Rep Power
    0
    Reputation
    6
    scripts/northrend/icecrown_citadel/icecrown_citadel at master from rsa's scriptdev2 - GitHub

    on the page you will find scritps

    maybe you can even use them in your next update. I'm trying to just
    help

  10. #359
    Senior Sergeant
    Narcoleptic's Avatar
    Join Date
    Aug 2010
    Posts
    137
    Post Thanks / Like
    Rep Power
    15
    Reputation
    15
    Friend i found some odd problems in game...first this only happens when you create a new character, the old ones work just fine dont ask me why...maybe the area?? or faction...well the first problem is the reputation (not major problem) you start at lvl 1 with all the factions and some more called test??? see the screenshot...
    the second one is with the sellers...and this one is the most strange because like i told you i checked with the old character and that not happens only the new character have all this problems maybe because of the updates...some items appear to be broken like the throwing weapons...see the screenshot and the last thing...did you changed the ratios?? Xp and that stuff...? because when i created this new character and play for a while i got to lvl 6 like in a blink and with the old character that didnīt happen...its very strange but somethingīs wrong but i donīt know what...
    Attached Images Attached Images

  11. #360
    Senior Sergeant
    Narcoleptic's Avatar
    Join Date
    Aug 2010
    Posts
    137
    Post Thanks / Like
    Rep Power
    15
    Reputation
    15

    Register to remove this ad
    Ok update the reputation problem must have been some crazy computer freakout so forget about it...the other problem of the sellers still continues the one from the photo and that i tested are from Dun Morogh the starting area for Dwarfs and Gnomes...
    thanks

 

 
Page 36 of 112 FirstFirst ... 2126323334353637383940465186106 ... LastLast

Visitors found this page by searching for:

hobbits

quice

mangos 3.3.5 repack

mangos repack 3.3.5

how to make server wow 3.5.5 level 255

cthulhu patch

3.3.5 mangos repack

patcher 64 bit descargar

gorkun ironskull

sholazar basin

warcraft sholazar basin background

ulduar

TRMs Cthulhu Ftagn Dual-Database MaNGOS Repackmangos 3.3.5.12340mangos 3.3.5a linux repackAHbotrepack 3.3.5 trinity mimirion train trinitycorehobbits lord of the ringsmangos repack 3.3.5aMANGO CTHULHU 123dual-database-mangos-repack-3-3-5-12340-32-64-bit-4286index100wow repack the culling of stratholme trm releasedescargar arcemu 3.1.3 wow megaupload255 lvl wow repack 3.3.5agithub trinity 71603booty bay wallpaperdual wallpaper windows 7TRMs Cthulhu Ftagn infinity mangos repackrepack trinity 3.3.5 debugwow repack linuxrepack 3.3.5 a mangos fullmangos 3.5.5 repacktrinity 3.3.5a linux repack3.3.5a linux repackDownload MaNGOS Repack 3.3.5TRMs Cthulhu Ftagn RepackMangos 3.3.5 databasewow 3.3.5a 255 repackcthulhuRepack Ver.1.27-Client 3.3.5a (12340)ragnaros lairforge of souls questwow repack 3.3.5a 255lvlhackear wow 3.3.5 con parche customno-ip.org dnssearch zonealarmlotr hobbitswow 3.3.5 mangos repack 32 bit server
SEO Blog

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
All times are GMT -5. The time now is 10:54 PM.
Powered by vBulletin® Copyright ©2000-2024, Jelsoft Enterprises Ltd.
See More links by ForumSetup.net. Feedback Buttons provided by Advanced Post Thanks / Like (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
vBulletin Licensed to: MMOPro.org