Browse Source

【优化】MMO-20372:K值配置优化

meijun 3 years ago
parent
commit
8b371bc06b

+ 54 - 47
XmdsCommon/Plugin/XmdsConfig.cs

@@ -22,53 +22,53 @@ namespace XmdsCommon.Plugin
     [DescAttribute("公共配置")]
     public class XmdsConfig : ICommonConfig
     {
-        [DescAttribute("生成技能配置是否增加注释", "编辑器")]
-        public bool EDITOR_GEN_SKILL_CONFIG_ANNOTATION = false;
-
-        [DescAttribute("获取金币提示", "提示")]
-        public string RICH_TXT_UNIT_GOT_MONEY = "<font face=\"Arial\" size=\"20\" color=\"ffffff00\">获取金币</font>";
-
-        [DescAttribute("获取金币提示(显示数量)", "提示")]
-        public string RICH_TXT_UNIT_GOT_MONEY_COUNT = "<font face=\"Arial\" size=\"20\" color=\"ffffff00\">获取金币{0}</font>";
-
-        [DescAttribute("伤害波幅范围", "战斗公式")]
-        public float BATTLE_DAMAGE_FIX_RANGE = 0.075f;
-
-        [DescAttribute("暴击倍数", "战斗公式")]
-        public float BATTLE_CRITICAL_RATE = 2.0f;
-
-        [DescAttribute("系数", "战斗公式")]
-        public float BATTLE_COEFFICIENT = 220;
-
-        [DescAttribute("修正", "战斗公式")]
-        public float BATTLE_CORRECTION = 2000;
-
-        [DescAttribute("(人)打(建筑物)固定伤害", "战斗公式 - 固定伤害")]
-        public int BATTLE_PLAYER_HIT_BUILDING_FIXED_DAMAGE = 25;
-        [DescAttribute("(载具)打(建筑物)固定伤害", "战斗公式 - 固定伤害")]
-        public int BATTLE_VEHICLE_HIT_BUILDING_FIXED_DAMAGE = 100;
-        [DescAttribute("(首领)打(建筑物)固定伤害", "战斗公式 - 固定伤害")]
-        public int BATTLE_BOSS_HIT_BUILDING_FIXED_DAMAGE = 200;
-
-        [DescAttribute("(人)打(载具)伤害修正", "战斗公式 - 伤害修正")]
-        public float BATTLE_PLAYER_HIT_VEHICLE_MULTIPLY = 0.25f;
-        [DescAttribute("(人)打(首领)伤害修正", "战斗公式 - 伤害修正")]
-        public float BATTLE_PLAYER_HIT_BOSS_MULTIPLY = 0.25f;
-        [DescAttribute("(载具)打(人)伤害修正", "战斗公式 - 伤害修正")]
-        public float BATTLE_VEHICLE_HIT_PLAYER_MULTIPLY = 1f;
-        [DescAttribute("(载具)打(首领)伤害修正", "战斗公式 - 伤害修正")]
-        public float BATTLE_VEHICLE_HIT_BOSS_MULTIPLY = 0.25f;
-        [DescAttribute("(首领)打(人)伤害修正", "战斗公式 - 伤害修正")]
-        public float BATTLE_BOSS_HIT_PLAYER_MULTIPLY = 1.25f;
-        [DescAttribute("(首领)打(载具)伤害修正", "战斗公式 - 伤害修正")]
-        public float BATTLE_BOSS_HIT_VEHICLE_MULTIPLY = 1.25f;
-
-        [DescAttribute("(建筑物)打(人)扣除血总量百分比", "战斗公式 - 百分比扣血")]
-        public float BATTLE_BUILDING_HIT_PLAYER_MAX_HP_PCT_DAMAGE = 25f;
-        [DescAttribute("(建筑物)打(载具)扣除血总量百分比", "战斗公式 - 百分比扣血")]
-        public float BATTLE_BUILDING_HIT_VEHICLE_MAX_HP_PCT_DAMAGE = 7f;
-        [DescAttribute("(建筑物)打(首领)扣除血总量百分比", "战斗公式 - 百分比扣血")]
-        public float BATTLE_BUILDING_HIT_BOSS_MAX_HP_PCT_DAMAGE = 1f;
+        //[DescAttribute("生成技能配置是否增加注释", "编辑器")]
+        //public bool EDITOR_GEN_SKILL_CONFIG_ANNOTATION = false;
+
+        //[DescAttribute("获取金币提示", "提示")]
+        //public string RICH_TXT_UNIT_GOT_MONEY = "<font face=\"Arial\" size=\"20\" color=\"ffffff00\">获取金币</font>";
+
+        //[DescAttribute("获取金币提示(显示数量)", "提示")]
+        //public string RICH_TXT_UNIT_GOT_MONEY_COUNT = "<font face=\"Arial\" size=\"20\" color=\"ffffff00\">获取金币{0}</font>";
+
+        //[DescAttribute("伤害波幅范围", "战斗公式")]
+        //public float BATTLE_DAMAGE_FIX_RANGE = 0.075f;
+
+        //[DescAttribute("暴击倍数", "战斗公式")]
+        //public float BATTLE_CRITICAL_RATE = 2.0f;
+
+        //[DescAttribute("系数", "战斗公式")]
+        //public float BATTLE_COEFFICIENT = 220;
+
+        //[DescAttribute("修正", "战斗公式")]
+        //public float BATTLE_CORRECTION = 2000;
+
+        //[DescAttribute("(人)打(建筑物)固定伤害", "战斗公式 - 固定伤害")]
+        //public int BATTLE_PLAYER_HIT_BUILDING_FIXED_DAMAGE = 25;
+        //[DescAttribute("(载具)打(建筑物)固定伤害", "战斗公式 - 固定伤害")]
+        //public int BATTLE_VEHICLE_HIT_BUILDING_FIXED_DAMAGE = 100;
+        //[DescAttribute("(首领)打(建筑物)固定伤害", "战斗公式 - 固定伤害")]
+        //public int BATTLE_BOSS_HIT_BUILDING_FIXED_DAMAGE = 200;
+
+        //[DescAttribute("(人)打(载具)伤害修正", "战斗公式 - 伤害修正")]
+        //public float BATTLE_PLAYER_HIT_VEHICLE_MULTIPLY = 0.25f;
+        //[DescAttribute("(人)打(首领)伤害修正", "战斗公式 - 伤害修正")]
+        //public float BATTLE_PLAYER_HIT_BOSS_MULTIPLY = 0.25f;
+        //[DescAttribute("(载具)打(人)伤害修正", "战斗公式 - 伤害修正")]
+        //public float BATTLE_VEHICLE_HIT_PLAYER_MULTIPLY = 1f;
+        //[DescAttribute("(载具)打(首领)伤害修正", "战斗公式 - 伤害修正")]
+        //public float BATTLE_VEHICLE_HIT_BOSS_MULTIPLY = 0.25f;
+        //[DescAttribute("(首领)打(人)伤害修正", "战斗公式 - 伤害修正")]
+        //public float BATTLE_BOSS_HIT_PLAYER_MULTIPLY = 1.25f;
+        //[DescAttribute("(首领)打(载具)伤害修正", "战斗公式 - 伤害修正")]
+        //public float BATTLE_BOSS_HIT_VEHICLE_MULTIPLY = 1.25f;
+
+        //[DescAttribute("(建筑物)打(人)扣除血总量百分比", "战斗公式 - 百分比扣血")]
+        //public float BATTLE_BUILDING_HIT_PLAYER_MAX_HP_PCT_DAMAGE = 25f;
+        //[DescAttribute("(建筑物)打(载具)扣除血总量百分比", "战斗公式 - 百分比扣血")]
+        //public float BATTLE_BUILDING_HIT_VEHICLE_MAX_HP_PCT_DAMAGE = 7f;
+        //[DescAttribute("(建筑物)打(首领)扣除血总量百分比", "战斗公式 - 百分比扣血")]
+        //public float BATTLE_BUILDING_HIT_BOSS_MAX_HP_PCT_DAMAGE = 1f;
 
 
         [DescAttribute("最小停留时间(毫秒).", "游荡配置")]
@@ -136,6 +136,13 @@ namespace XmdsCommon.Plugin
 		[DescAttribute("宠物分担玩家伤害系数(小数)", "宠物")]
 		public float PET_SHARE_MASTERDMG_RATIO = 0.2f;
 
+
+		[DescAttribute("防御系数K", "战斗公式")]
+		public string Coefficient_Defence = "";
+
+		[DescAttribute("怪物系数K", "战斗公式")]
+		public string monster_Defence = "";
+
 		public override string ToString()
         {
             return "Xmds 配置扩展属性";

+ 4 - 0
XmdsCommonServer/Plugin/XmdsFormula.cs

@@ -24,6 +24,7 @@ using XmdsCommonServer.XLS.Data;
 using CommonAI.data;
 using CommonLang.Property;
 using CommonAI.Data;
+using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
 
 namespace XmdsCommonServer.Plugin
 {
@@ -105,6 +106,9 @@ namespace XmdsCommonServer.Plugin
 
 			this.InitRelationModule();
 
+			//初始化一些基本的伤害配置脚本
+			XmdsDamageCalculator.Init();
+
 		}
 
         //加载技能配置.

+ 45 - 0
XmdsCommonServer/Plugin/XmdsSkillTemplate/DamageCalculator/XmdsDamageCalculator.cs

@@ -49,6 +49,51 @@ namespace XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator
         //万分比.
         public static float PERER = 10000.0f;
 
+		public static void Init()
+		{
+			// 人物K
+			try
+			{
+				string [] data = XmdsConfig.Instance.Coefficient_Defence.Split(',');
+				if(data == null || data.Length != Coefficient_Defence.Length)
+				{
+					throw new Exception("人物K数据异常");
+				}
+
+				for(int i = 0; i < data.Length; i++)
+				{
+					Coefficient_Defence[i] = int.Parse(data[i]);
+				}
+
+				XmdsVirtual.FormatLog(LoggerLevel.INFO, "初始化人物K异常 : {0}", Coefficient_Defence);
+			}
+			catch (Exception e)
+			{
+				XmdsVirtual.FormatLog(LoggerLevel.ERROR, "初始化人物K异常 : {0}", e);
+			}
+
+			// 怪物K
+			try
+			{
+				string[] data = XmdsConfig.Instance.monster_Defence.Split(',');
+				if (data == null || data.Length != monster_Defence.Length)
+				{
+					throw new Exception("人物K数据异常");
+				}
+
+				for (int i = 0; i < data.Length; i++)
+				{
+					monster_Defence[i] = int.Parse(data[i]);
+				}
+
+				XmdsVirtual.FormatLog(LoggerLevel.INFO, "初始化人物K异常 : {0}", monster_Defence);
+			}
+			catch (Exception e)
+			{
+				XmdsVirtual.FormatLog(LoggerLevel.ERROR, "初始化怪物K异常 : {0}", e);
+			}
+		}
+
         //获得当次攻击结果类型(暴击、闪避、招架、普通攻击).
         public static XmdsCommonServer.Plugin.XmdsVirtual.AttackRlt GetAttckRlt(float hitRate, float criRate, float pierceRate, Random random)
         {