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

ResponseType修改,调通

tanghai пре 4 година
родитељ
комит
5cd9601ae5

+ 1 - 1
Server/Hotfix/Module/DB/DBComponentSystem.cs

@@ -13,7 +13,7 @@ namespace ET
 			self.database = self.mongoClient.GetDatabase(dbName);
 			
 			self.Transfers.Clear();
-			foreach (Type type in Game.EventSystem.GetTypes())
+			foreach (Type type in Game.EventSystem.GetTypes().Values)
 			{
 				if (type == typeof (IDBCollection))
 				{

+ 1 - 1
Server/Model/Base/MongoRegister.cs

@@ -30,7 +30,7 @@ namespace ET
 
             var types = Game.EventSystem.GetTypes();
 
-            foreach (Type type in types)
+            foreach (Type type in types.Values)
             {
                 if (!type.IsSubclassOf(typeof (Object)))
                 {

+ 11 - 11
Server/Model/Generate/Message/InnerMessage.cs

@@ -6,7 +6,7 @@ namespace ET
 /// <summary>
 /// 传送unit
 /// </summary>
-	[ResponseType(typeof(M2M_TrasferUnitResponse))]
+	[ResponseType("M2M_TrasferUnitResponse")]
 	[Message(InnerOpcode.M2M_TrasferUnitRequest)]
 	[ProtoContract]
 	public partial class M2M_TrasferUnitRequest: Object, IActorRequest
@@ -40,7 +40,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(A2M_Reload))]
+	[ResponseType("A2M_Reload")]
 	[Message(InnerOpcode.M2A_Reload)]
 	[ProtoContract]
 	public partial class M2A_Reload: Object, IActorRequest
@@ -68,7 +68,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(G2G_LockResponse))]
+	[ResponseType("G2G_LockResponse")]
 	[Message(InnerOpcode.G2G_LockRequest)]
 	[ProtoContract]
 	public partial class G2G_LockRequest: Object, IActorRequest
@@ -102,7 +102,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(G2G_LockReleaseResponse))]
+	[ResponseType("G2G_LockReleaseResponse")]
 	[Message(InnerOpcode.G2G_LockReleaseRequest)]
 	[ProtoContract]
 	public partial class G2G_LockReleaseRequest: Object, IActorRequest
@@ -136,7 +136,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(ObjectAddResponse))]
+	[ResponseType("ObjectAddResponse")]
 	[Message(InnerOpcode.ObjectAddRequest)]
 	[ProtoContract]
 	public partial class ObjectAddRequest: Object, IActorRequest
@@ -170,7 +170,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(ObjectLockResponse))]
+	[ResponseType("ObjectLockResponse")]
 	[Message(InnerOpcode.ObjectLockRequest)]
 	[ProtoContract]
 	public partial class ObjectLockRequest: Object, IActorRequest
@@ -207,7 +207,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(ObjectUnLockResponse))]
+	[ResponseType("ObjectUnLockResponse")]
 	[Message(InnerOpcode.ObjectUnLockRequest)]
 	[ProtoContract]
 	public partial class ObjectUnLockRequest: Object, IActorRequest
@@ -244,7 +244,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(ObjectRemoveResponse))]
+	[ResponseType("ObjectRemoveResponse")]
 	[Message(InnerOpcode.ObjectRemoveRequest)]
 	[ProtoContract]
 	public partial class ObjectRemoveRequest: Object, IActorRequest
@@ -275,7 +275,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(ObjectGetResponse))]
+	[ResponseType("ObjectGetResponse")]
 	[Message(InnerOpcode.ObjectGetRequest)]
 	[ProtoContract]
 	public partial class ObjectGetRequest: Object, IActorRequest
@@ -309,7 +309,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(G2R_GetLoginKey))]
+	[ResponseType("G2R_GetLoginKey")]
 	[Message(InnerOpcode.R2G_GetLoginKey)]
 	[ProtoContract]
 	public partial class R2G_GetLoginKey: Object, IActorRequest
@@ -346,7 +346,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(M2G_CreateUnit))]
+	[ResponseType("M2G_CreateUnit")]
 	[Message(InnerOpcode.G2M_CreateUnit)]
 	[ProtoContract]
 	public partial class G2M_CreateUnit: Object, IActorRequest

+ 8 - 8
Server/Model/Generate/Message/OuterMessage.cs

