少年修仙传客户端基础资源
lwb
2020-11-20 523a8c5b8de799aeaeaa7287f0b4f9e2edf339ee
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);
    }
}