Exemple #1
0
        public FlameOfOrder(Point3D location, Map map)
            : base(0x19AB)
        {
            Movable = false;
            Light   = LightType.Circle225;

            MoveToWorld(location, map);

            m_Barriers    = new List <EnergyBarrier>(m_BarrierLocations.Length);
            m_Blockers    = new List <Blocker>(m_BarrierLocations.Length);
            m_LOSBlockers = new List <LOSBlocker>(m_BarrierLocations.Length);
            m_MsgTriggers = new List <SBMessageTrigger>(m_MsgTriggerLocations.Length);

            foreach (Point3D loc in m_BarrierLocations)
            {
                m_Barriers.Add(new EnergyBarrier(loc, map));

                Blocker blocker = new Blocker();
                blocker.MoveToWorld(loc, map);
                m_Blockers.Add(blocker);

                LOSBlocker losblocker = new LOSBlocker();
                losblocker.MoveToWorld(loc, map);
                m_LOSBlockers.Add(losblocker);
            }

            foreach (Point3D loc in m_MsgTriggerLocations)
            {
                SBMessageTrigger trigger = new SBMessageTrigger(this);
                trigger.MoveToWorld(loc, map);
                m_MsgTriggers.Add(trigger);
            }
        }
Exemple #2
0
        public FlameOfOrder( Point3D location, Map map )
            : base(0x19AB)
        {
            Movable = false;
            Light = LightType.Circle225;

            MoveToWorld( location, map );

            m_Barriers = new List<EnergyBarrier>( m_BarrierLocations.Length );
            m_Blockers = new List<Blocker>( m_BarrierLocations.Length );
            m_MsgTriggers = new List<SBMessageTrigger>( m_MsgTriggerLocations.Length );

            foreach ( Point3D loc in m_BarrierLocations )
            {
                m_Barriers.Add( new EnergyBarrier( loc, map ) );

                Blocker blocker = new Blocker();
                blocker.MoveToWorld( loc, map );
                m_Blockers.Add( blocker );
            }

            foreach ( Point3D loc in m_MsgTriggerLocations )
            {
                SBMessageTrigger trigger = new SBMessageTrigger( this );
                trigger.MoveToWorld( loc, map );
                m_MsgTriggers.Add( trigger );
            }
        }
Exemple #3
0
        public override void OnSpeech(SpeechEventArgs e)
        {
            string mantra = e.Speech.ToLower();

            if (Visible && e.Mobile.InRange(this, 2) && mantra == "ord")
            {
                Visible = false;

                for (var index = 0; index < m_Barriers.Count; index++)
                {
                    EnergyBarrier barrier = m_Barriers[index];
                    barrier.Active = false;
                }

                for (var index = 0; index < m_Blockers.Count; index++)
                {
                    Blocker blocker = m_Blockers[index];
                    blocker.Delete();
                }

                for (var index = 0; index < m_LOSBlockers.Count; index++)
                {
                    LOSBlocker losblocker = m_LOSBlockers[index];
                    losblocker.Delete();
                }

                m_Blockers.Clear();
                m_LOSBlockers.Clear();

                Timer.DelayCall(TimeSpan.FromMinutes(2.0), RestoreBarrier);
            }
        }
Exemple #4
0
        protected void RestoreBarrier()
        {
            for (var index = 0; index < m_Barriers.Count; index++)
            {
                EnergyBarrier barrier = m_Barriers[index];
                barrier.Active = true;
            }

            for (var index = 0; index < m_BarrierLocations.Length; index++)
            {
                Point3D loc = m_BarrierLocations[index];

                Blocker blocker = new Blocker();

                blocker.MoveToWorld(loc, Map);
                m_Blockers.Add(blocker);

                LOSBlocker losblocker = new LOSBlocker();

                losblocker.MoveToWorld(loc, Map);
                m_LOSBlockers.Add(losblocker);
            }

            Visible = true;
        }
Exemple #5
0
        public override void OnAfterDelete()
        {
            base.OnAfterDelete();

            for (var index = 0; index < m_Blockers.Count; index++)
            {
                Blocker blocker = m_Blockers[index];
                blocker.Delete();
            }

            for (var index = 0; index < m_LOSBlockers.Count; index++)
            {
                LOSBlocker losblocker = m_LOSBlockers[index];
                losblocker.Delete();
            }

            for (var index = 0; index < m_MsgTriggers.Count; index++)
            {
                SBMessageTrigger trigger = m_MsgTriggers[index];
                trigger.Delete();
            }

            for (var index = 0; index < m_Barriers.Count; index++)
            {
                EnergyBarrier barrier = m_Barriers[index];
                barrier.Delete();
            }
        }
