public void StartField(Field d)
        {
            Handeling = d;

            if (Handeling.Caller.NetState == null)
            {
                Handeling.EndSelf();
                return;
            }

            HasStarted           = true;
            InUse                = true;
            Handeling.InProgress = true;
            Handeling.Controller = this;

            if (PlayerLocations == null)
            {
                PlayerLocations = new Dictionary <Serial, Point3D>();
            }
            if (PlayerMaps == null)
            {
                PlayerMaps = new Dictionary <Serial, Map>();
            }
            if (PlayerItems == null)
            {
                PlayerItems = new Dictionary <Serial, ArrayList>();
            }
            if (ItemLocations == null)
            {
                ItemLocations = new Dictionary <Serial, Point3D>();
            }
            if (InsuredItems == null)
            {
                InsuredItems = new ArrayList();
            }
            if (FrozenItems == null)
            {
                FrozenItems = new ArrayList();
            }
            if (Trees == null)
            {
                Trees = new ArrayList();
            }
            if (Traps == null)
            {
                Traps = new ArrayList();
            }

            SpawnTrees(Handeling);
            SpawnTraps(Handeling);

            IEnumerator key = Handeling.Teams.Keys.GetEnumerator();

            for (int i = 0; i < Handeling.Teams.Count; ++i)
            {
                key.MoveNext();
                Field_Team d_team = (Field_Team)Handeling.Teams[(int)key.Current];

                for (int i2 = 0; i2 < d_team.Players.Count; ++i2)
                {
                    object o = (object)d_team.Players[i2];

                    if (o is PlayerMobile)
                    {
                        PlayerMobile pm = (PlayerMobile)o;
                        StorePlayer(pm);
                        SpawnPlayer(pm, (int)key.Current);
                        PlayerNoto(pm);
                        PetNoto(pm);
                        pm.Blessed = true;
                        pm.Frozen  = true;
                        pm.Spell   = null;
                        ResurrectPlayer(pm);
                        ResurrectPets(pm);
                    }
                }
            }

            Timer.DelayCall(TimeSpan.FromSeconds(3.0), new TimerCallback(UnInvul));
            EndTimer = new Field_EndTimer(Handeling);
        }
        public void StartField(Field d)
        {
            Handeling = d;

            if (Handeling.Caller.NetState == null)
            {
                Handeling.EndSelf();
                return;
            }

            HasStarted = true;
            InUse = true;
            Handeling.InProgress = true;
            Handeling.Controller = this;

            if (PlayerLocations == null)
                PlayerLocations = new Dictionary<Serial, Point3D>();
            if (PlayerMaps == null)
                PlayerMaps = new Dictionary<Serial, Map>();
            if (PlayerItems == null)
                PlayerItems = new Dictionary<Serial, ArrayList>();
            if (ItemLocations == null)
                ItemLocations = new Dictionary<Serial, Point3D>();
            if (InsuredItems == null)
                InsuredItems = new ArrayList();
            if (FrozenItems == null)
                FrozenItems = new ArrayList();
            if (Trees == null)
                Trees = new ArrayList();
            if (Traps == null)
            	Traps = new ArrayList();
                
            SpawnTrees(Handeling);
            SpawnTraps(Handeling);

            IEnumerator key = Handeling.Teams.Keys.GetEnumerator();
            for (int i = 0; i < Handeling.Teams.Count; ++i)
            {
                key.MoveNext();
                Field_Team d_team = (Field_Team)Handeling.Teams[(int)key.Current];

                for (int i2 = 0; i2 < d_team.Players.Count; ++i2)
                {
                    object o = (object)d_team.Players[i2];

                    if (o is PlayerMobile)
                    {
                        PlayerMobile pm = (PlayerMobile)o;
                        StorePlayer(pm);
                        SpawnPlayer(pm, (int)key.Current);
                        PlayerNoto(pm);
                        PetNoto(pm);
                        pm.Blessed = true;
                        pm.Frozen = true;
                        pm.Spell = null;
                        ResurrectPlayer(pm);
                        ResurrectPets(pm);
                    }
                }
            }

            Timer.DelayCall(TimeSpan.FromSeconds(3.0), new TimerCallback(UnInvul));
            EndTimer = new Field_EndTimer(Handeling);
        }