Kaynağa Gözat

【优化】MMO-21107:拆分召唤物和宠物脱战机制

meijun 3 yıl önce
ebeveyn
işleme
0eb8a07652

+ 13 - 3
XmdsCommonServer/Plugin/Units/XmdsInstancePet.cs

@@ -101,10 +101,9 @@ namespace XmdsCommonServer.Plugin.Units
                     //}
                 }
 
-				//主人脱战了,并且没有伤害,宠物强行脱战
+				//2021.11.1 主人脱战了,并且没有伤害,宠物强行脱战(宠物战斗会导致玩家无法脱战)
 				//2020.9.22修改,宠物可以和怪物撕逼
-                if (CurrentState is StateIdle || (this.Master.mLastHitOtherTime + XmdsConfig.Instance.OUTOF_BATTLE_PLAYER < CommonLang.CUtils.localTimeMS
-					&& this.Master.mLastDamageTime + XmdsConfig.Instance.OUTOF_BATTLE_PLAYER < CommonLang.CUtils.localTimeMS))
+                if (this.checkOutOffBattle())
                 {
                     mCurAtkUnit = null;
 
@@ -134,6 +133,17 @@ namespace XmdsCommonServer.Plugin.Units
 			}
         }
 
+        public virtual bool checkOutOffBattle()
+        {
+            if (CurrentState is StateIdle || (this.Master.mLastHitOtherTime + XmdsConfig.Instance.OUTOF_BATTLE_PLAYER < CommonLang.CUtils.localTimeMS
+                    && this.Master.mLastDamageTime + XmdsConfig.Instance.OUTOF_BATTLE_PLAYER < CommonLang.CUtils.localTimeMS))
+            {
+                return true;
+            }
+
+            return false;
+        }
+
         public void SetFollowMode(XmdsCommon.Plugin.XmdsPetConifg.XmdsPetFollowMode mode)
         {
             if (mCurFollowMode != mode)

+ 11 - 0
XmdsCommonServer/Plugin/Units/XmdsInstanceSummonUnit.cs

@@ -75,6 +75,17 @@ namespace XmdsCommonServer.Plugin.Units
 
 			return true;
 		}
+
+		public override bool checkOutOffBattle()
+		{
+			if (CurrentState is StateIdle)
+			{
+				return true;
+			}
+
+			return false;
+		}
+
 		protected override void Disposing()
         {
             BindUnit = null;