@@ -3,7 +3,7 @@ using ProtoBuf;
 using System.Collections.Generic;
 namespace ET
 {
-	[ResponseType(typeof(M2C_TestResponse))]
+	[ResponseType("M2C_TestResponse")]
 	[Message(OuterOpcode.C2M_TestRequest)]
 	[ProtoContract]
 	public partial class C2M_TestRequest: Object, IActorLocationRequest
@@ -37,7 +37,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(Actor_TransferResponse))]
+	[ResponseType("Actor_TransferResponse")]
 	[Message(OuterOpcode.Actor_TransferRequest)]
 	[ProtoContract]
 	public partial class Actor_TransferRequest: Object, IActorLocationRequest
@@ -68,7 +68,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(G2C_EnterMap))]
+	[ResponseType("G2C_EnterMap")]
 	[Message(OuterOpcode.C2G_EnterMap)]
 	[ProtoContract]
 	public partial class C2G_EnterMap: Object, IRequest
@@ -241,7 +241,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(G2C_Ping))]
+	[ResponseType("G2C_Ping")]
 	[Message(OuterOpcode.C2G_Ping)]
 	[ProtoContract]
 	public partial class C2G_Ping: Object, IRequest
@@ -275,7 +275,7 @@ namespace ET
 	{
 	}
 
-	[ResponseType(typeof(M2C_Reload))]
+	[ResponseType("M2C_Reload")]
 	[Message(OuterOpcode.C2M_Reload)]
 	[ProtoContract]
 	public partial class C2M_Reload: Object, IRequest
@@ -306,7 +306,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(R2C_Login))]
+	[ResponseType("R2C_Login")]
 	[Message(OuterOpcode.C2R_Login)]
 	[ProtoContract]
 	public partial class C2R_Login: Object, IRequest
@@ -346,7 +346,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(G2C_LoginGate))]
+	[ResponseType("G2C_LoginGate")]
 	[Message(OuterOpcode.C2G_LoginGate)]
 	[ProtoContract]
 	public partial class C2G_LoginGate: Object, IRequest
@@ -389,7 +389,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(M2C_TestRobotCase))]
+	[ResponseType("M2C_TestRobotCase")]
 	[Message(OuterOpcode.C2M_TestRobotCase)]
 	[ProtoContract]
 	public partial class C2M_TestRobotCase: Object, IActorLocationRequest

+ 1 - 1
Server/Model/Proto2CS/Program.cs

@@ -75,7 +75,7 @@ namespace ET
                 if (newline.StartsWith("//ResponseType"))
                 {
                     string responseType = line.Split(" ")[1].TrimEnd('\r', '\n');
-                    sb.AppendLine($"\t[ResponseType(typeof({responseType}))]");
+                    sb.AppendLine($"\t[ResponseType(\"{responseType}\")]");
                     continue;
                 }
 

+ 5 - 0
Unity/Assets/Mono/Core/Log/Log.cs

@@ -79,6 +79,11 @@ namespace ET
 
         public static void Error(Exception e)
         {
+            if (e.Data.Contains("StackTrace"))
+            {
+                ILog.Error(e.Data["StackTrace"].ToString());
+                return;
+            }
             string str = e.ToString();
             ILog.Error(str);
         }

+ 11 - 8
Unity/Codes/Model/Core/Object/EventSystem.cs

@@ -69,7 +69,9 @@ namespace ET
 		private readonly Dictionary<long, Entity> allEntities = new Dictionary<long, Entity>();
 
 		private readonly Dictionary<string, Assembly> assemblies = new Dictionary<string, Assembly>();
-		
+
+		private readonly Dictionary<string, Type> allTypes = new Dictionary<string, Type>();
+
 		private readonly UnOrderMultiMapSet<Type, Type> types = new UnOrderMultiMapSet<Type, Type>();
 
 		private readonly Dictionary<Type, List<object>> allEvents = new Dictionary<Type, List<object>>();
@@ -110,6 +112,12 @@ namespace ET
 
 		public void Add(Type[] addTypes)
 		{
+			this.allTypes.Clear();
+			foreach (Type addType in addTypes)
+			{
+				this.allTypes[addType.FullName] = addType;
+			}
+			
 			this.types.Clear();
 			
 			List<Type> baseAttributeTypes = GetBaseAttributes(addTypes);
@@ -186,19 +194,14 @@ namespace ET
 			return this.types[systemAttributeType];
 		}
 		
-		public List<Type> GetTypes()
+		public Dictionary<string, Type> GetTypes()
 		{
-			List<Type> allTypes = new List<Type>();
-			foreach (Assembly assembly in this.assemblies.Values)
-			{
-				allTypes.AddRange(assembly.GetTypes());
-			}
 			return allTypes;
 		}
 
 		public Type GetType(string typeName)
 		{
-			return typeof (Game).Assembly.GetType(typeName);
+			return this.allTypes[typeName];
 		}
 
 		public void RegisterSystem(Entity component, bool isRegister = true)

