Browse Source

【优化】日志

meijun 3 years ago
parent
commit
f6dfd4a574

+ 3 - 2
Common/CommonAI/Zone/Instance/InstanceUnit.cs

@@ -1035,11 +1035,12 @@ namespace CommonAI.Zone.Instance
 		/// <param name="attacker"></param>
 		/// <param name="sendHit"></param>
 		/// <param name="hitMessage"></param>
+		/// force: 忽略无敌效果,强制扣血
 		public int ReduceHP(int hp, InstanceUnit attacker, bool sendHit = true, UnitHitEvent hitMessage = null,
-			bool IngoreHealEffect = false, DamageSource dmgSrc = DamageSource.Def)
+			bool IngoreHealEffect = false, DamageSource dmgSrc = DamageSource.Def, bool force = false)
         {
 			//1.目标无敌,不扣血
-            if (IsDead() || hp == 0 || ( hp > 0 && this.IsInvincible))
+            if (IsDead() || hp == 0 || ( hp > 0 && this.IsInvincible && !force))
             {
                 return 0;
             }

+ 1 - 1
Common/CommonAI/Zone/ZoneEditor/EventTrigger/Actions.Units.cs

@@ -108,7 +108,7 @@ namespace CommonAI.Zone.ZoneEditor.EventTrigger
 				if(0 < hpPrecent && hpPrecent < 100)
 				{
 					int reduceHP = (int)(unit.MaxHP * 0.01f * (100 -hpPrecent));
-					unit.AddHP(-reduceHP, null);
+					unit.ReduceHP(-reduceHP, null, true, null, false, Data.DamageSource.Def, true);
 				}
             }
         }

+ 2 - 1
XmdsCommonServer/Plugin/XmdsSkillTemplate/DamageCalculator/XmdsDamageCalculator.cs

@@ -403,7 +403,8 @@ namespace XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator
 		public static int GetPetDamage(int damageBaseValue, XmdsVirtual pet)
 		{
 			//防御属性
-			float ingoreDmg = 1.0f - pet.MirrorProp.Defence / (pet.MirrorProp.Defence + GetDefenceAddition(pet.GetStateLv()));
+			float finalDef = pet.MirrorProp.Defence;
+			float ingoreDmg = 1.0f - finalDef / (finalDef + GetDefenceAddition(pet.GetStateLv()));
 
 			//伤害变更(免伤,受伤加深)
 			float allDmgChg = GetFinalDamageValue(pet.MirrorProp.AllDmgAdd - pet.MirrorProp.AllDmgReduce);

+ 1 - 1
XmdsCommonServer/Plugin/XmdsVirtual/XmdsVirtual.cs

@@ -1673,7 +1673,7 @@ namespace XmdsCommonServer.Plugin
                         this.MirrorProp.BaseDefence += opt.Value;
                     }
 					//攻击异常日志
-					if (this.MirrorProp.Defence > this.GetOriginProp().Defence * 3)
+					if (this.MirrorProp.Defence > this.GetOriginProp().Defence * 5)
 					{
 						this.PrintAttrErrorInfo(opt.Type, this.MirrorProp.Defence, this.GetOriginProp().Defence);
 					}

+ 6 - 6
XmdsServerCS/XmdsServerEdgeJS/XmdsPlayerUtil.cs

@@ -38,7 +38,7 @@ namespace XmdsServerEdgeJS
             _instance = value;
         }
 
-        public XmdsUnitData createXmdsUnitData(dynamic input)
+        public XmdsUnitData createXmdsUnitData(dynamic input, string playerId)
         {
             try
             {
@@ -46,7 +46,7 @@ namespace XmdsServerEdgeJS
                 data.BaseInfo = createXmdsUnitBaseInfo(input.basic);
                 data.UnitPKInfo = createXmdsPKInfo(input.pkInfo);
                 data.AvatarList = createXmdsAvatarInfoList(input.avatars);
-                data.Prop = createXmdsUnitProp(input.effects);
+                data.Prop = createXmdsUnitProp(input.effects, playerId);
                 data.Prop.HP = (int)input.tempData.hp;
 				if(data.Prop.HP <= 0)
 				{
@@ -54,7 +54,7 @@ namespace XmdsServerEdgeJS
 					//防止异常
 					data.Prop.HP = 1;
 				}
-                data.PropExt = createXmdsUnitProp(input.effectsExt);
+                data.PropExt = createXmdsUnitProp(input.effectsExt, playerId);
 
 				UnitSkillData skillData = createXmdsUnitSkillInfo(input.skills);
 				data.Skills = skillData.normalSkill;
@@ -102,7 +102,7 @@ namespace XmdsServerEdgeJS
                 PetData petData = new PetData();
                 PetBaseInfo baseInfo = createPetBaseData(petBase);
                 petData.BaseInfo = baseInfo;
-                XmdsUnitProp unitProp = createXmdsUnitProp(petEffect);
+                XmdsUnitProp unitProp = createXmdsUnitProp(petEffect, "");
                 petData.UnitProp = unitProp;
 				UnitSkillData skillData = createXmdsUnitSkillInfo(petSkill);
 				XmdsUnitSkillInfo skillInfo = skillData.normalSkill;
@@ -223,7 +223,7 @@ namespace XmdsServerEdgeJS
         }
 
         /*注意,该接口为玩家和宠物公用,单方新增字段需加判断,否则会报错(如下:bagRemainCount和teamBagRemainCount字段)*/
-        public XmdsUnitProp createXmdsUnitProp(dynamic input)
+        public XmdsUnitProp createXmdsUnitProp(dynamic input, string playerId)
         {
             try
             {
@@ -265,7 +265,7 @@ namespace XmdsServerEdgeJS
                 prop.MoveSpeed = (input.MoveSpeed != null) ? (float)input.MoveSpeed : 0;
 				if (prop.MoveSpeed != 0 && (prop.MoveSpeed > 100 || prop.MoveSpeed < 2))
 				{
-					log.Warn("玩家/宠物移速确定是认真的? : " + prop.MoveSpeed);
+					log.Warn("玩家/宠物移速确定是认真的? : " + prop.MoveSpeed + ", " + playerId);
 				}
 
 				prop.VelocityAddition = (input.RunSpeed != null) ? (int)input.RunSpeed : 0;

+ 1 - 1
XmdsServerCS/XmdsServerEdgeJS/Zone/ZoneService.cs

@@ -393,7 +393,7 @@ namespace XmdsServerEdgeJS.Zone
 				int unitTemplateID = (int)data.unitTemplateID;
 
 				XmdsUnitProperties unitprop = new XmdsUnitProperties();
-				XmdsUnitData unitData = XmdsPlayerUtil.instance().createXmdsUnitData(data);
+				XmdsUnitData unitData = XmdsPlayerUtil.instance().createXmdsUnitData(data, playerId);
 				unitprop.ServerData = unitData;
 
 				enter = new XmdsPlayerEnter();

+ 1 - 1
XmdsServerCS/XmdsServerEdgeJS/Zone/ZoneServiceICE.cs

@@ -331,7 +331,7 @@ namespace XmdsServerEdgeJS.Zone
             var player = getPlayer(playerId);
             if (player != null)
             {
-                XmdsUnitProp effectData = XmdsPlayerUtil.instance().createXmdsUnitProp(effects);
+                XmdsUnitProp effectData = XmdsPlayerUtil.instance().createXmdsUnitProp(effects, playerId);
                 XmdsUnitPropEventB2C b2c = new XmdsUnitPropEventB2C(effectData);
                 player.ReceiveMsgR2B(b2c);
             }