Пример #1
0
        static void Main()
        {
            //Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new FrmMain());

            ServerConfig.Tcp = new[]
            {
                new TcpConfig
                {
                    Host = "127.0.0.1",
                    Port = 4530,
                }
            };

            Logs.ConfigLogFile("tradeage.log");
            Logs.AddAppender(new ConsoleAppender());

            GameServerService.IsConsoleRun = true;
            var world = new WorldBase();
            world.IsAutoRegisterMessage = false;
            world.NetStateDisconnect += world_NetStateDisconnect;
            GameServerService.AfterModuleInit = () =>
            {
                ServerLogicProtoclRegister.Register(world.GetModules(), world.PacketHandlers);
                ClientProxyRegister.Register();
                return true;
            };
            LogicModule.Prints();
            GameServerService.StartGame(world);
        }
Пример #2
0
        /// <summary>
        ///     开启游戏
        /// </summary>
        /// <remarks>
        ///     游戏启动执行顺序
        ///     1.FirstInit
        ///     2.InitTemplate
        ///     3.LoadDefaultGameData
        ///     4.BeforeModuleInit
        ///     5.world.Start()
        ///     6.AfterModuleInit
        /// </remarks>
        /// <param name="world"></param>
        public static void StartGame(WorldBase world)
        {
            if (world == null)
                throw new NullReferenceException("world");

            s_world = world;

            RunType = ServerStateType.Starting;

            //  先加载最基础的配置文件
            StaticConfigFileManager.LoadData();

            if (FirstInit != null)
                IsErrorToExitProgram(FirstInit());

            if (InitTemplate != null)
                IsErrorToExitProgram(InitTemplate());

            if (LoadDefaultGameData != null)
                IsErrorToExitProgram(LoadDefaultGameData());

            if (BeforeModuleInit != null)
                IsErrorToExitProgram(BeforeModuleInit());

            world.StartWorld();

            if (AfterModuleInit != null)
                IsErrorToExitProgram(AfterModuleInit());

            RunType = ServerStateType.Runing;

            if (IsConsoleRun)
            {
                StartCommandlinesDisposal();
            }
        }