|  |  | 
 |  |  | using System.Threading; | 
 |  |  | using UnityEditor; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | public class CrossServerTest : EditorWindow | 
 |  |  | { | 
 |  |  |  | 
 |  |  | 
 |  |  |         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() | 
 |  |  | 
 |  |  |         EditorGUILayout.Space(); | 
 |  |  |         EditorGUILayout.BeginHorizontal(); | 
 |  |  |  | 
 |  |  |         if (GUILayout.Button("链接")) | 
 |  |  |         { | 
 |  |  |             ConnectCrossServer(); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (GUILayout.Button("断开")) | 
 |  |  |         { | 
 |  |  |             DisconnectCrossServer(); | 
 |  |  | 
 |  |  |             GameNetSystem.Instance.SendInfo(match); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (GUILayout.Button("取消匹配")) | 
 |  |  |         if (GUILayout.Button("取消")) | 
 |  |  |         { | 
 |  |  |             var match = new CC101_tagCMCrossRealmPKMatch(); | 
 |  |  |             match.Type = 0; | 
 |  |  | 
 |  |  |  | 
 |  |  |         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); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |