using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Sog { public enum AppRunMode { /// /// 初始,错误 /// None = 0, /// /// 非代理模式 /// 启动 /// Run = 1, /// /// 代理模式 /// 启动 /// Start = 2, /// /// 代理模式 /// 停服,注意保存数据 /// Stop = 3, /// /// 代理模式 /// 重新加载逻辑模块(XXXServer.dll) /// Hotfix = 4, /// /// 代理模式 /// 重新加载配置 /// ReloadConfig = 5, /// /// 代理模式 /// 死亡测试,正式环境别用 /// //DeadTest = 6, /// /// 重新加载cluster.json配置文件 /// ReloadCluster = 7, /// /// 代理模式 /// Gm指令,主要是GameServer使用 /// GmCommand = 10, /// /// 工具模式 /// hotfix检查, 检查协议是否有修改,有修改则不能hotfix,免得引起运营事故 /// HotfixCheck = 12, } public class AppParam { public uint ServerID { get; private set; } //服务器inst 拼合id, public string ConfigFileName { get; set; } public string ClusterFileName { get; private set; } //args 里面的配置文件名 public SogServerConfig ServerConfig { get; private set; } public AppRunMode RunMode { get; private set; } public bool forceHotfix { get; private set; } public string CommandAllText { get; private set; } public string[] Args { get; private set; } public string hotfixcheckDllFileFullName { get; private set; } public AppParam(string[] args) { Args = args; //缺省 //在SogLoader里需要判断 RunMode = AppRunMode.None; Parse(args); Check(); } /* * 不进行校验,特殊服务器使用,比如ServerManager */ public AppParam(string[] args, bool noCheck) { Args = args; //缺省 //在SogLoader里需要判断 RunMode = AppRunMode.None; Parse(args); } public void Parse(string[] args) { int count = args.Length; for(int i=0; i(ConfigFileName); if(config == null) { Console.WriteLine("SogServerConfig ConfigFileName {0} read failed", ConfigFileName); } else { ServerConfig = config; //转化格式 ServerConfig.ReplaceFormatString(ServerID); } } } }