/// <summary>
        /// The game service start.
        /// </summary>
        /// <param name="setting">Environment setting.</param>
        /// <param name="cacheSetting">Cache setting.</param>
        public static void Start(EnvironmentSetting setting, CacheSetting cacheSetting)
        {
            if (IsRunning)
            {
                return;
            }

            TraceLog.WriteLine("{0} Server is starting...", DateTime.Now.ToString("HH:mm:ss"));
            _setting = setting;
            if (!RedisConnectionPool.Ping("127.0.0.1"))
            {
                string error = string.Format("Error: NIC is not connected or no network.");
                TraceLog.WriteLine(error);
                TraceLog.WriteError(error);
                return;
            }
            RedisConnectionPool.Initialize(_setting.Serializer);
            if (!RedisConnectionPool.CheckConnect())
            {
                string error = string.Format("Error: the redis server is not started.");
                TraceLog.WriteLine(error);
                TraceLog.WriteError(error);
                return;
            }
            TraceLog.WriteLine("{0} Redis server connect successfully.", DateTime.Now.ToString("HH:mm:ss"));

            DbConnectionProvider.Initialize();
            TraceLog.WriteLine("{0} DB server connect successfully.", DateTime.Now.ToString("HH:mm:ss"));

            EntitySchemaSet.CacheGlobalPeriod = _setting.CacheGlobalPeriod;
            EntitySchemaSet.CacheUserPeriod   = _setting.CacheUserPeriod;
            if (_setting.EntityAssembly != null)
            {
                ProtoBufUtils.LoadProtobufType(_setting.EntityAssembly);
                EntitySchemaSet.LoadAssembly(_setting.EntityAssembly);
            }

            ZyGameBaseConfigManager.Intialize();
            //init script.
            if (_setting.ScriptSysAsmReferences.Length > 0)
            {
                ScriptEngines.AddSysReferencedAssembly(_setting.ScriptSysAsmReferences);
            }
            ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll");
            if (_setting.ScriptAsmReferences.Length > 0)
            {
                ScriptEngines.AddReferencedAssembly(_setting.ScriptAsmReferences);
            }
            ScriptEngines.RegisterModelChangedBefore(OnModelChangeBefore);
            ScriptEngines.RegisterModelChangedAfter(OnModelChangeAtfer);
            ScriptEngines.OnLoaded += OnScriptLoaded;
            ScriptEngines.Initialize();
            Language.SetLang();
            CacheFactory.Initialize(cacheSetting, _setting.Serializer);
            EntitySchemaSet.StartCheckTableTimer();
            Global = new ContextCacheSet <CacheItem>("__gameenvironment_global");
        }
