فهرست منبع

增加编辑器事件开端:“从游戏服接收到消息”

大爷 1 سال پیش
والد
کامیت
4e8d898a86

+ 5 - 2
Common/CommonAI/Zone/EventTrigger/EventAdapter.cs

@@ -499,12 +499,15 @@ namespace CommonAI.Zone.EventTrigger
 			};
 		}
 
-		public void listen_RecvMessageFromGS(EventArguments args, InstanceZone zone)
+		public void listen_RecvMessageFromGS(EventArguments args, InstanceZone zone, string msg)
 		{
 			args = args.Clone();
 			InstanceZone.RecvMessageR2BHandler handler = new InstanceZone.RecvMessageR2BHandler((z, m) =>
 			{
-				TestAndDoAction(args);
+				if (m.Message == msg)
+				{
+					TestAndDoAction(args);
+				}
 			});
 			zone.OnRecvMessageFromGS += handler;
 			this.OnDisposed += (api) =>

+ 4 - 2
Common/CommonAI/Zone/ZoneEditor/EventTrigger/Triggers.Zone.cs

@@ -132,13 +132,15 @@ namespace CommonAI.Zone.ZoneEditor.EventTrigger
     [DescAttribute("当从游戏服收到消息", "游戏服")]
     public class RecvMessageFromGS : AbstractTrigger
     {
+        [DescAttribute("消息name")]
+        public string Message;
         public override string ToString()
         {
-            return string.Format("当从游戏服收到消息");
+            return string.Format("当从游戏服收到消息“{0}”", Message);
         }
         public override void Listen(EventTriggerAdapter api, EventArguments args)
         {
-            api.listen_RecvMessageFromGS(args, api.ZoneAPI);
+            api.listen_RecvMessageFromGS(args, api.ZoneAPI, Message);
         }
     }
     

+ 9 - 2
XmdsServerCS/XmdsServerEdgeJS/Zone/ZoneService.cs

@@ -116,8 +116,15 @@ namespace XmdsServerEdgeJS.Zone
 			var node = getZoneNode(instanceId);
 			if (node != null)
 			{
-				//b2r_proxy.SendToBattleServer(node.Node.Zone, param);
-				param.OnHandle(node.Node.Zone);
+				if(param is TriggerEventR2B triggerO)
+				{
+					node.Node.Zone.RecvMessageFromGameServer(new CommonAI.ZoneServer.SendMessageR2B() { Message = triggerO.message });
+                }
+				else
+				{
+                    //b2r_proxy.SendToBattleServer(node.Node.Zone, param);
+                    param.OnHandle(node.Node.Zone);
+                }
 			}
 		}
 		private void updatePrivateMemory(object state)

+ 5 - 0
XmdsServerCS/XmdsServerNode/R2NotifyMessageDefined.cs

@@ -222,4 +222,9 @@ namespace XmdsServerNode.Node.R2bNotify
 			zone.GSZoneFlagNotifyMsg(value1);
 		}
 	}
+
+    public class TriggerEventR2B : R2BNotifyMessage
+    {
+        public string message;
+    }
 }