Exemple #6
0
        protected void RestoreBarrier()
        {
            foreach (EnergyBarrier barrier in m_Barriers)
            {
                barrier.Active = true;
            }

            foreach (Point3D loc in m_BarrierLocations)
            {
                Blocker blocker = new Blocker();
                blocker.MoveToWorld(loc, Map);
                m_Blockers.Add(blocker);
            }

            Visible = true;
        }
        private void CTF_Callback()
        {
            if (m_Stone != null)
            {
                if (m_Stone.Validate())
                {
                    m_Stone.JoinStone.RandomTeam = true;
                    m_Stone.JoinStone.Game       = m_Stone.Game;
                    m_Stone.Game.OpenJoin        = true;

                    if (m_Stone.Doors != null)
                    {
                        m_Blocker = new Blocker();
                        m_Blocker.MoveToWorld(m_Stone.Doors.Location, m_Stone.Doors.Map);

                        List <BaseDoor> list = m_Stone.Doors.GetChain();

                        for (int i = 0; i < list.Count; ++i)
                        {
                            ((BaseDoor)list[i]).Open = true;
                        }
                    }
                    else
                    {
                        m_Blocker = null;
                    }

                    m_Stone.JoinStone.Visible = true;

                    new AutoCTFFinTimer(m_Stone, m_Blocker).Start();

                    SetDate();
                }
                else
                {
                    m_Stone.Activate(false);
                }
            }
            else
            {
                Stop();
            }
        }
        private static void GenerateCoral_OnCommand(CommandEventArgs e)
        {
            e.Mobile.SendMessage("Generating Corals...");

            int count = 0;
            for(int i = 0; i < limits.Length; i++)
            {
                Point2D actual = limits[i];
                Point2D next = (i == limits.Length - 1 ? limits[0] : limits[i + 1]);

                for (int x = actual.X, y = actual.Y; x != next.X || y != next.Y;)
                {
                    if (x != next.X)
                    {
                        if (x < next.X) x++;
                        else x--;
                    }
                    if (y != next.Y)
                    {
                        if (y < next.Y) y++;
                        else y--;
                    }
                    
                    Static rock = new Static(rocks[Utility.Random(0, rocks.Count)]);
                    Item blocker = new Blocker();
                    Item losBlocker = new LOSBlocker();

                    int z = map.GetAverageZ(x, y);  // on récupère la hauteur du sol à cet endroit
                    rock.MoveToWorld(new Point3D(x, y, z), map);    // le rocher pour la forme
                    blocker.MoveToWorld(new Point3D(x, y, z), map); // un blocker pour empêcher de passer même avec un sea horse par exemple
                    losBlocker.MoveToWorld(new Point3D(x, y, z), map);  // pour empêcher tout sort de téléport de fonctionner

                    count++;
                }
            }
            e.Mobile.SendMessage(String.Format("{0} Corals have been generated !", count));
        }
