private void OnCharacterSelectionAccepted(ushort cmd, int size, InPacket packet)
    {
        if (packet is HC.NOTIFY_ZONESVR2)
        {
            Core.NetworkClient.Disconnect();

            currentMapInfo = packet as HC.NOTIFY_ZONESVR2;
            Core.NetworkClient.State.SelectedCharacter = selectedCharacter;
            Core.NetworkClient.ChangeServer(currentMapInfo.IP.ToString(), currentMapInfo.Port);
            Core.NetworkClient.CurrentConnection.Start();

            var loginInfo = Core.NetworkClient.State.LoginInfo;
            new CZ.ENTER(loginInfo.AccountID, selectedCharacter.GID, loginInfo.LoginID1, (int)new System.DateTimeOffset(System.DateTime.UtcNow).ToUnixTimeSeconds(), loginInfo.Sex).Send();
        }
    }
    private void OnCharacterSelectionAccepted(ushort cmd, int size, InPacket packet)
    {
        if (packet is HC.NOTIFY_ZONESVR2)
        {
            NetworkClient.Instance.Disconnect();

            currentMapInfo = packet as HC.NOTIFY_ZONESVR2;
            NetworkClient.Instance.State.SelectedCharacter = selectedCharacter;
            NetworkClient.Instance.ChangeServer(currentMapInfo.IP.ToString(), currentMapInfo.Port);
            NetworkClient.Instance.CurrentConnection.Start();

            var entity = Core.EntityManager.SpawnPlayer(Core.NetworkClient.State.SelectedCharacter);
            Session.StartSession(new Session(entity, Core.NetworkClient.State.LoginInfo.AccountID));
            DontDestroyOnLoad(entity.gameObject);

            var mapUI = Instantiate(MapUIPrefab);
            DontDestroyOnLoad(mapUI);

            var loginInfo = NetworkClient.Instance.State.LoginInfo;
            new CZ.ENTER2(loginInfo.AccountID, selectedCharacter.GID, loginInfo.LoginID1, (int)new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(), loginInfo.Sex).Send();
        }
    }