xy-server/game.ts

77 lines
2.3 KiB
TypeScript
Raw Normal View History

2025-04-23 09:34:08 +08:00
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();