Parcourir la source

MMO-19254:
1.挂机地图增加鲜花掉落过滤,避免普通掉落和鲜花混淆
2. 优化日志

meijun il y a 3 ans
Parent
commit
d19b28bd4e

+ 19 - 11
Common/CommonAI/Zone/Instance/InstanceUnit.cs

@@ -1796,17 +1796,25 @@ namespace CommonAI.Zone.Instance
 
         public ClientStruct.ZoneEnvironmentVar[] GetCurrentUnitVars()
         {
-            ClientStruct.ZoneEnvironmentVar[] ret = new ClientStruct.ZoneEnvironmentVar[EnvironmentVarMap.Count];
-            int i = 0;
-            foreach (EnvironmentVar var in EnvironmentVarMap.Values)
-            {
-                ret[i].Key = var.Key;
-                ret[i].Value = var.Value;
-                ret[i].SyncToClient = var.SyncToClient;
-                i++;
-            }
-            return ret;
-        }
+			ClientStruct.ZoneEnvironmentVar[] ret = new ClientStruct.ZoneEnvironmentVar[EnvironmentVarMap.Count];
+			int i = 0;
+			try
+			{				
+				foreach (EnvironmentVar var in EnvironmentVarMap.Values)
+				{
+					ret[i].Key = var.Key;
+					ret[i].Value = var.Value;
+					ret[i].SyncToClient = var.SyncToClient;
+					i++;
+				}				
+			}
+			catch(Exception e)
+			{
+				log.Warn("GetCurrentUnitVars catch: " + ret.Length + ", " + EnvironmentVarMap.Count + ", " + i + ", e: " + e);
+			}
+
+			return ret;
+		}
         #endregion
         //-----------------------------------------------------------------------------------------------------//
 

+ 6 - 0
Common/CommonAI/Zone/Instance/InstanceZone.cs

@@ -312,6 +312,12 @@ namespace CommonAI.Zone.Instance
         /// <param name="evt"></param>
         public void queueObjectEvent(InstanceZoneObject obj, ObjectEvent evt, bool force = false)
         {
+			if(mSendingEvents == null)
+			{
+				log.Warn("queueObjectEvent exception: " + this.GetSceneID() + ", Players: " + this.AllPlayersCount + ", Items: "
+					+ this.AllItemsCount + ", Units: " + this.AllUnitsCount + ", " + this.UUID + ", " + evt.MessageID);
+				return;
+			}
             if (obj.ID == 0)
                 return;
             if (!force && !obj.IsInZone)

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

@@ -1780,7 +1780,7 @@ namespace XmdsCommonServer.Plugin
 				case UnitAttributeType.AllDmgReduce:
 					this.MirrorProp.AllDmgReduce += opt.Value;
 					// 伤害增加异常日志
-					if (this.MirrorProp.AllDmgReduce > 10000)
+					if (this.MirrorProp.AllDmgReduce > 13000)
 					{
 						this.PrintAttrErrorInfo(opt.Type, this.MirrorProp.AllDmgReduce, opt.Value);
 					}

+ 3 - 1
XmdsVSPlugins/XmdsCommonSkill/Plugin/Skills/XmdsSkillBase.cs

@@ -453,7 +453,9 @@ namespace XmdsCommonSkill.Plugin.Skills
                 }
                 catch (Exception error)
                 {
-                    LogError(string.Format("skill {0} OnCallDamageProcess error:{1} - {2}", gs.SkillID, error.ToString(), error.StackTrace));
+                    LogError(string.Format("skill {0} attackUID:{1}, HitterUID: {2}, SceneID:{3} SceneUID:{4} OnCallDamageProcess error:{5} - {6}", 
+						gs.SkillID, (attacker == null ? "anull" : attacker.mUnit.PlayerUUID), (hitter == null ? "hnull" : hitter.mUnit.PlayerUUID),
+						(attacker == null ? -1 : attacker.mUnit.Parent.GetSceneID()), (attacker == null ? "snull" : attacker.mUnit.Parent.UUID), error.ToString(), error.StackTrace));
                 }
 
                 damage = param.HitResult;

+ 5 - 0
XmdsVSPlugins/XmdsCommonZone/Zones/Zone12201.cs

@@ -102,6 +102,11 @@ namespace XmdsCommonZone.Zones
 
 		public void OnItemRemoveHandler(InstanceZone zone, InstanceItem obj)
 		{
+			if (obj.Info.ID != S_FOLLOWER_ID)
+			{
+				return ;
+			}
+
 			this.mCurFollowers--;
 			//System.Console.WriteLine("--鲜花数量:" + this.mCurFollowers + " / " + this.mFollowerMax);