void UpdateAI(uint32 diff) { if( JustSummoned ) { despawnTimer = 1; JustSummoned = false; if( m_pInstance ) { if( !m_pInstance->IsEncounterInProgress() || m_pInstance->GetData(DATA_EREGOS)==IN_PROGRESS ) { if( me->GetVehicleKit() && me->IsSummon() ) if( !me->GetVehicleKit()->GetPassenger(0) ) { TempSummon* ts = (TempSummon*)me; if( Unit* summoner = ts->GetSummoner() ) { if( m_pInstance->GetData(DATA_UROM) == DONE ) { switch( me->GetEntry() ) { case 27692: me->m_spells[5] = 50344; break; case 27755: me->m_spells[5] = 49592; break; case 27756: me->m_spells[5] = 50253; break; } } uint32 spell = 0; switch (me->GetEntry()) { case 27692: spell = 49427; break; case 27755: spell = 49459; break; case 27756: spell = 49463; break; } //summoner->EnterVehicle(me); if (spell) me->CastSpell(summoner, spell, true); me->SetCanFly(true); me->SetSpeed(MOVE_FLIGHT, me->GetSpeedRate(MOVE_RUN), true); } } } else { me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); me->DisappearAndDie(); me->DespawnOrUnsummon(1); return; } } } if (despawnTimer) { if (despawnTimer >= 5000) { despawnTimer = 0; me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); me->DisappearAndDie(); me->DespawnOrUnsummon(1); return; } else despawnTimer += diff; } VehicleAI::UpdateAI(diff); }