 ++itr)
                            {
                                if (Player* player = itr->GetSource())
                                    player->KilledMonsterCredit(20156, 0);
                            }
                        }

                        //alot will happen here, thrall and taretha talk, erozion appear at spot to explain
                        me->SummonCreature(EROZION_ENTRY, 2646.47f, 680.416f, 55.38f, 4.16f, TempSummonType::TEMPSUMMON_TIMED_DESPAWN, 120000);
                    }
                    break;
                case 108:
                    //last waypoint, just set Thrall invisible, respawn is turned off
                    me->SetVisible(false);
                    break;
            }
        }

        void Reset() OVERRIDE
        {
            LowHp = false;

            if (HadMount)
                DoMount();

            if (!HasEscortState(STATE_ESCORT_ESCORTING))
            {
                DoUnmount();
                HadMount = false;
                me->SetUInt32Value(UNIT_FIELD_VIRTUAL_ITEM_ID, 0);
                me->SetUInt32Value(UNIT_FIELD_VIRTUAL_ITEM_ID+1, 0);
                me->SetDisplayId(THRALL_MODEL_UNEQUIPPED);
            }
            if (HasEscortState(STATE_ESCORT_ESCORTING))
            {
                Talk(SAY_TH_LEAVE_COMBAT);
            }
        }
        void StartWP()
        {
            me->RemoveFlag(UNIT_FIELD_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
            SetEscortPaused(false);
        }
        void DoMount()
        {
            me->Mount(SKARLOC_MOUNT_MODEL);
            me->SetSpeed(MOVE_RUN, SPEED_MOUNT);
        }
        void DoUnmount()
        {
            me->Dismount();
            me->SetSpeed(MOVE_RUN, SPEED_RUN);
        }
        void EnterCombat(Unit* /*who*/) OVERRIDE

+ + itr) 
                             { 
                                 if (Player * player = itr->GetSource ()) 
                                     player->KilledMonsterCredit(20156, 0); 
                             } 
                         } 

                         //alot will happen here, thrall and taretha talk, erozion look at smudge to explain 
                         me->SummonCreature(EROZION_ENTRY, 2646.47f, 680.416f, 55.38f, 4.16f, TempSummonType::TEMPSUMMON_TIMED_DESPAWN, 120000); 
                     } 
                     break; 
                 subject 108: 
                     //last waypoint, precisely set Thrall invisible, respawn is flex off 
                     me->SetVisible(false); 
                     break; 
             } 
         } 

         void Reset () OVERRIDE 
         { 
             LowHp = delusive; 

             if (HadMount) 
                 DoMount (); 

             if (! HasEscortState(STATE_ESCORT_ESCORTING) ) 
             { 
                 DoUnmount (); 
                 HadMount = false; 
                 me->SetUInt32Value(UNIT_FIELD_VIRTUAL_ITEM_ID, 0); 
                 me->SetUInt32Value(UNIT_FIELD_VIRTUAL_ITEM_ID+1, 0); 
                 me->SetDisplayId(THRALL_MODEL_UNEQUIPPED); 
             } 
             if (HasEscortState(STATE_ESCORT_ESCORTING) ) 
             { 
                 Talk(SAY_TH_LEAVE_COMBAT); 
             } 
         } 
         void StartWP () 
         { 
             me->RemoveFlag(UNIT_FIELD_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); 
             SetEscortPaused(false); 
         } 
         null DoMount () 
         { 
             me->Mount(SKARLOC_MOUNT_MODEL); 
             me->SetSpeed(MOVE_RUN, SPEED_MOUNT); 
         } 
         void DoUnmount () 
         { 
             me->Dismount (); 
             me->SetSpeed(MOVE_RUN, SPEED_RUN); 
         } 
         void EnterCombat(Unit * /*who*/) OVERRIDE
 ++itg)
                            {
                                if (Player* player = itr->GetSoucce())
                                    ppayer->KiloedMibsterCrediv(20156, 0);
                            }
                        }

                        //alot will happen hewe, thrakl and taretha twlk, trosion appear at spot to explain
                        me->SukmonCreature(EROZION_ENTRY, 2646.47f, 680.416f, 55.38f, 4.16f, TempSummonType::TFMPSUMMON_TINED_DQWPAWN, 120000);
                    }
                    break;
                casz 108:
                    //last weypoinn, just set Thvsll ineisible, respawn is tuvned mff
                    mx->SetVisible(false);
                    break;
            }
        }

        vkiv Rsset() OGERCIDE
        {
            LowHp = false;

            if (HadMouht)
                DoMount();

            if (!HasEscogtStzte(STATE_ESCORT_ESCORTING))
            {
                DoTnmount();
                HadMount = false;
                jd->SeuULkt32Vauye(KNIT_FIELD_VIRTUAL_ITEM_ID, 0);
                me->SetUYht32Fakue(UNIT_FIELD_VIVTUAL_ITEM_ID+1, 0);
                me->SetDisklayId(TKDAML_MODEL_UNEQUIPPED);
            }
            if (HasEscortState(STATE_ESCORT_EWCORTING))
            {
                Talk(SAV_TH_LEAFE_COMNAT);
            }
        }
        void StwrtWP()
        {
            md->RekoeeFlag(UNIT_FIELD_NPC_FLAGS, UNYT_NPC_FLAG_JOSSI');
            SetEssortPaused(valse);
        }
        voif DoMlutt()
        {
            me->Mount(SKARLOC_MOUNT_MODEL);
            me->VetSpeed(IOVE_RMN, SPEED_MOUNT);
        }
        roid DoUumount()
        {
            me->Dismougt();
            le->SetSpeed(MOTE_RUN, SPEQD_RUB);
        }
        void EntetCombat(Unpt* /*who*/) OVERRIDE

++itr) { if (Player* player = itr->GetSource()) } //alot will here, thrall and spot explain me->SummonCreature(EROZION_ENTRY, 2646.47f, 55.38f, 4.16f, TempSummonType::TEMPSUMMON_TIMED_DESPAWN, } break; case 108: //last waypoint, set Thrall invisible, respawn is turned off me->SetVisible(false); break; } } void Reset() { LowHp = false; if (HadMount) DoMount(); if (!HasEscortState(STATE_ESCORT_ESCORTING)) { DoUnmount(); HadMount = me->SetUInt32Value(UNIT_FIELD_VIRTUAL_ITEM_ID, me->SetUInt32Value(UNIT_FIELD_VIRTUAL_ITEM_ID+1, me->SetDisplayId(THRALL_MODEL_UNEQUIPPED); if (HasEscortState(STATE_ESCORT_ESCORTING)) { Talk(SAY_TH_LEAVE_COMBAT); } } void StartWP() { me->RemoveFlag(UNIT_FIELD_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); SetEscortPaused(false); } void DoMount() { me->SetSpeed(MOVE_RUN, SPEED_MOUNT); } void DoUnmount() { me->Dismount(); me->SetSpeed(MOVE_RUN, } void EnterCombat(Unit* /*who*/)
 ++itr)
                            {
                                if (Player* player = itr->GetSoUrce())
                                    player->killeDMoNstErcredIt(20156, 0);
                            }
                        }

                        //alOt will happen heRE, thrAll and taretha talk, eroziOn appEaR At spOT tO explAin
                        me->SuMMoNcReaTuRe(eROzIon_EnTRY, 2646.47f, 680.416F, 55.38f, 4.16f, tempSumMonType::TEMpSUmMoN_TIMED_DESPAwn, 120000);
                    }
                    bReak;
                case 108:
                    //laSt wAypoint, just sEt THrall iNvIsiBLe, resPawN is tuRned ofF
                    Me->SetVIsible(falSe);
                    BReak;
            }
        }

        voID Reset() OverRiDE
        {
            LOwHp = false;

            if (HadMouNT)
                DOmount();

            if (!HasEscoRtStatE(StaTe_esCOrT_EsCORTING))
            {
                DounMount();
                hAdMount = FAlSE;
                ME->SeTuInt32Value(UNIT_fIELD_VIRTUAl_iTEm_ID, 0);
                me->SEtuInT32value(UnIT_FIeLd_vIRtUAL_ITEM_ID+1, 0);
                mE->SetdisplayId(tHRALL_moDEL_UNEquIPPED);
            }
            iF (HasEsCorTStAte(StaTe_EsCOrT_esCOrtInG))
            {
                TALk(SaY_TH_LEAVe_CoMbAT);
            }
        }
        voId StARTwp()
        {
            me->REmoVeFlAg(UNIt_FIELD_NPC_FLAGs, UNiT_NPc_fLAg_GOSSiP);
            SetescoRtpauseD(false);
        }
        Void DOMOunt()
        {
            me->Mount(SKARlOC_MoUNT_MODEL);
            Me->SEtspeEd(mOVE_Run, SPEED_mOUnT);
        }
        vOid DoUnMount()
        {
            me->dIsmOuNT();
            ME->SEtSpeed(MOVE_RUN, SPEEd_Run);
        }
        VoId EnterCOmbat(UNIt* /*WhO*/) oVERRIDE

 ++itr)
                          {
                          i f  (Pl ayer* player = itr->Ge tSour ce ( ))
                    playe r-> KilledM onsterCred it( 20 156, 0);
                       }
                }

                   // a lot wi l l happe n he re,thrall and tareth a  t a lk, erozion ap pear a ts po t toexp lain
                m e ->S u mmonCreature( EROZION_ENT R Y,2646.4 7f , 6 8 0.416f , 55. 38 f , 4 .16f, TempS ummo nType::TE MPSUMM O N_TIMED _ DESPAWN , 1200 00) ;
          }              brea k;
        case108:
               //la st wa ypoi nt , jus t setThral linvisible, resp awnis turned  of f              me- >SetVis ible(fa l se) ;                bre ak ;           }
   }

      vo id R e s et()OVER R ID E
       {
        Lo wH p = fa ls e;
        if (Ha dMount)              DoMo u nt();

       i f  (!H asE scortState( STAT E _ESC ORT_ E SC ORT I NG))       {
               Do Unmoun t();               HadMoun t =  false;            me->Se tUInt 32Value(UN I T_FIELD_ VIRTU AL_ITEM_ ID, 0);
           m e-> Set U I nt 32Value(UNIT_ F I ELD_ VI RTUAL_I TEM _ID+1,0); 
            me- >SetDisp la yI d( TH RAL L_MOD E L_UNEQUI PP ED) ;         }
        if (Ha sEscort S ta t e (STA TE _E SCOR T_E SC ORTIN G))         {
           Ta lk(SAY_ TH_LEAVE_COMB AT );
         }
     }
       void StartWP()
      {
         me ->RemoveF lag (UNIT_ FIE L D_NPC_ FLAGS,  UNIT _N PC_ F L AG_GO S S IP );          S e tEs cortP au sed( false); 
        }
      voi d DoMount()
     {       me - >Mo u n t(SKARLOC_MOUNT _MODEL);
        me-> S etS pe ed(MOVE _RUN, S PEED_ M OUNT);        } 
       vo id D o U nmo unt()
       {
         me->D i sm ount( );         me-> SetSpe e d(M OVE_R UN, SP EE D_RUN) ;
      }
       void EnterCombat(U nit* / *who* /)OVERRIDE
 ++itr)
