Преглед изворни кода

修改受击特效过滤规则,只要在视野范围内的受击特效都将展示

大爷 пре 1 година
родитељ
комит
fadd57e18a
2 измењених фајлова са 13 додато и 10 уклоњено
  1. 3 3
      Common/CommonAI/Zone/Instance/InstanceUnit.cs
  2. 10 7
      Common/CommonAIServer/Node/ZoneNode.cs

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

@@ -810,10 +810,10 @@ namespace CommonAI.Zone.Instance
                     evt.effect = source.OutHitEffect;
                     evt.SourceAttack = source.Attack;
                     evt.client_state = source.OutClientState;
-                    if (source != null && attacker != null && source.FromSkillType == XmdsSkillType.cardSkill && this.IsMonster && attacker.IsMonster)
-                    {
+                    //if (source != null && attacker != null && source.FromSkillType == XmdsSkillType.cardSkill && this.IsMonster && attacker.IsMonster)
+                    //{
                         evt.InViewForceSend = true;
-                    }
+                    //}
 
                     queueEvent(evt);
                 }

+ 10 - 7
Common/CommonAIServer/Node/ZoneNode.cs

@@ -389,7 +389,7 @@ namespace CommonAIServer.Node
 				//}
 				if (he.senderId != mActor.ID && he.object_id != mActor.ID && he.senderMasterId != mActor.ID && he.hitMasterId != mActor.ID)
 				{
-					if(he.InViewForceSend && he.sender != null && client.IsInView(he.sender as InstanceZoneObject))
+					if(he.InViewForceSend && he.sender != null && client.IsInView(he.object_id))
 					{
 						return msg;
 					}
@@ -427,13 +427,9 @@ namespace CommonAIServer.Node
             {
                 // 过滤不在自己感兴趣范围内的消息 //
                 ObjectEvent om = msg as ObjectEvent;
-                if (om.ObjectID != mActor.ID && om.sender is InstanceZoneObject)
+                if (om.ObjectID != mActor.ID && !client.IsInView(om.ObjectID))
                 {
-                    InstanceZoneObject obj = om.sender as InstanceZoneObject;
-                    if (!client.IsInView(obj))
-                    {
-                        return null;
-                    }
+                    return null;
                 }
             }
             else if (msg is ClientEvent)
@@ -682,6 +678,13 @@ namespace CommonAIServer.Node
                 else
                     return true;
             }
+            public bool IsInView(uint id)
+            {
+                if (mNode.mEnableAOI)
+                    return mInViewList.ContainsKey(id);
+                else
+                    return true;
+            }
             public bool IsLookInRange(float x, float y)
             {
                 if (mNode.mEnableAOI)