Exemple #9
0
            public void CreateTeleportersMap5(Map map)
            {
                // UnderWorld to SA
                CreateTeleporter(1125, 1076, -117, 520, 920, 39, map, Map.TerMur, false);
                CreateTeleporter(1126, 1076, 15, 521, 920, 39, map, Map.TerMur, false);
                //SA to Under
                CreateTeleporter(520, 919, 39, 1025, 1075, -117, map, Map.TerMur, false);
                CreateTeleporter(521, 919, 39, 1026, 1075, -117, map, Map.TerMur, false);
                CreateTeleporter(522, 919, 39, 1026, 1075, -117, map, Map.TerMur, false);
                Blocker b1 = new Blocker();
                Point3D b1l = new Point3D();
                b1l.X = 519;
                b1l.Y = 919;
                b1l.Z = 39;
                b1.Location = b1l;
                b1.Map = Map.TerMur;
                World.AddItem(b1);
                //Holy City to Tomb of Kings
                CreateTeleporter(996, 3841, -41, 33, 240, 5, map, Map.TerMur, false);
                CreateTeleporter(997, 3841, -41, 34, 240, 5, map, Map.TerMur, false);
                CreateTeleporter(998, 3841, -41, 35, 240, 5, map, Map.TerMur, false);
                CreateTeleporter(999, 3841, -41, 36, 240, 5, map, Map.TerMur, false);
                CreateTeleporter(1000, 3841, -41, 37, 240, 5, map, Map.TerMur, false);
                //Tomb of Kings To Holy City
                CreateTeleporter(33, 241, 7, 996, 3842, -41, map, Map.TerMur, false);
                CreateTeleporter(34, 241, 7, 997, 3842, -41, map, Map.TerMur, false);
                CreateTeleporter(35, 241, 7, 998, 3842, -41, map, Map.TerMur, false);
                CreateTeleporter(36, 241, 7, 999, 3842, -41, map, Map.TerMur, false);
                CreateTeleporter(37, 241, 7, 1000, 3842, -41, map, Map.TerMur, false);
                //Tomb of Kings to Abyss
                Point3D loc = new Point3D();
                loc.X = 37;
                loc.Y = 28;
                loc.Z = 3;
                Point3D dest = new Point3D();
                dest.X = 946;
                dest.Y = 70;
                dest.Z = 75;
                Moongate mg = new Moongate(dest, Map.TerMur);
                mg.Location = loc;
                mg.Map = Map.TerMur;
                World.AddItem(mg);
                //Abyss to Tomb of Kings
                Point3D loc2 = new Point3D();
                loc2.X = 946;
                loc2.Y = 70;
                loc2.Z = 75;
                Point3D dest2 = new Point3D();
                dest2.X = 37;
                dest2.Y = 28;
                dest2.Z = 3;
                Moongate mg2 = new Moongate(dest2, Map.TerMur);
                mg2.Location = loc2;
                mg2.Map = Map.TerMur;
                World.AddItem(mg2);
                //Abyss to Primevil Lich Spawn
                CreateTeleporter(511, 584, 11, 6992, 1367, -15, map, Map.Felucca, false);
                CreateTeleporter(512, 584, 11, 6992, 1367, -15, map, Map.Felucca, false);
                CreateTeleporter(513, 584, 11, 6993, 1367, -15, map, Map.Felucca, false);
                CreateTeleporter(514, 584, 11, 6993, 1367, -15, map, Map.Felucca, false);
                //Abyssal Inferno Spawn to Abyss
                CreateTeleporter(7149, 756, 25, 511, 585, 11, map, Map.Felucca, false);

                //Underworld to fireisland
                CreateTeleporter(1125, 1215, 5, 4194, 3261, 5, map, Map.Trammel, false);
                CreateTeleporter(1126, 1215, 5, 4194, 3261, 5, map, Map.Trammel, false);
                CreateTeleporter(1127, 1215, 5, 4194, 3261, 5, map, Map.Trammel, false);
                CreateTeleporter(1128, 1215, 5, 4194, 3261, 5, map, Map.Trammel, false);
                CreateTeleporter(1129, 1215, 5, 4194, 3261, 5, map, Map.Trammel, false);
                CreateTeleporter(1130, 1215, 5, 4194, 3261, 5, map, Map.Trammel, false);
                CreateTeleporter(1131, 1215, 5, 4194, 3261, 5, map, Map.Trammel, false);

                //Underworld to Naverys Lair
                CreateTeleporter(1080, 974, -20, 1081, 883, -5, map, Map.TerMur, false);
                CreateTeleporter(1080, 975, -20, 1081, 883, -5, map, Map.TerMur, false);
                CreateTeleporter(1081, 974, -20, 1081, 883, -5, map, Map.TerMur, false);
                CreateTeleporter(1081, 975, -20, 1081, 883, -5, map, Map.TerMur, false);

                //Naverys Lair To Underworld
                CreateTeleporter(1079, 882, 0, 1080, 977, -21, map, Map.TerMur, false);
                CreateTeleporter(1079, 883, 0, 1080, 977, -21, map, Map.TerMur, false);
                CreateTeleporter(1079, 884, 0, 1080, 977, -21, map, Map.TerMur, false);
                CreateTeleporter(1079, 885, 0, 1080, 977, -21, map, Map.TerMur, false);

                //First Dragons Lair Entrance to Dragons Lair Entrance two
                CreateTeleporter(841, 272, 30, 433, 152, 0, map, Map.TerMur, false);
                CreateTeleporter(841, 273, 30, 433, 153, 0, map, Map.TerMur, false);
                CreateTeleporter(841, 272 + 15, 30, 433, 167, 0, map, Map.TerMur, false);
                CreateTeleporter(841, 273 + 15, 30, 433, 166, 0, map, Map.TerMur, false);

                //Dragons Lair Entrance two to First Dragons Lair Entrance
                CreateTeleporter(434, 152, 0, 842, 273, 30, map, Map.TerMur, false);
                CreateTeleporter(434, 152, 0, 842, 273, 30, map, Map.TerMur, false);
                CreateTeleporter(434, 152+ 15, 0, 842, 273, 30, map, Map.TerMur, false);
                CreateTeleporter(434, 152 + 15, 0, 842, 273, 30, map, Map.TerMur, false);
            }
		public AutoCTFFinTimer( AutoCTFStone stone, Blocker blocker ) : base( TimeSpan.Zero, TimeSpan.FromMinutes( 1.0 ) )
		{
			m_Stone = stone;
			m_Start = DateTime.Now + m_Stone.Duration;
			m_Blocker = blocker;
		}
		private void CTF_Callback()
		{
			if ( m_Stone != null )
			{
				if ( m_Stone.Validate() )
				{
					m_Stone.JoinStone.RandomTeam = true;
					m_Stone.JoinStone.Game = m_Stone.Game;
					m_Stone.Game.OpenJoin = true;

					if ( m_Stone.Doors != null )
					{
						m_Blocker = new Blocker();
						m_Blocker.MoveToWorld( m_Stone.Doors.Location, m_Stone.Doors.Map );

						ArrayList list = m_Stone.Doors.GetChain();

						for ( int i = 0; i < list.Count; ++i )
							((BaseDoor)list[i]).Open = true;
					}
					else
						m_Blocker = null;

					m_Stone.JoinStone.Visible = true;

					new AutoCTFFinTimer( m_Stone, m_Blocker ).Start();

					SetDate();
				}
				else
					m_Stone.Activate( false );
			}
			else
				Stop();
		}