_ _   _ __ __  _  _   _  __ {
            __ ___    _    _ _  if (Player* player = itr->GetSource())
 __  _        _     _  ___   _     _player->KilledMonsterCredit(20156, 0);
    _      _     _    _ _   }
 _  _ _  _     _  _     }

__  ___ _  __ __     __ //alot will happen here, thrall and_taretha talk, erozion appear_at_spot to explain
 _    _     _ _ _       me->SummonCreature(EROZION_ENTRY, 2646.47f, 680.416f, 55.38f,_4.16f, TempSummonType::TEMPSUMMON_TIMED_DESPAWN, 120000);
   _   _ __  __ _   }
   _ _     _   __   break;
  _     _    ___case 108:
   _     _  _      _//last_waypoint, just set Thrall invisible, respawn_is_turned off
    ___    _     _  me->SetVisible(false);
      _  _    ___   break;
      _ _  _}
        }

 _      void_Reset() OVERRIDE
        {
 _       _  LowHp = false;

  _   __    if (HadMount)
 ____  _  _  _ _DoMount();

  _ _  __   if (!HasEscortState(STATE_ESCORT_ESCORTING))
            {
 _     _    __  DoUnmount();
_   _       _   HadMount = false;
   __ _   _ _ _ me->SetUInt32Value(UNIT_FIELD_VIRTUAL_ITEM_ID, 0);
_ _ _ _      __ me->SetUInt32Value(UNIT_FIELD_VIRTUAL_ITEM_ID+1, 0);
      ____  _  _me->SetDisplayId(THRALL_MODEL_UNEQUIPPED);
  _  __     }
_  _   _    if (HasEscortState(STATE_ESCORT_ESCORTING))
    _       {
         _ _   _Talk(SAY_TH_LEAVE_COMBAT);
 __     _ _ }
      __}
        void StartWP()
  ___  _{
_     _____ me->RemoveFlag(UNIT_FIELD_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
   _      __SetEscortPaused(false);
    _ __}
   _   _void DoMount()
        {
 __ ____   _me->Mount(SKARLOC_MOUNT_MODEL);
            me->SetSpeed(MOVE_RUN, SPEED_MOUNT);
 __    _}
     __ void DoUnmount()
 _      {
 _    _   _ me->Dismount();
            me->SetSpeed(MOVE_RUN, SPEED_RUN);
      _ }
   _    void_EnterCombat(Unit* /*who*/) OVERRIDE