Пример #2
0
        /// <summary>
        /// The game service start.
        /// </summary>
        /// <param name="setting">Environment setting.</param>
        /// <param name="cacheSetting">Cache setting.</param>
        public static void Start(EnvironmentSetting setting, CacheSetting cacheSetting)
        {
            if (_isRunning == 1)
            {
                return;
            }

            _setting = setting;
            if (!RedisConnectionPool.CheckConnect())
            {
                string error = string.Format("Error: the redis server is not started.");
                Console.WriteLine(error);
                TraceLog.WriteError(error);
                return;
            }
            DbConnectionProvider.Initialize();
            EntitySchemaSet.CacheGlobalPeriod = _setting.CacheGlobalPeriod;
            EntitySchemaSet.CacheUserPeriod   = _setting.CacheUserPeriod;
            if (_setting.EntityAssembly != null)
            {
                ProtoBufUtils.LoadProtobufType(_setting.EntityAssembly);
                EntitySchemaSet.LoadAssembly(_setting.EntityAssembly);
            }
            EntitySchemaSet.StartCheckTableTimer();
            LoadGameEntitySchema();
            ZyGameBaseConfigManager.Intialize();
            //init script.
            if (_setting.ScriptSysAsmReferences.Length > 0)
            {
                ScriptEngines.AddSysReferencedAssembly(_setting.ScriptSysAsmReferences);
            }
            ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll");
            if (_setting.ScriptAsmReferences.Length > 0)
            {
                ScriptEngines.AddReferencedAssembly(_setting.ScriptAsmReferences);
            }
            ScriptEngines.RegisterModelChangedBefore(OnModelChangeBefore);
            ScriptEngines.RegisterModelChangedAfter(OnModelChangeAtfer);
            ScriptEngines.Initialize();
            Language.SetLang();
            CacheFactory.Initialize(cacheSetting);
            Global = new ContextCacheSet <CacheItem>("__gameenvironment_global");
            Interlocked.Exchange(ref _isRunning, 1);
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="cacheInterval"></param>
        /// <param name="loadDataFactory"></param>
        /// <param name="expiredInterval">定时清理过期缓存时间</param>
        public static void Start(int cacheInterval, Func <bool> loadDataFactory, int expiredInterval = 600)
        {
            bool result = false;

            CacheFactory.Initialize(expiredInterval, cacheInterval);
            var pythonManager = PythonScriptManager.Current;

            //建立消息队列连接
            ActionMSMQ.Instance();
            Global = new ContextCacheSet <CacheItem>("__gameenvironment_global");

            if (loadDataFactory != null)
            {
                result = loadDataFactory();
            }
            if (result)
            {
                Interlocked.Exchange(ref _isRunning, 1);
            }
        }
Пример #4
0
        /// <summary>
        /// The game service start.
        /// </summary>
        /// <param name="setting">Environment setting.</param>
        /// <param name="cacheSetting">Cache setting.</param>
        public static void Start(EnvironmentSetting setting, CacheSetting cacheSetting)
        {
            if (_isRunning == 1) return;

            _setting = setting;
            if (!RedisConnectionPool.CheckConnect())
            {
                string error = string.Format("Error: the redis server is not started.");
                Console.WriteLine(error);
                TraceLog.WriteError(error);
                return;
            }
            DbConnectionProvider.Initialize();
            EntitySchemaSet.CacheGlobalPeriod = _setting.CacheGlobalPeriod;
            EntitySchemaSet.CacheUserPeriod = _setting.CacheUserPeriod;
            if (_setting.EntityAssembly != null)
            {
                ProtoBufUtils.LoadProtobufType(_setting.EntityAssembly);
                EntitySchemaSet.LoadAssembly(_setting.EntityAssembly);
            }
            EntitySchemaSet.StartCheckTableTimer();
            ZyGameBaseConfigManager.Intialize();
            //init script.
            if (_setting.ScriptSysAsmReferences.Length > 0)
            {
                ScriptEngines.AddSysReferencedAssembly(_setting.ScriptSysAsmReferences);
            }
            ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll");
            if (_setting.ScriptAsmReferences.Length > 0)
            {
                ScriptEngines.AddReferencedAssembly(_setting.ScriptAsmReferences);
            }
            ScriptEngines.RegisterModelChangedBefore(OnModelChangeBefore);
            ScriptEngines.RegisterModelChangedAfter(OnModelChangeAtfer);
            ScriptEngines.Initialize();
            Language.SetLang();
            CacheFactory.Initialize(cacheSetting);
            Global = new ContextCacheSet<CacheItem>("__gameenvironment_global");
            Interlocked.Exchange(ref _isRunning, 1);
        }
Пример #5
0
        /// <summary>
        /// The game service start.
        /// </summary>
        /// <param name="setting">Environment setting.</param>
        /// <param name="cacheSetting">Cache setting.</param>
        public static void Start(EnvironmentSetting setting, CacheSetting cacheSetting)
        {
            if (IsRunning) return;

            TraceLog.WriteLine("{0} Server is starting...", DateTime.Now.ToString("HH:mm:ss"));
            _setting = setting;
            if (!RedisConnectionPool.Ping("127.0.0.1"))
            {
                string error = string.Format("Error: NIC is not connected or no network.");
                TraceLog.WriteLine(error);
                TraceLog.WriteError(error);
                return;
            }
            RedisConnectionPool.Initialize(_setting.Serializer);
            if (!RedisConnectionPool.CheckConnect())
            {
                string error = string.Format("Error: the redis server is not started.");
                TraceLog.WriteLine(error);
                TraceLog.WriteError(error);
                return;
            }
            DbConnectionProvider.Initialize();
            EntitySchemaSet.CacheGlobalPeriod = _setting.CacheGlobalPeriod;
            EntitySchemaSet.CacheUserPeriod = _setting.CacheUserPeriod;
            if (_setting.EntityAssembly != null)
            {
                ProtoBufUtils.LoadProtobufType(_setting.EntityAssembly);
                EntitySchemaSet.LoadAssembly(_setting.EntityAssembly);
            }

            ZyGameBaseConfigManager.Intialize();
            //init script.
            if (_setting.ScriptSysAsmReferences.Length > 0)
            {
                ScriptEngines.AddSysReferencedAssembly(_setting.ScriptSysAsmReferences);
            }
            ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll");
            if (_setting.ScriptAsmReferences.Length > 0)
            {
                ScriptEngines.AddReferencedAssembly(_setting.ScriptAsmReferences);
            }
            ScriptEngines.RegisterModelChangedBefore(OnModelChangeBefore);
            ScriptEngines.RegisterModelChangedAfter(OnModelChangeAtfer);
            ScriptEngines.OnLoaded += OnScriptLoaded;
            ScriptEngines.Initialize();
            Language.SetLang();
            CacheFactory.Initialize(cacheSetting, _setting.Serializer);
            EntitySchemaSet.StartCheckTableTimer();
            Global = new ContextCacheSet<CacheItem>("__gameenvironment_global");
        }
Пример #6
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="cacheInterval"></param>
        /// <param name="loadDataFactory"></param>
        /// <param name="expiredInterval">定时清理过期缓存时间</param>
        public static void Start(int cacheInterval, Func<bool> loadDataFactory, int expiredInterval = 600)
        {
            bool result = false;
            CacheFactory.Initialize(expiredInterval, cacheInterval);
            var pythonManager = PythonScriptManager.Current;
            //建立消息队列连接
            ActionMSMQ.Instance();
            Global = new ContextCacheSet<CacheItem>("__gameenvironment_global");

            if (loadDataFactory != null)
            {
                result = loadDataFactory();
            }
            if (result)
            {
                Interlocked.Exchange(ref _isRunning, 1);
            }
        }
Пример #7
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="cacheInterval"></param>
        /// <param name="loadDataFactory"></param>
        /// <param name="expiredInterval">定时清理过期缓存时间</param>
        /// <param name="entityAssembly">数据实体的程序集</param>
        public static void Start(int cacheInterval, Func<bool> loadDataFactory, int expiredInterval = 600, Assembly entityAssembly = null)
        {
            bool result = false;
            DbConnectionProvider.Initialize();
            EntitySchemaSet.CacheGlobalPeriod = CacheGlobalPeriod;
            EntitySchemaSet.CacheUserPeriod = CacheUserPeriod;
            ZyGameBaseConfigManager.Intialize();
            CacheFactory.Initialize(expiredInterval, cacheInterval);
            SensitiveWordService.LoadSchema();
            if (entityAssembly != null)
            {
                ProtoBufUtils.LoadProtobufType(entityAssembly);
                EntitySchemaSet.LoadAssembly(entityAssembly);
            }
            PythonScriptManager.Current.Intialize();
            EntitySchemaSet.StartCheckTableTimer();
            Global = new ContextCacheSet<CacheItem>("__gameenvironment_global");

            if (loadDataFactory != null)
            {
                result = loadDataFactory();
            }
            if (result)
            {
                Interlocked.Exchange(ref _isRunning, 1);
            }
        }
Пример #8
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="cacheInterval"></param>
        /// <param name="loadDataFactory"></param>
        /// <param name="expiredInterval">定时清理过期缓存时间</param>
        /// <param name="entityAssembly">数据实体的程序集</param>
        /// <param name="changedHandle"></param>
        public static void Start(int cacheInterval, Func<bool> loadDataFactory, int expiredInterval = 600, Assembly entityAssembly = null, EntityChangedNotifyEvent changedHandle = null)
        {
            bool result = false;
            DbConnectionProvider.Initialize();
            EntitySchemaSet.CacheGlobalPeriod = CacheGlobalPeriod;
            EntitySchemaSet.CacheUserPeriod = CacheUserPeriod;
            ZyGameBaseConfigManager.Intialize();
            CacheFactory.Initialize(expiredInterval, cacheInterval, true, changedHandle);
            SensitiveWordService.LoadSchema();
            if (entityAssembly != null)
            {
                ProtoBufUtils.LoadProtobufType(entityAssembly);
                EntitySchemaSet.LoadAssembly(entityAssembly);
            }
            ScriptEngines.SetPythonDebug = ConfigUtils.GetSetting("Python_IsDebug", false);
            ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll");
            EntitySchemaSet.StartCheckTableTimer();
            Global = new ContextCacheSet<CacheItem>("__gameenvironment_global");

            if (loadDataFactory != null)
            {
                result = loadDataFactory();
            }
            ScriptEngines.Initialize();

            if (result)
            {
                Interlocked.Exchange(ref _isRunning, 1);
            }
        }
Пример #9
0
 /// <summary>
 /// The game service start.
 /// </summary>
 /// <param name="setting">Environment setting.</param>
 /// <param name="cacheSetting">Cache setting.</param>
 public static void Start(EnvironmentSetting setting, CacheSetting cacheSetting)
 {
     _setting = setting;
     DbConnectionProvider.Initialize();
     EntitySchemaSet.CacheGlobalPeriod = _setting.CacheGlobalPeriod;
     EntitySchemaSet.CacheUserPeriod = _setting.CacheUserPeriod;
     if (_setting.EntityAssembly != null)
     {
         ProtoBufUtils.LoadProtobufType(_setting.EntityAssembly);
         EntitySchemaSet.LoadAssembly(_setting.EntityAssembly);
     }
     EntitySchemaSet.StartCheckTableTimer();
     LoadGameEntitySchema();
     ZyGameBaseConfigManager.Intialize();
     CacheFactory.Initialize(cacheSetting);
     Global = new ContextCacheSet<CacheItem>("__gameenvironment_global");
     //init script.
     ScriptEngines.AddReferencedAssembly("ZyGames.Framework.Game.dll");
     ScriptEngines.RegisterModelChangedBefore(OnModelChangeBefore);
     ScriptEngines.RegisterModelChangedAfter(OnModelChangeAtfer);
     _setting.OnScriptStartBefore();
     ScriptEngines.Initialize();
     Interlocked.Exchange(ref _isRunning, 1);
 }