+ 1 - 1
Unity/Codes/Model/Generate/Config/AIConfig.cs

@@ -26,7 +26,7 @@ namespace ET
 		
         public override void EndInit()
         {
-            Log.Debug("1111111111111111111111111 list数量: " + list.Count.ToString());
+            Log.Debug($"1111111111111111111111111111: {this.list.Count}");
             
             foreach (AIConfig config in list)
             {

+ 8 - 8
Unity/Codes/Model/Generate/Message/OuterMessage.cs

@@ -3,7 +3,7 @@ using ProtoBuf;
 using System.Collections.Generic;
 namespace ET
 {
-	[ResponseType(typeof(M2C_TestResponse))]
+	[ResponseType("M2C_TestResponse")]
 	[Message(OuterOpcode.C2M_TestRequest)]
 	[ProtoContract]
 	public partial class C2M_TestRequest: Object, IActorLocationRequest
@@ -37,7 +37,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(Actor_TransferResponse))]
+	[ResponseType("Actor_TransferResponse")]
 	[Message(OuterOpcode.Actor_TransferRequest)]
 	[ProtoContract]
 	public partial class Actor_TransferRequest: Object, IActorLocationRequest
@@ -68,7 +68,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(G2C_EnterMap))]
+	[ResponseType("G2C_EnterMap")]
 	[Message(OuterOpcode.C2G_EnterMap)]
 	[ProtoContract]
 	public partial class C2G_EnterMap: Object, IRequest
@@ -241,7 +241,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(G2C_Ping))]
+	[ResponseType("G2C_Ping")]
 	[Message(OuterOpcode.C2G_Ping)]
 	[ProtoContract]
 	public partial class C2G_Ping: Object, IRequest
@@ -275,7 +275,7 @@ namespace ET
 	{
 	}
 
-	[ResponseType(typeof(M2C_Reload))]
+	[ResponseType("M2C_Reload")]
 	[Message(OuterOpcode.C2M_Reload)]
 	[ProtoContract]
 	public partial class C2M_Reload: Object, IRequest
@@ -306,7 +306,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(R2C_Login))]
+	[ResponseType("R2C_Login")]
 	[Message(OuterOpcode.C2R_Login)]
 	[ProtoContract]
 	public partial class C2R_Login: Object, IRequest
@@ -346,7 +346,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(G2C_LoginGate))]
+	[ResponseType("G2C_LoginGate")]
 	[Message(OuterOpcode.C2G_LoginGate)]
 	[ProtoContract]
 	public partial class C2G_LoginGate: Object, IRequest
@@ -389,7 +389,7 @@ namespace ET
 
 	}
 
-	[ResponseType(typeof(M2C_TestRobotCase))]
+	[ResponseType("M2C_TestRobotCase")]
 	[Message(OuterOpcode.C2M_TestRobotCase)]
 	[ProtoContract]
 	public partial class C2M_TestRobotCase: Object, IActorLocationRequest

+ 1 - 0
Unity/Codes/Model/Module/AI/AIConfig.cs

@@ -8,6 +8,7 @@ namespace ET
 {
 	public partial class AIConfigCategory
 	{
+		[ProtoIgnore]
 		public Dictionary<int, SortedDictionary<int, AIConfig>> AIConfigs = new Dictionary<int, SortedDictionary<int, AIConfig>>();
 
 		public SortedDictionary<int, AIConfig> GetAI(int aiConfigId)

+ 1 - 1
Unity/Codes/Model/Module/Message/OpcodeTypeComponent.cs

@@ -80,7 +80,7 @@ namespace ET
                     }
 
                     ResponseTypeAttribute responseTypeAttribute = attrs[0] as ResponseTypeAttribute;
-                    this.requestResponse.Add(type, responseTypeAttribute.Type);
+                    this.requestResponse.Add(type, Game.EventSystem.GetType($"ET.{responseTypeAttribute.Type}"));
                 }
             }
         }

+ 2 - 2
Unity/Codes/Model/Module/Message/ResponseTypeAttribute.cs

@@ -4,9 +4,9 @@ namespace ET
 {
     public class ResponseTypeAttribute: BaseAttribute
     {
-        public Type Type { get; }
+        public string Type { get; }
 
-        public ResponseTypeAttribute(Type type)
+        public ResponseTypeAttribute(string type)
         {
             this.Type = type;
         }