public static void StartGame(CTFGameStone stone)
        {
            Running = true;
            Open = true;
            Stone = stone;
            Price = stone.Price;
            RewardItemChance = stone.RewardItemChance;
            GiveRobe = stone.GiveRobe;
            MsgStaff = stone.MessageStaff;
            GiveRewards = stone.GiveRewards;
            Teams = stone.Teams;
            DrawLength = stone.DrawLength;
            GameLength = stone.GameLength;
            GameArea = stone.GameArea;
            Spawn = stone.Spawn;
            FlagArray = stone.FlagArray;
            GameData = new CTFGameData();

            if (Region != null)
                Region.Unregister();

            Region = new CTFGameRegion();
            Region.Register();

            EventSystem.Start(stone.MinutesOpen,"Capture The Flag Game", new EDC.StartMethod(StartGame), new EDC.StopMethod(EndGame), new EDC.JoinMethod(JoinMethod));
        }
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 1:
                    {
                        m_PlayerSpawn = reader.ReadPoint3D();
                        goto case 0;
                    }

                case 0:
                {
                    m_Stone = (CTFGameStone)reader.ReadItem(); ;
                    m_Team = CTFGame.TeamArray[reader.ReadInt()];
                    m_FlagHome = reader.ReadPoint3D();
                    m_FlagHomeMap = reader.ReadMap();

                    if (version == 0)
                        m_PlayerSpawn = m_FlagHome;
                    break;
                }
            }

            Timer.DelayCall( TimeSpan.Zero, new TimerCallback( ReturnToHome ) );
        }