xy-server/game.ts
2025-04-23 09:34:08 +08:00

77 lines
2.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import ChargeConfig from "./game/core/ChargeConfig";
import GameUtil from "./game/core/GameUtil";
import Launch from "./game/core/Launch";
import NpcConfigMgr from "./game/core/NpcConfigMgr";
import HttpGame from "./game/network/http/HttpGame";
import SKLogger from "./game/gear/SKLogger";
import DBForm from "./game/utils/DBForm";
import ServerConf from "./conf/ServerConf";
import GameConf from "./conf/GameConf";
import Command from "./game/common/Command";
// 未知异常捕获
process.on('uncaughtException', function (err: any) {
console.error('An uncaught error occurred!');
console.error(err.stack);
SKLogger.warn(err.stack);
})
function complete() {
SKLogger.info('启动游戏模块...');
Launch.shared.start();
}
let mod_list: any = {};
function init(mod: any) {
mod_list[mod] = 0;
return () => {
mod_list[mod] = 1;
let allcomplete = true;
for (const mkey in mod_list) {
if (mod_list.hasOwnProperty(mkey)) {
const value = mod_list[mkey];
if (value == 0) {
allcomplete = false;
break;
}
}
}
if (allcomplete) {
complete();
}
}
}
function main() {
SKLogger.initLog("game")
GameUtil.localIP = GameUtil.getIPAdress();
// 加载配置表
let conf: ServerConf = GameConf.game_1;
GameUtil.serverType = conf.server_type;
GameUtil.serverName = conf.server_name;
GameUtil.serverId = conf.server_id;
GameUtil.serverConf = conf;
GameUtil.launch();
SKLogger.info(`${GameUtil.serverName}V${GameConf.version} 启动...`);
SKLogger.info("1.系统配置表加载完毕");
DBForm.shared.launch();
SKLogger.info('2.数据库模块启动完毕');
// 启动命令行管理
Command.shared.launch();
SKLogger.info('3.命令行模块启动完毕');
// 启动监控系统
let cli = require("./game/common/cli");
cli.start(conf.cli_port, init('cli'));
// NPC配置初始化
NpcConfigMgr.shared.launch();
//充值配置模块启动完毕
ChargeConfig.shared.launch();
SKLogger.info(`4.充值配置模块启动完毕`);
//启动http模块
HttpGame.shared.start(conf.http_port);
SKLogger.info(`5.HTTP模块启动完毕开始监听${GameConf.local_ip}:${conf.http_port}`);
}
main();