From 22b7bcdee6f652e9cea8f5a747e262718efffb3a Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期六, 16 二月 2019 10:47:59 +0800
Subject: [PATCH] 6197 【前端】【1.6】跨服匹配玩法

---
 Assets/Editor/Tool/CrossServerEditorWindow.cs |  107 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 93 insertions(+), 14 deletions(-)

diff --git a/Assets/Editor/Tool/CrossServerEditorWindow.cs b/Assets/Editor/Tool/CrossServerEditorWindow.cs
index 7288da3..816d035 100644
--- a/Assets/Editor/Tool/CrossServerEditorWindow.cs
+++ b/Assets/Editor/Tool/CrossServerEditorWindow.cs
@@ -8,6 +8,7 @@
 using System.Threading;
 using UnityEditor;
 
+
 public class CrossServerTest : EditorWindow
 {
 
@@ -26,23 +27,27 @@
         set { LocalSave.SetString("CrossServerIp", value); }
     }
 
+    public bool autoOneVsOneMatch = false;
+
     [MenuItem("绋嬪簭/璺ㄦ湇")]
     public static void Open()
     {
-        var window = (CrossServerTest)GetWindow(typeof(CrossServerTest), true, "璺ㄦ湇", true);
+        var window = GetWindow<CrossServerTest>(false, "璺ㄦ湇");
         window.Show();
-    }
-
-    public static void ConnectCrossServer()
-    {
-        CrossServerLogin.Instance.AccountLogin(crossServerAccount, crossServerIp, 19006);
-        GameNetSystem.Instance.isCrossSevering = true;
+        window.autoRepaintOnSceneChange = true;
     }
 
     public static void DisconnectCrossServer()
     {
         GameNetSystem.Instance.DisconnectCrossServer();
-        GameNetSystem.Instance.isCrossSevering = false;
+    }
+
+    private void Update()
+    {
+        if (autoOneVsOneMatch)
+        {
+            AutoCrossServerOneVsOneMatching();
+        }
     }
 
     private void OnGUI()
@@ -66,11 +71,6 @@
         EditorGUILayout.Space();
         EditorGUILayout.BeginHorizontal();
 
-        if (GUILayout.Button("閾炬帴"))
-        {
-            ConnectCrossServer();
-        }
-
         if (GUILayout.Button("鏂紑"))
         {
             DisconnectCrossServer();
@@ -88,7 +88,7 @@
             GameNetSystem.Instance.SendInfo(match);
         }
 
-        if (GUILayout.Button("鍙栨秷鍖归厤"))
+        if (GUILayout.Button("鍙栨秷"))
         {
             var match = new CC101_tagCMCrossRealmPKMatch();
             match.Type = 0;
@@ -97,6 +97,85 @@
 
         EditorGUILayout.EndHorizontal();
 
+        EditorGUILayout.Space();
+        EditorGUILayout.BeginHorizontal();
+        if (GUILayout.Button("閫�鍑鸿法鏈�"))
+        {
+            var match = new CC104_tagCMExitCrossRealm();
+            GameNetSystem.Instance.SendToCrossServer(match);
+        }
+
+        if (GUILayout.Button("寮哄埗閫�鍑鸿法鏈�"))
+        {
+            var sendInfo = new CC003_tagCGForceQuitCrossState();
+            GameNetSystem.Instance.SendInfo(sendInfo);
+        }
+
+        EditorGUILayout.EndHorizontal();
+        autoOneVsOneMatch = EditorGUILayout.Toggle("鑷姩鍖归厤", autoOneVsOneMatch);
+
+        EditorGUILayout.Space();
+        EditorGUILayout.BeginHorizontal();
+        if (GUILayout.Button("寮�濮嬪鎴风PK"))
+        {
+            ClientCrossServerOneVsOne.FakeMatchOk();
+            ClientCrossServerOneVsOne.StartClientCrossServerOneVsOne();
+        }
+
+        if (GUILayout.Button("閫�鍑哄鎴风PK"))
+        {
+            ClientCrossServerOneVsOne.StopClientCrossServerOneVsOne();
+        }
+
+        EditorGUILayout.EndHorizontal();
+    }
+
+    CrossServerOneVsOneModel oneVsOneModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
+    float timer = 0f;
+
+    private void AutoCrossServerOneVsOneMatching()
+    {
+        timer += Time.deltaTime;
+        if (timer < 5f)
+        {
+            return;
+        }
+
+        timer = 0f;
+
+        if (StageLoad.Instance.isLoading)
+        {
+            return;
+        }
+
+        var mapId = PlayerDatas.Instance.baseData.MapID;
+        var config = MapConfig.Get(mapId);
+        if (config == null)
+        {
+            return;
+        }
+
+        if (config.MapFBType != (int)MapType.OpenCountry)
+        {
+            return;
+        }
+
+        if (oneVsOneModel.IsMatching)
+        {
+            return;
+        }
+
+        if (CrossServerLogin.Instance.IsEnterCrossServerPreparing())
+        {
+            return;
+        }
+
+        if (CrossServerLogin.Instance.busy)
+        {
+            return;
+        }
+
+        oneVsOneModel.SendCrossMatch(1);
     }
 
 }

--
Gitblit v1.8.0