Exemple #12
0
        protected void RestoreBarrier()
        {
            foreach ( EnergyBarrier barrier in m_Barriers )
                barrier.Active = true;

            foreach ( Point3D loc in m_BarrierLocations )
            {
                Blocker blocker = new Blocker();
                blocker.MoveToWorld( loc, Map );
                m_Blockers.Add( blocker );
            }

            Visible = true;
        }
 public AutoCTFFinTimer(AutoCTFStone stone, Blocker blocker) : base(TimeSpan.Zero, TimeSpan.FromMinutes(1.0))
 {
     m_Stone   = stone;
     m_Start   = DateTime.Now + m_Stone.Duration;
     m_Blocker = blocker;
 }
Exemple #14
0
        private static void GenQuest_Command( CommandEventArgs e )
        {
            e.Mobile.SendMessage( "Creating KR Starting Quest..." );

            // var declarations
            KRStartingQuestTrigger trigger;
            KRStartingQuestContainer container;
            KRStartingQuestGate gate;
            KRWaypointRemover remover;
            KRStartingQuestTeleporter teleporter;
            CreatureSpawner spawner;

            trigger = new KRStartingQuestTrigger( 3 );
            trigger.MoveToWorld( new Point3D( 3646, 2674, -1 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 3 );
            trigger.MoveToWorld( new Point3D( 3647, 2674, -2 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 3 );
            trigger.MoveToWorld( new Point3D( 3648, 2674, -2 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 3 );
            trigger.MoveToWorld( new Point3D( 3649, 2674, -2 ), Map.Trammel );

            trigger = new KRStartingQuestTrigger( 4 );
            trigger.MoveToWorld( new Point3D( 3647, 2666, -3 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 4 );
            trigger.MoveToWorld( new Point3D( 3648, 2666, -3 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 4 );
            trigger.MoveToWorld( new Point3D( 3649, 2666, -2 ), Map.Trammel );

            trigger = new KRStartingQuestTrigger( 5 );
            trigger.MoveToWorld( new Point3D( 3646, 2656, -2 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 5 );
            trigger.MoveToWorld( new Point3D( 3647, 2656, -4 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 5 );
            trigger.MoveToWorld( new Point3D( 3648, 2656, -3 ), Map.Trammel );

            for ( int i = 0; i < 12; i++ )
            {
                trigger = new KRStartingQuestTrigger( 5 );
                trigger.MoveToWorld( new Point3D( 3649 + i, 2656, -2 ), Map.Trammel );
            }

            container = new KRStartingQuestContainer( 0x9A9 );
            container.MoveToWorld( new Point3D( 3646, 2652, -3 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3E );
            container.MoveToWorld( new Point3D( 3649, 2650, 2 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3650, 2650, 2 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3651, 2650, 2 ), Map.Trammel );

            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3643, 2649, 0 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3644, 2648, 3 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3645, 2647, 2 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3645, 2648, -1 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3648, 2644, 0 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3650, 2642, 2 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3648, 2642, 0 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3648, 2641, 2 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3652, 2642, 3 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3653, 2642, 6 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3653, 2643, 0 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3657, 2641, 3 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3657, 2642, 0 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3657, 2643, 0 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3659, 2644, 7 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3660, 2644, 8 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3659, 2645, 7 ), Map.Trammel );
            container = new KRStartingQuestContainer( 0xE3D );
            container.MoveToWorld( new Point3D( 3660, 2645, 7 ), Map.Trammel );

            for ( int i = 0; i < 6; i++ )
            {
                trigger = new KRStartingQuestTrigger( 9 );
                trigger.MoveToWorld( new Point3D( 3672, 2654 - i, 0 ), Map.Trammel );
            }

            spawner = new CreatureSpawner( "HogarthTheKeeperOfOldHaven", 1, 300, 600, 0, 0 );
            spawner.MoveToWorld( new Point3D( 3672, 2653, 0 ), Map.Trammel );
            spawner.Active = true;

            Static sta;

            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3668, 2647, 0 ), Map.Trammel );
            sta = new Static( 0xB8C );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3668, 2648, 0 ), Map.Trammel );
            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3669, 2647, 0 ), Map.Trammel );
            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3669, 2648, 0 ), Map.Trammel );
            sta = new Static( 0xB8A );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3670, 2647, 0 ), Map.Trammel );
            sta = new Static( 0xB8B );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3670, 2648, 0 ), Map.Trammel );

            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3673, 2652, 0 ), Map.Trammel );
            sta = new Static( 0xB8C );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3673, 2653, 0 ), Map.Trammel );
            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3674, 2652, 0 ), Map.Trammel );
            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3674, 2653, 0 ), Map.Trammel );
            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3675, 2652, 0 ), Map.Trammel );
            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3675, 2653, 0 ), Map.Trammel );
            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3676, 2652, 0 ), Map.Trammel );
            sta = new Static( 0xB8D );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3676, 2653, 0 ), Map.Trammel );
            sta = new Static( 0xB8A );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3677, 2652, 0 ), Map.Trammel );
            sta = new Static( 0xB8B );
            sta.Movable = false;
            sta.MoveToWorld( new Point3D( 3677, 2653, 0 ), Map.Trammel );

            remover = new KRWaypointRemover( 15 );
            remover.MoveToWorld( new Point3D( 3665, 2631, 0 ), Map.Trammel );
            remover = new KRWaypointRemover( 15 );
            remover.MoveToWorld( new Point3D( 3665, 2630, 0 ), Map.Trammel );
            remover = new KRWaypointRemover( 15 );
            remover.MoveToWorld( new Point3D( 3665, 2629, 0 ), Map.Trammel );
            remover = new KRWaypointRemover( 15 );
            remover.MoveToWorld( new Point3D( 3665, 2628, 0 ), Map.Trammel );

            gate = new KRStartingQuestGate( 16, new Point3D( 3663, 2629, 0 ) );
            gate.ItemID = 0x830;
            gate.MoveToWorld( new Point3D( 3664, 2630, 0 ), Map.Trammel );
            gate = new KRStartingQuestGate( 16, new Point3D( 3663, 2629, 0 ) );
            gate.ItemID = 0x832;
            gate.MoveToWorld( new Point3D( 3664, 2629, 0 ), Map.Trammel );

            spawner = new CreatureSpawner( "WeakSkeleton", 10, 300, 600, 20, 10 );
            spawner.MoveToWorld( new Point3D( 3649, 2623, 0 ), Map.Trammel );
            spawner.Active = true;

            remover = new KRWaypointRemover( 23 );
            remover.MoveToWorld( new Point3D( 3653, 2604, 0 ), Map.Trammel );
            remover = new KRWaypointRemover( 23 );
            remover.MoveToWorld( new Point3D( 3654, 2604, 0 ), Map.Trammel );
            remover = new KRWaypointRemover( 23 );
            remover.MoveToWorld( new Point3D( 3655, 2604, 0 ), Map.Trammel );
            remover = new KRWaypointRemover( 23 );
            remover.MoveToWorld( new Point3D( 3656, 2604, 0 ), Map.Trammel );

            gate = new KRStartingQuestGate( 24, new Point3D( 3654, 2602, 0 ) );
            gate.ItemID = 0x82F;
            gate.MoveToWorld( new Point3D( 3654, 2603, 0 ), Map.Trammel );
            gate = new KRStartingQuestGate( 24, new Point3D( 3654, 2602, 0 ) );
            gate.ItemID = 0x833;
            gate.MoveToWorld( new Point3D( 3655, 2603, 0 ), Map.Trammel );

            spawner = new CreatureSpawner( "Zombie", 20, 300, 600, 20, 10 );
            spawner.MoveToWorld( new Point3D( 3648, 2589, 0 ), Map.Trammel );
            spawner.Active = true;

            remover = new KRWaypointRemover( 25 );
            remover.MoveToWorld( new Point3D( 3623, 2611, 0 ), Map.Trammel );
            remover = new KRWaypointRemover( 25 );
            remover.MoveToWorld( new Point3D( 3623, 2612, 0 ), Map.Trammel );

            spawner = new CreatureSpawner( "Healer", 1, 300, 600, 5, 1 );
            spawner.MoveToWorld( new Point3D( 3619, 2618, 0 ), Map.Trammel );
            spawner.Active = true;

            for ( int i = 0; i < 7; i++ )
            {
                remover = new KRWaypointRemover( 27 );
                remover.MoveToWorld( new Point3D( 3629 + i, 2578, 0 ), Map.Trammel );
            }

            teleporter = new KRStartingQuestTeleporter( 28, new Point3D( 3631, 2573, 0 ) );
            teleporter.AdvanceLevel = true;
            teleporter.MoveToWorld( new Point3D( 3631, 2577, 0 ), Map.Trammel );
            teleporter = new KRStartingQuestTeleporter( 28, new Point3D( 3631, 2573, 0 ) );
            teleporter.AdvanceLevel = true;
            teleporter.MoveToWorld( new Point3D( 3632, 2577, 0 ), Map.Trammel );

            DarkKnight dk = new DarkKnight();
            dk.MoveToWorld( new Point3D( 3631, 2568, 0 ), Map.Trammel );
            dk.Direction = Direction.South;

            Blocker b = new Blocker();
            b.MoveToWorld( new Point3D( 3631, 2576, 0 ), Map.Trammel );
            b = new Blocker();
            b.MoveToWorld( new Point3D( 3632, 2576, 0 ), Map.Trammel );

            Static st = new Static( 0x3946 );
            st.MoveToWorld( new Point3D( 3631, 2576, 0 ), Map.Trammel );
            st = new Static( 0x3946 );
            st.MoveToWorld( new Point3D( 3632, 2576, 0 ), Map.Trammel );

            st = new Static( 0x3946 );
            st.MoveToWorld( new Point3D( 3631, 2565, 0 ), Map.Trammel );
            st = new Static( 0x3946 );
            st.MoveToWorld( new Point3D( 3632, 2565, 0 ), Map.Trammel );

            trigger = new KRStartingQuestTrigger( 31 );
            trigger.MoveToWorld( new Point3D( 3540, 2570, -1 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 31 );
            trigger.MoveToWorld( new Point3D( 3540, 2569, 0 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 31 );
            trigger.MoveToWorld( new Point3D( 3540, 2568, 0 ), Map.Trammel );
            trigger = new KRStartingQuestTrigger( 31 );
            trigger.MoveToWorld( new Point3D( 3540, 2567, 0 ), Map.Trammel );

            teleporter = new KRStartingQuestTeleporter( 31, new Point3D( 3631, 2561, 0 ) );
            teleporter.MoveToWorld( new Point3D( 3631, 2566, 0 ), Map.Trammel );
            teleporter = new KRStartingQuestTeleporter( 31, new Point3D( 3631, 2561, 0 ) );
            teleporter.MoveToWorld( new Point3D( 3632, 2566, 0 ), Map.Trammel );

            e.Mobile.SendMessage( "Generation completed!" );
        }