using UnityEngine; using System.Collections; using System.IO; using FairyGUI; using MiniJSON; using UnityEngine.Networking; using taurus.unity; using System.Text; using System; using taurus.client; public class VerCheck : MonoBehaviour { GComponent _version_view; public static VerCheck Instance { get; private set; } public securityConnection conn; public bool isGFF = false; public bool isDXYGFF = true; void Awake() { Instance = this; } // Use this for initialization void Start() { GameApplication.Instance.isAndroid64bit = IsAndroid64bit(); CreateVersionView(); StartCoroutine(CheckNet()); } internal void ResetGame() { CreateVersionView(); StartCoroutine(__WaitReset()); } IEnumerator __WaitReset() { var _luaClient = GameApplication.Instance.GetComponent(); UnityEngine.Object.Destroy(_luaClient); System.GC.Collect(); FontManager.Clear(); UIPackage.RemoveAllPackages(); ResourcesManager.DestroyAll(); CreateVersionView(); yield return null; StartCoroutine(CheckNet()); } void CreateVersionView() { ResourcesManager.ReadAssetConfig("base/embed"); UIPackage.AddPackage("base/embed/ui/Hotupdate"); if (_version_view != null) _version_view.Dispose(); _version_view = null; _version_view = UIPackage.CreateObjectFromURL("ui://Hotupdate/Version").asCom; GRoot.inst.AddChildAt(_version_view,0); _version_view.width = GRoot.inst.width; _version_view.height = GRoot.inst.height; _version_view.x = (GRoot.inst.width - _version_view.width) / 2; Debug.LogError(Application.persistentDataPath); } public bool IsAndroid64bit() { #if UNITY_ANDROID && !UNITY_EDITOR if (IntPtr.Size == 8) { return true; } return false; #else return false; #endif } IEnumerator CheckNet() { string json_data = string.Empty; isDXYGFF= false; isGFF = false; string init_url = "http://8.148.219.235:19898/NewFK/config/init2_1.json"; //string init_url = ""; if (isGFF==false&&isDXYGFF==false) { } else { if (isGFF) { int rc = AppVest.init("8ef91e7e799b5851a8ce810aae0c697c", "U5ayF4voVvRh1ElqBIVUCR9dSFskPGvCkfreFxdxzi39hoU0faqZWjFzC90Cta50egaQatCbPxm6XTlvi2+o++PrSozoZ+HUUY0y8tBloMWaOYQX59SAhjA/DyIDHJgGbE1I"); if (rc != 0) { // Debug.LogError("init failed"); ShowTip("GF init failed!", () => { StartCoroutine(CheckNet()); }); } // Debug.LogError("init successful"); conn.ip = ""; conn.port = 0; int rc1 = AppVest.getServerIPAndPort(ref conn, "", 5021); if (rc1 != 0) { ShowTip("getServerIPAndPort failed!", () => { StartCoroutine(CheckNet()); }); yield break; } } else { string key = "cfPrC3NCoGHakhAAAM0odQ9vPD2p/Z011HH1sH0lxS58Op1ba3Tbjv0PhHAydds8NO780Uy3jY0tUzMBS+7jtDi7r54wzAqakq0/mnktAl+VuXuOJ/PgxKwPLhdB2kIOK843dsQ8DGfjYj6eePEUAFHTa5ByVI1E2enwIJ3yWLdqMG6p9YuZWK0TqcO1Qky5+S7FbW6wmtVB8ZvaSurJ8AmFM0eCagnEORLiXqrIjpedNiZvLepIuJSYZwPvvg3CSbe6Lw8EN44kADNczTwreGMDPBPDWsMdPHmy6QIG1HoEHxXxDV6ImP6WSiy36+pYbO2e64H4/e7znPGUUUyLHSu3V64mOWoFeqIULQ+XZU+OWnwUZ+f4CyAm/XBr8kexCiwA/pQ7MTODmXDd5NDeWzaiBvXPd7VCvkyNmeIBAeFiawndXlvXzKpZcQ5ylauBWkxPQX0QrxZIaEZDtIdQNf3jNw3EfJBeMcgL3+mHcz3SzIOkWJoHsZR2F+i+TYQ/U1CU6vJRxi4VEnebxSWxwlIeBJsnsu9Jtl2tVbVBs1SF0Lj7vhEvlNhSja69QLQoBMPOXnk0AebOaRBL0d9IeY6pOIRJjt5QkaOO2A0TSlZY/YJU86zNlGJ9wlY3hlcSHBcgljsMT6ys2JBizZMl+bJ9nAEsNYUiwdSdjvXhjs+t0r5KY5jF4mRlzjLim5gDAVKuFhjhalCm5YSVka1fEG9RX4KWbfTe4wMDJKBgVqaia+6v5RQEugw/B3HuuXO3d4uF7CKntoGvtWONBIpnNXfyzHCoe+ce5UpwC81wyp0QP5zjhYfL74a4d+ypA6JHg7hCYVCyrSIuD2i3ngBVRQNipc4+IW80/bXCA++OO3dNsRO6svvrNbeg0q74wWrxpAZ2/N83PbpaYfiRthxnXyi6YIoljzALS9ye2gbnV9tjp/2sZeSK/Z2UQqzjXwqCZAqKH8Z9kUaXqFGqYp/p1HKbLn34Dmwu9iKN7qVRWTiTqxUTFwwM6h6xb9cAOwEhcb5YCkyTV84tWnp9/C4zpQB6V3Dfuq5P5CvDBkSFffR5Rqs9nTkXg+Pz73wwOUMVd2bX/vAuCT2IrnTsd4D7qYI63PNbtvuXkX198Jf5/PTz/y1ihn/IQy+/OvIoCF7LQHDjnizP8zH086Lhl2d4i0XqL2hqIMy7l6T8XwrkoKSD1WkY+jfaLJcAmNtOreXRUc+3SGcSXwqPuhK/4yiNmPhsn7N9aV+qyRnvWhTt/sd8BKLAZuoeMZOj7G5FC4NTG/oPsnhU+o1v4d/m5GEZPEZ0LG8QE53i6TeF8GvZianYuz1CS5G68IV7rHHDclYYMK0qFu6fCT3mWRJKd/H0ZpY0N7pNg3h5sUodra1s7LoKBE3z3Is/taJmHLI2YMsQFWVvEyUxsUCM/RnYCOJ5zV4z1OHjTgafy74Kkj+0BKF9EZ/H6rPw77FAFa0Qr3hH3gWGET2LJtZZahAq7twCRLNfalplVo9b0RWedV6lJsN9SVCqesP2Sh2VLythbW2DAebju/p1pH9IpMg0g6gWSdB8RW9MAEzniAIm0mxL/tSEgnoD3FIqaREe2l2T2ipMKO+lvEY0k/vIuWlgG/+wiLVBmtMdrDjQRHk2DwElA2/rBQSEleoTvHGlYEudxIhYxEUrGdlT+U75pn2SdZ7bZtRXS+UYI4wj3VvKDqf/IE9syQzTjeNkltMHGWzLml/r68+wArUUEpLcG2yMuiGl90Y5V/WCmf8tZGNw5ski4oVSi7DZkfDe+87B0Zcp6OUXgh5Y+Y79oWQZvF5bWEtCnILL5OVvVCLvvflSDeiwRJzZfFKbvh5HCWh9adHAhU/Dent5SIV2LJKwOHjPJfR48uGrvVVqdr5zWPOx/zJxmk056PuNrNXns2F3OUnyvhyupDP93+FI1fkc8sC/zCO6IQU+R8Y2IwKEn9SDb+vrcGXztvfIqWnxWfz0vb7xssF3bMH17Oe32fc3Fri9JasEsOvWvyP6sWEfCLx7P3ljUSIMUH34cIv/+cZIOWlGblnel2+xqoJ+HSia+RH0nWZJ4jNEGvikDXEHu0iOA2e3BqUZwtvazSzqNIal3tFnevRffMMSRyemGF9la69BvD11AzRzrCxUjM66gBOiONbh6qvia4r7v0LaqShhJ9dIhfs4C1kmL1xREvDs9QLVHakPs6GTyWVvC7NRq6PAuF0E/5aoNeN/0SBtnHASPKBrHosZDgiB5EMCKB6hB+5X66VVMi29yyK6vbmuzR6JNJZIERD3hVTsPnz1AvTlf8eMIgZof0yecawAynO2BbXZTSIaYqdho8ewWls/JgoZzs1rZiSkplDPkMZtShvY8gZ1Yq7rHT6WXGB0wX3MKCzxRO6DJd49ZnEnLCgL+2R00UtS5KBiI9cfNB2WUd2t1B0hsGvXTl1x2GzINmaqrw3PYNnoI4fvgl3JH184vth4C0tLcvM1yfesOAV9Ma41FKk5VYKXbkZVp2OcdNunKzHGe06X4sULHGJXN6W8U9cRu9Np8e5ykc67wUsB3psZPVQ+W0YTXbphOZCZuLs1VP1J4FMVN1tbGvg663b74TFaDcGVNpIL2G2OYHYu+IMYL3pgu2qOObW8kwyGl80NI/Da9+j33uAEpp8V57zEX6q4CCv17Sq3mGkE7BhGPFv+NOdbOJJTlG6I4me+vNzqKfidwBvKqRvxGtj5iFG6rMqfeboZD0cWNuRFDDURpcVdzqe1+XdQuNggIeJuivLIL13yPcRxe3i0bnNfGjmFgXN1FOTwpQ18ZamWEy23dWHBQ9lhyxPiE0t7Yzwga4w1mt6XBDTXfYGFPL90RZkDnWp6we6AeoSC1HEMgMUwUQ3w0sFEcdDo+LoPvCfIFGSLZa9CvvjTK8i6VHS0HwXLbK8k+LdSrPmIAV21XCQ4UBK9ZKVL6QqojdLFW1+HGqrcFZpC9GgWj4n8mJKFIadwqBKN1AhVc80BTduPMbn2U1d/HKkMm9xQA/QT7mikbnhyRrTjYMEhlpUEgz58uchoOxbzKgkMSrNgrH92ppImFm1yPCit2mqBVFRlp/B7NebqXAkLKB5y8Nv9aSCLg5VexHlg+SG5xuV6r6Rac2NCFaeNlSs++pHrcJ3tP4K/FqM4tuPh5fI/V8LHqZyVpcUzMAKSt2hsONZsU0U6X6u1xMVJrtEy3fdtGegBs3ym9oEsr5DPQvl28BecbUtFOkGcl9dtzFGvEYVbb6ViNjwlCiZATQoDc1vkMa2Iwdci63TvR/weOIVAXKwws+y9cVJq7wfXjFk9AAbXPAu/XEVZct5tcIhYjVprg3oAl7J3ygOrgdRrF181fmOre0s3+zMUiYOQdSSwAjEciMfNlKDnBktTZyX8QwhDPBFnrSnB3Rdo6LjugHaNtnxTBgmMvvt/X6Aa2wctibDrYqatH0vfc/wpV7mL/Rgc5KlwqHqgn7L1OIeGxOEpSyGsdnI6TO7XZTqkc59kWvQrtiIRxexUGbWtErM3Qs0ywE7bxI9G1TvjbjNmK83e9eueBt6Nvh78vtj4H4dmpzJYtl88cpqHScWQW08vmPtog8TIfyjayeRYqVSSwUUq+1ReGJfbY1s8w0tN4cPayZ8gO/3X8EjSMEJrsDrwTMv5OXdUyQvvtmoTBE7/qeTP/9B1Xil2auw7NXcL+JgeKkP5LuFGTkOver7JjpRcoOTUiSfa564YRCB87pShYD1qkkEgQK+BoU4FTzeVAJ00WEfDC+uTP/vFxtgPetnPbQr54AwLT9bnpIYBLXxVHPS/ayCgesPcMtO0BRPQ+OzG2eFjulnLvoc2z0sPYZKzGXIK8UPZY8aILXNqqKUG8ygRtVoKJigA1SBKm8nrkVc2AjLOtfZCbwYVZ+IpqJ5Gz04eSZtRAnmTwx+Zg52nY7JjR1BLr3Dq/GZuPrM9ExE3EPZyeu5TnMpyd/D0ZCHaQAMI1exw/D2pDOlSmdOBQIcvE9R7R1eUe1QkpLTtNzHLVpoPHNTO4iyfXmTtJQKtKj2X+AkCdGoVV5J750dlVLywFFGu1Y0FA9M6gsXgDhcOWg4fgffboScjUJ4WQcv+bhG1Va2U0twO4ce+0ZERw9EpTSd3e4B4CB5eLKwcycEMkT7pq2CrO0V9l0m71Yk+y4ythb0pJe3rsFV0tQJ5nJoyjURl1CgZfMF6U+TfUEjusvEr7Xs30wX2VSGDApjHZ34/4Rham870CdDaJkdthIQLTmlqwWxS3VCZNSuT/13nDuYLMziKpcFMMW0tkwHDejlhjKKA2wqC2QHVwLEy3gu2H0SGkdK76DVgZlwPfUAH7jNfuejwM1s7pRpP5aPhkvhbH6LAMxWK/S4vKeTj6STsN3tn/GUzxCiOdpAwEl78gH0OJmwh31Wqymb1FLTPIwrWOTEBBZcTLcWCbJtZBF1p1CmmslkoObi/fB+ZMzDURpTfz8vtzZCdVNy/nBMXxDvh/vTplLcQCQTthJt3uRyo21AN47Cq+TSLwRItqL4MZe+bAnNrGmv8yvzSqv9AhZmid74IollLYN86OzoB6Ef4SIJo3iTrDonMFQk6bwbh75UalWTjOJyrbNF1BeHO5Yz7N8pFCtCnxetqJcQaTre0fI6wr3v6pCfY7qmcfp5KH31yrbhIXX1JP8I+PaVQYEOwRlmF71B685gNmX2mxVq1P9CIagOzlN0Jg7b9wOEUPacAoL00pIv5qEHx88WzhQJsF8VCLmQe4nQTVVZk+WZLyYE/Cb/fLxQXjOWE/zxIVq3+eOCBp37Hr20xC5PqMpp1KNdEpWBIyvBSGDzcv3bMeZiGc1/M23coPJAnAeEpq7ci86k54GUnCywKqWwJ9zTsvYrdo822jd5b5tJ1/Gzecnlfr9uKpwIb2ULH2x5GSWFiOgd+s/NWzubFaPx+Tj4DU1ffx33n8+CWLMVM4dA1B20Qxe3rdVXMQ4rQJNaK0KII7ZgUXynCoRlYsmvDUz3NGpapIEOgClx8iFlZQEo8stUKY5KEsV2CHMI5nfovwkTIy3Lk3KZDPg1wmIo2XUo0yreIiih1y4ZXyZn6047LlyCZ8SFF08gQo4uDl6LdrTt17opWM2SZedp3Ullk1IyrLiFQnAzOmUda3jH0B3mkXbc0RSiSiVG5xWt25IounhN1x6K2pg6gZVuO7drQidx2rdgyfigWfeAYur04Mr8N8mD90+PQZvZ8N9K/xaD6qVHzsLdS9q0UWeBeolQ1WXWPhQzmLhBxq0KKfyTugcJwiCve/Yjj/BM7+2Rff8kgOzXNmkP1Ljx1hBtBuEbpCW95ag2mU5PfVGSn7tTKiHuqrg5f8JCH34NsisHEQq1tkQkHK7/KkaHLSgR7h0VVRm7v+TpTMy+8GbBtDPVN2Vs2kLdap7+A1YZkj0yjlUCtJpp4qx0j3RAinL4wYAQ3dFqF2mSxmoy5LQWKvUPDGkCW4J8vGP+c1t+B/5mnADr5mIdaYSLhlmW6UihIj8x3GiVPRqE5yOxQ4ZF2vUBIrTD3iQHog4Kt+8TQ5rLNhubnyqQmPriYv86ZCX+Pa9clcqP2UAbLjZWhoErbaOE5glupjvKaIW92X8gxTnkDHZDrqnQP1TbfGzwOg5xuvFbsYIYk5NzkiVA0f+88mj4cnoK57rxsOwEAANAOAADVCwAAAFAAAABQAAAAUAAAwREAAGZjMTRiZGY4Yjg1NDQ3MjFjYTE5Njk5ZGViYzg0ZDU1YWE5YmU3ZmE2ZGNmYTdhN+gGAADiAwAACwgAAOUGAADYCwAATQEAAEUDAACNCgAASw0AAAUGAAC0CwAAHwUAAMsNAAAPCQAAZgAAAN0KAABgBAAAnwEAAEUGAADaBQAA7gMAACsDAACUBgAAHgEAAPAAAAAHDQAA7AAAAMIMAAC7BAAAdgYAAAQJAAAiAwAAjgcAAEYNAAAUBAAArAYAAK8HAACcCQAAGA4AAN4MAADJBwAAugAAANwHAAATDQAAYg4AAE8DAABTAAAAgAUAAAsCAABFAgAAQgQAAHYFAAByAwAA/AAAACEFAAC9AwAAEwwAAO0GAAD1BQAAlg0AAGEAAABJBQAA0QUAANQGAADGCwAAkQgAAFYMAACFAAAA+gQAAH8IAAAuAwAAigkAAEwCAAAsCAAA1gwAADMDAAAUCgAARwgAAIEBAABnDAAAswwAADIKAAC2CgAAdgIAADQCAACNAwAAdg4AAJIGAAAkCAAAVgAAAF4JAADCAAAApwMAAIEAAAB9DAAAfwIAAK8JAAAIAQAAAAAAAAAA95YyRjmN3yjKCp/bIshBbD8PVY1oRK3lMkABfSDoiiImLFX3plLFu86zVsnIte2t28pY9zawk7PoSxT4i2II4X58tfRySMTrSJi+s+ziHXxRUqBUj5LqdJihD1o+zC9sq3RLSwD4OpMGbK+d8d7FBS6WpzjAslHrkUBc0DhqrHtoUQh3l9B8WBgNTiLhTYK42gkspyT1qvgjXrm+nGlam780NJ/WTm1dGk8gs2MuCUS9ovUuPQRWcaYOVDkXvLuusbJirRjh4IybzY3U1fWU81R0AfhyK1263MH4yPgzRlyTcQGwylsr2sBpkm52gZuveWDjobrBO4ZVp9BW6BiSZ4cwQWPz4yj4SSU4CZjtQ1slSE6XT6Sg0DZ6WiOJ0/Gn1SrmRT84upQ46leViTLtZ2R0MJ/I+Rjij28teYkEbnQzjzNuB/wb7Iy5X2NMC0cDjPK+FaNR3doRA7XOCkELM3zhYvj+f2BmWEITD5q0loMoKeyVRVnQ4LBXXANGTOJKrSzlaahNBAySV7tgPs5AXGwypt9TdOwjEYBIpiJcHwxfx2BtzSza2STfA+ycb6HgFwCWFKQC9jk+wlcnBF3pNjeuAXZt0Y4/V8u7c3H+haHeZo8ixAtmXNAnLwrTstTG9cy17G0rckRxV7zYRoLGPjy1SJ3MxnAsSKOkRqKDaqP19HyjSZgzs/JLsG1OjRZNX+/NHWo3+C5biaTJhSyg7esY4VEFI/SjgpOpgRYD3bqMV+WytE05vvpNR7/yaS3GqcKANarERzz5KZrVjXYYWKrpPC5F7Tie3SNVtto1rxlm4tdTgacPxw+pt4uxYzGENe4UCSz+gLqK4VaHb49gxHmBbqqdxNYD2nQemjWs63rw0IHrIKbrZmEcyJ5Qhld+SPIRMPOG5XAYEC233+SF3PXblZ4OdKPRlAdIgPo3slMcnlJCmruGaukQ0w94M4Z7luqodO+4cNNOP5rrPWR0313Zm0CSQkI5VCqz/KCUWGGAy+kQjT1iYi5+81ohmi2Em/KxnpdF6FOnbx/EBHMyueU5anB6Y1EfdjgSFE7nGLn8L2Ct4bnIO+KVZx4enF65Szlz5y+7CjegkSdfMtMFv1dlx9QShNYsby+M5PszAdjZWMcUcy+KQSUpDFCRaQgPj6fGt9SIp8ZiR3cALyQ7bZBOhNkL70wn2oav53eGmQYmfVRTa0gDUK8AsSu3iREA7Z2/Q+MuA59an9xO2L5P26xw2bDO5gJHSjMpCj4gblB0rvnZxlYi9nm0+MtqtHfwsNR+R69gMQabd/ivBfdhOjCM2SnDdRVWTeE2Gu0125W7N1looSegE33yPU5dcvGBU76a3dlOLDu/J/jMKRYYZZpi88ye95cI68Wq0DfF+NrvtMYumv26bAsdqHku0ulm2dey+X4k4lomkvATolsE+C4e3HNP6cqcp4bBgE8e2RnbQ/VfE/5bytFrCAcMp8iuGa5KEPV1F+8MFlH2YmELCLjXN19lpOQvwRGh4uDCkAC8Emef0sgjZSwFUvysZGhvYP5OM29pSHTJGk7j0zMOSYRROU/4ajTutNEyX1LnglyoMYHhc1yPU8ny1bd6PpH39Qh3WioYdfXJX32dNuci4JfwO6GxLNQoweWFBpR7c3ZAOmhJbygyj7qLFxTd8Rzg0PMgiQPuRckzTpdEkW9hTusHXfp/13BuvarlJRXASs7IpDSfW+hyUPOeFiGP7f1LKsgo1ZQhYPeDsctYCSC0cgTIeuw7wPECkwwH38FP3c+smvpLmHM6p0M7HKgdGkfT6KMcxnIQEGjVJUKHGoA2M9L6q24kaNiQjdKo/qRJ43jEMvUeMxdcm4qSdXIxsY3CBefVIW7XroDJijmfZxDCjEDIwuaJFwC7ng/jkfFmX9pE5fi7csEK64J1VKfdvDR5zugxZ+6lOO3nGoJe8x2NYitdWoAXBxl9vtVjFMFX3OHaacIJNPbrnqwL0lg/qvZl5vB7f2GyYsfPs6gZQSQrkDygg4pZhC4zcbvTCzO/PhPd/SzQ2lx/KAf6OYBO0VyI30IcnSdsC2LCSA6l3laTD3SUOkP2WrTeIVqCXkus5J5fSyvvo5/rcPHJDZJO2EmvZioLuJcYkISMPHzL6awXFWJvRpIro2rUp8hRLUwikEcR0fYgoCsHRrmlYmcjH4ZEsvYv3pK1hMK+NhHNxmM4aqs0uhe19XM2Z/7YhEADsIdBDHlV8bC0WkwzYWoaOH9Wbfa67WRvjbyC93aS3P6Cu4SIi7no4Xj5f1/JgZMJHC5/gRdIR8Ij0X280fg6IX1MsKTkkazEbYp+wG0FpAwoeNtHE1vnOXTBZLk7Kw9/v17gfNDuJImBuROLyYVVHixxlFkc8Q0iZHYwIizyiEF7/gAOIyg6OVRRxFhHW2/ta0aMyZa1Ys1RvhhZvQFdjjDREMqFR/kEN1sFyiy02ggHQbbkZb6qxJsyvGQQ33pS8zYndUqkaCRMiJI7sJegm+IPUnxKdyhxJkouU4mV81bgsdX1jGS8YdiRmNwsbhQEkCCAAIz8B3sNtU4AdhWatZM7Wv3Aqg9+UfCiuN5LRbc2KcFpFPLI4qpZ59YWvOrD9uFI7xQWQ+QQAq2bWk6cwW+WyExSMaGgcXdSZsI4aJQF3sH7AlSiH+TbWBJELYdbvCVmfvKdcMVAp32cwtwi15gZlXuMoL8a8qlmdteOW0Pu9amc0eigZ237u1rWBlsIuYB4KpcMzhtlS4tJNvnssUs5rMsyhAWveC4Oj+NlQ+tNXrtXFTCr4ieNNoVcVjByDgoOnFiO1DR6yLFp/T43AAef+9c+lZwajcmkpE5/UyL8moHZVqaSvYiH20x+QuTnVjV9vFpXNHhs8g+O6TDl+nSOa2K8XKlgDD1OtbhPm0rkvE4YAZXHpWYIbGOWBNNYoeDW7taBKvmLHbAcCX2/HVbDqCzhzPndxsX6tO5FyAdo9RTWeKtyYpFUi+PkqpvnSE8M0lqndtPm9ygRhnUKRVOosxJp56OqUEWZjEEV+BwpEmyeOfWrwH8/74CDYdscSUWPPPaJfl+rYIEVDeiS0P4L53MJawxc+/GRKfcjJu5pfUP6hbslnpIM8td0lrOWrB6AeHlnE905Mj8E9lVmhzqRqo6klktC5Ujf+3cz52Q++nzYoa11AWpkwVJ8IaY9pWqd4esk8BXSPpEwhhdlBUrZxPvYjeWLHKgkP9T3xMSholYNlAU="; int rc = DxyVest.Start(key);//AppVest.init("553c12676eb80b82183e0944df97cd19", "K8N/nk3cAxhGo7Oy0yoP/Ye5jcQUaMf+8+AutonLIoCXTbHXSHJ/D8W3/iIBHJq/4SABnAF7RvIeNRnF+x+wjB6cB1TEwIUviviQlofNvM4qJFLH55ON85n2pFBhSGW3qLF/"); if (rc != 150) { Debug.LogError("wwwwwwwwwwwwwwwwwwwwwww init failed"); ShowTip("GF init failed!", () => { StartCoroutine(CheckNet()); }); } // Debug.LogError("init successful"); conn.ip = "127.0.0.1"; conn.port = 37878; //int rc1 = AppVest.getServerIPAndPort(ref conn, "", 8077); //if (rc1 != 0) //{ // ShowTip("getServerIPAndPort failed!", () => // { // StartCoroutine(CheckNet()); // }); // yield break; //} } init_url = "http://" + conn.ip + ":" + conn.port + "/NewFK/config/init2_1.json"; Debug.LogError("init_url : " + init_url); } // Debug.LogError("开始下载资源===>>>"); Debug.LogError(init_url); //Debug.LogError("init_url============================ "+ init_url); float downTimeOut = 5; using (WWW request1 = new WWW(init_url)) { float timeOut = Time.time; float process = request1.progress; while (request1!=null && request1.isDone==false) { //Debug.LogError("wwwwwwwwwwwwwwwwwww11111111111111111111111"); if(processdownTimeOut) { ShowTip("配置文件下载失败,请检查您的网络设置!", () => { StartCoroutine(CheckNet()); }); yield break; } yield return null; } yield return request1; // Debug.LogError("request1.error"+request1.error); if (string.IsNullOrEmpty(request1.error)) { //Debug.LogError("wwwwwwwwwwwwwwwww222222222222222222222222"); json_data = request1.text; //优化 GameApplication.Instance.GameInfo = json_data; Hashtable json = Json.Deserialize(json_data) as Hashtable; //json["pack_url"] = "http://8.134.59.224:8909/NewFKtest"; Hotupdate.PackUrl = (string)json["pack_url"]; Hashtable _plat_data = null; #if UNITY_IPHONE _plat_data = json["iOS"] as Hashtable; #endif #if UNITY_ANDROID _plat_data = json["Android"] as Hashtable; #endif #if UNITY_STANDALONE _plat_data = json["Win"] as Hashtable; #endif var check = _plat_data[string.Format("check{0}", GameApplication.AppVersion.ToString())]; if (check != null && (bool)check) { GameApplication.HideSdk = true; GameApplication.Instance.accountTest = false; } Version server_version = new Version((string)_plat_data["version"]); if (!GameApplication.HideSdk) { if (GameApplication.AppVersion.max_version < server_version.max_version || (GameApplication.AppVersion.max_version == server_version.max_version && GameApplication.AppVersion.min_version < server_version.min_version)) { ShowTip("您版本需要更新!", () => { #if UNITY_ANDROID StartCoroutine(DownApp((string)_plat_data["appurl"], server_version.ToString())); #else DeleteOldPack(); Application.OpenURL((string)_plat_data["appurl"]); Application.Quit(); #endif }); yield break; } } Voice.VoiceUpload = json["voice_upload_url"] as string; Voice.VoiceDownload = json["voice_download_url"] as string; //GameApplication.PackVersion = server_version.pack_version; if (!GameApplication.Instance.buildApp) { GameApplication.AppVersion.FillData(server_version); _version_view.Dispose(); GameApplication.Instance.StartGame(); } else { StartCoroutine(CheckAssetConfig(server_version)); } } else { ShowTip("版本检索失败,请检查您的网络设置!", () => { StartCoroutine(CheckNet()); }); //yield break; } } } IEnumerator CheckAssetConfig(Version server_version) { GObject v_tex_info = _version_view.GetChild("tex_info"); Version local_version = Hotupdate.GetLocalVersion(string.Empty); ArrayList asset_config_list = null; string asset_config_text = null; if (local_version == null) { string ac_url = ""; if (isGFF == false) ac_url = string.Format("{0}/config/asset_config{1}.json", Hotupdate.PackUrl, server_version.ToString()); else ac_url = string.Format("http://{0}/NewFK/config/asset_config{1}.json", conn.ip + ":" + conn.port, server_version.ToString()); Debug.Log(ac_url); float downTimeOut = 5; using (var request = new WWW(ac_url)) { float timeOut = Time.time; float process = request.progress; while (request != null && request.isDone == false) { if (process < request.progress) { timeOut = Time.time; process = request.progress; } if (Time.time - timeOut > downTimeOut) { ShowTip("连接超时导致游戏配置下载异常,请检查您的网络设置!", () => { StartCoroutine(CheckNet()); }); yield break; } yield return null; } yield return request; if (string.IsNullOrEmpty(request.error)) { asset_config_text = request.text; asset_config_list = Json.Deserialize(asset_config_text) as ArrayList; if (asset_config_list == null) { ShowTip("连接错误导致游戏配置下载异常,请检查您的网络设置!", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } // v_tex_info.text = "正在检查资源。。。"; GSlider _pd = _version_view.GetChild("pb_progress").asSlider; _pd.value = 0; if (!Directory.Exists(ResourcesManager.PACK_PATH)) { Directory.CreateDirectory(ResourcesManager.PACK_PATH); } string copyVersionPath = Path.Combine(Application.streamingAssetsPath, "version.txt"); #if UNITY_IPHONE string copyVersionString = ""; if (File.Exists(copyVersionPath)) { copyVersionString = File.ReadAllText(copyVersionPath).Trim(); } else { ShowTip("本地缓存版本加载失败", () => { File.WriteAllText(Path.Combine(ResourcesManager.PACK_PATH, "version.txt"), "1.0.0"); StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } #endif #if UNITY_ANDROID UnityWebRequest copyRequest = UnityWebRequest.Get(copyVersionPath); yield return copyRequest.SendWebRequest(); if (copyRequest.isNetworkError || copyRequest.isHttpError) { /* ShowTip("本地缓存版本加载失败", () => {*/ File.WriteAllText(Path.Combine(ResourcesManager.PACK_PATH, "version.txt"), "1.0.0"); StartCoroutine(CheckAssetConfig(server_version)); //}); yield break; } string copyVersionString = copyRequest.downloadHandler.text.Trim(); #endif bool isSame = copyVersionString.Equals(server_version.ToString()); if (isSame) { string copyZipPath = Path.Combine(Application.streamingAssetsPath, "Pack.byte"); #if UNITY_IPHONE Byte[] zipData; if (File.Exists(copyZipPath)) { zipData = File.ReadAllBytes(copyZipPath); } else { ShowTip("本地缓存压缩包加载失败", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } /* if (zipData.LongLength < 1024) { ShowTip("本地缓存压缩包加载失败", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; }*/ string zipString = Path.Combine(Application.persistentDataPath, "Pack.byte"); File.WriteAllBytes(zipString, zipData); #endif #if UNITY_ANDROID UnityWebRequest copyZipRequest = UnityWebRequest.Get(copyZipPath); yield return copyZipRequest.SendWebRequest(); if (copyZipRequest.isNetworkError || copyZipRequest.isHttpError) { ShowTip("本地缓存压缩包加载失败", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } byte[] zipData = copyZipRequest.downloadHandler.data; string zipString = Path.Combine(Application.persistentDataPath, "Pack.byte"); File.WriteAllBytes(zipString, zipData); #endif IFilePack zip = null; zip = new FilePack20(zipString, PackMode.Read); zip.UnPackFileSyn(ResourcesManager.PACK_PATH); while (!zip.Complete) { _pd.value = zip.Progress*100; yield return null; } StartCoroutine(CheckAssetConfig(server_version)); yield break; } else { File.WriteAllText(Path.Combine(ResourcesManager.PACK_PATH, "version.txt"), copyVersionString); StartCoroutine(CheckAssetConfig(server_version)); yield break; } } else { ShowTip("游戏资源下载失败,请检查您的网络设置!", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } } } else if (local_version.ContainAll(server_version)) { string ac_url=""; if(isGFF==false) ac_url = string.Format("{0}/config/asset_config{1}.json", Hotupdate.PackUrl, server_version.ToString()); else ac_url = string.Format("http://{0}/NewFK/config/asset_config{1}.json", conn.ip + ":" + conn.port, server_version.ToString()); // Debugger.LogError("CheckAssetConfig===>>>"); // Debugger.LogError(ac_url); float downTimeOut = 5; using (var request = new WWW(ac_url)) { float timeOut = Time.time; float process = request.progress; while (request != null && request.isDone == false) { if (process < request.progress) { timeOut = Time.time; process = request.progress; } if (Time.time - timeOut > downTimeOut) { ShowTip("连接超时导致游戏配置下载异常,请检查您的网络设置!", () => { StartCoroutine(CheckNet()); }); yield break; } yield return null; } yield return request; if (string.IsNullOrEmpty(request.error)) { asset_config_text = request.text; asset_config_list = Json.Deserialize(asset_config_text) as ArrayList; if (asset_config_list == null) { ShowTip("连接错误导致游戏配置下载异常,请检查您的网络设置!", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } // v_tex_info.text = "正在检查资源中。。。"; GSlider _pd = _version_view.GetChild("pb_progress").asSlider; _pd.value = 0.0; //开始检查所有资源 bool size_check = false; long total_size = 0; StartCoroutine(VersionUpdateCheckSize2(asset_config_list, _pd,(all_size, finish) => { total_size = all_size; size_check = finish; })); while (!size_check) { yield return null; } Debug.Log($"总大小:{(total_size / 1024f / 1024f):F2} MB"); bool ver_check = false; StartCoroutine(VersionUpdateCheck(asset_config_list, (progress, finish) => { if (ver_check) { _pd.value = 100f; ver_check = finish; } else { v_tex_info.text = $"正在下载资源({(progress / 1024f / 1024f):F2} MB/{(total_size / 1024f / 1024f):F2} MB)"; _pd.value = progress / total_size * 100f; ver_check = finish; } })); while (!ver_check) { yield return null; } bool unZip_check = false; v_tex_info.text = "正在解压文件(该过程不消耗流量)"; _pd.value = 100f; StartCoroutine(VersionUpdateUnZip(asset_config_list, (finish) => { unZip_check = finish; })); while (!unZip_check) { yield return null; } string arv = string.Format("{0}asset_config{1}.json", ResourcesManager.PACK_PATH, server_version.ToString()); File.WriteAllText(arv, asset_config_text, System.Text.Encoding.UTF8); string rv = ResourcesManager.PACK_PATH + "version.txt"; File.WriteAllText(rv, server_version.ToString(), System.Text.Encoding.UTF8); } else { ShowTip("游戏资源下载失败,请检查您的网络设置!", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } } }else { // string arv = string.Format("{0}asset_config{1}.json", ResourcesManager.PACK_PATH, server_version.ToString()); string arv =ResourcesManager.PACK_PATH+"asset_config"+server_version.ToString()+".json"; //Debug.LogError("ARV===>>>" + arv); try { asset_config_text = File.ReadAllText(arv); asset_config_list = Json.Deserialize(asset_config_text) as ArrayList; foreach (Hashtable tem in asset_config_list) { string b_path = "base/" + tem["name"]; ResourcesManager.ReadAssetConfig(b_path); } } catch (Exception s) { Debug.LogError(s.ToString()); ShowTip("游戏资源损坏,请重新安装新包!", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } //IEnumerator enumerator = asset_config_list.GetEnumerator(); //try //{ // while (enumerator!=null && enumerator.MoveNext()) // { // Hashtable hashtable = (Hashtable)enumerator.Current; // string base_path = "base/" + hashtable["name"].ToString(); // ResourcesManager.ReadAssetConfig(base_path); // yield return null; // } //} //finally //{ // IDisposable disposable; // if ((disposable = (enumerator as IDisposable)) != null) // { // disposable.Dispose(); // } //} } GameApplication.AppVersion.FillData(server_version); //v_tex_info.text = "正在加载资源请稍后。。"; //ResourcesManager.Init(); yield return null; _version_view.Dispose(); GameApplication.Instance.StartGame(); } /// /// 检查基本更新包 /// /// /// /// /// /// IEnumerator VersionUpdateCheck(ArrayList asset_config_list, System.Action onback) { Version local_version = Version.DEFUALT; float download_size = 0; for(int i=0;i< asset_config_list.Count; ++i) { var tem = asset_config_list[i] as Hashtable; string b_path = "base/" + tem["name"].ToString(); Hotupdate version_update = new Hotupdate(b_path + "/", local_version, new Version((string)tem["ver"])); version_update.AssetName = b_path; version_update.HideDetail = true; version_update.SetTipCallback((text,callback)=> { ShowTip(text, callback); }); version_update.LoadAsset(); while (!version_update.Done) { onback(download_size + version_update.Progress* (float)tem["size"], false); yield return null; } download_size += (float)tem["size"]; ResourcesManager.ReadAssetConfig(b_path); } onback(1, true); } /// /// 检查基本更新包大小 /// /// /// /// /// IEnumerator VersionUpdateCheckSize(ArrayList asset_config_list, System.Action onback) { Version local_version_one = Version.DEFUALT; long totalSize = 0; for (int i = 0; i < asset_config_list.Count; ++i) { var tem_one = asset_config_list[i] as Hashtable; string b_path_one = "base/" + tem_one["name"].ToString(); local_version_one = Hotupdate.GetLocalVersion(b_path_one); var update_pack2 = local_version_one == null || local_version_one.ContainAll(new Version((string)tem_one["ver"])); string osPath = ResourcesManager.OS_Dir; if (update_pack2) { var pack_path = string.Format("{0}/asset_pack{1}.bytes", b_path_one, (string)tem_one["ver"]); var url = ""; if (VerCheck.Instance.isGFF == false && VerCheck.Instance.isDXYGFF == false) url = string.Format("{0}/{1}/{2}", Hotupdate.PackUrl, osPath, pack_path); else url = string.Format("{0}/{1}/{2}", "http://" + VerCheck.Instance.conn.ip + ":" + VerCheck.Instance.conn.port + "/NewFKN", osPath, pack_path); url = string.Format("{0}/{1}/{2}", Hotupdate.PackUrl, osPath, pack_path); if (Application.platform == RuntimePlatform.WindowsEditor) Debug.Log("check_url:" + url); using (UnityWebRequest head = UnityWebRequest.Head(url)) { yield return head.SendWebRequest(); #if UNITY_2020_2_OR_NEWER if (head.result == UnityWebRequest.Result.Success) #else if (!head.isNetworkError && !head.isHttpError) #endif { string len = head.GetResponseHeader("Content-Length"); if (!string.IsNullOrEmpty(len) && long.TryParse(len, out long size)) { totalSize += size; tem_one["size"] = size; yield return null; } else { Debug.LogWarning($"无法获取文件大小: {url}"); yield return 0L; } } else { Debug.LogError($"获取文件大小失败: {head.error}"); yield return 0L; } } } } onback(totalSize, true); } IEnumerator VersionUpdateCheckSize2(ArrayList asset_config_list, GSlider gSlider, System.Action onback) { Version local_version = Version.DEFUALT; long totalSize = 0; float oneP = 100 / asset_config_list.Count; for (int i = 0; i < asset_config_list.Count; ++i) { var tem = asset_config_list[i] as Hashtable; string b_path = "base/" + tem["name"].ToString(); Hotupdate version_update = new Hotupdate(b_path + "/", local_version, new Version((string)tem["ver"])); version_update.AssetName = b_path; version_update.HideDetail = true; version_update.SetTipCallback((text, callback) => { ShowTip(text, callback); }); version_update.LoadAssetSize(); while (!version_update.Done) { gSlider.value = oneP * i + oneP* version_update.Progress; yield return null; } tem["size"] = version_update.Size; totalSize += (long)version_update.Size; ResourcesManager.ReadAssetConfig(b_path); } onback(totalSize, true); } /// /// 解压下载的资源文件 /// /// /// /// IEnumerator VersionUpdateUnZip(ArrayList asset_config_list, System.Action onback) { for (int i = 0; i < asset_config_list.Count; ++i) { var tem = asset_config_list[i] as Hashtable; string b_path = "base/" + tem["name"].ToString(); ResourcesManager.ReadAssetConfig(b_path); yield return null; } onback(true); } #if UNITY_ANDROID IEnumerator DownApp(string appurl,string version) { var v_tex_info = _version_view.GetChild("tex_info"); v_tex_info.text = "正在下载新的安装包(0KB/0KB)"; var _pd = _version_view.GetChild("pb_progress").asSlider; var request = new BestHTTP.HTTPRequest(new System.Uri(appurl)); request.EnableTimoutForStreaming = false; request.UseStreaming = true; request.IsKeepAlive = true; request.Send(); var filePath = Application.persistentDataPath + "/update" + version + ".apk"; if (File.Exists(filePath)) { File.Delete(filePath); } FileStream stream = null; request.OnProgress = (originalRequest, downloaded, downloadLength) => { v_tex_info.text = string.Format("正在下载新的安装包({0}KB/{1}KB)", downloaded / 1024, downloadLength / 1024); _pd.value = (downloaded / (float)downloadLength) * 100; var fragments = originalRequest.Response.GetStreamedFragments(); if (fragments != null) { if (stream == null) { stream = File.Create(filePath); } foreach(byte[] buffer in fragments) { stream.Write(buffer, 0, buffer.Length); } } }; while (request.State < BestHTTP.HTTPRequestStates.Finished) { yield return null; } yield return new WaitForSeconds(1); stream.Dispose(); request.OnProgress = null; if (request.State == BestHTTP.HTTPRequestStates.Finished && request.Response.IsSuccess) { DeleteOldPack(); PlatformAndroid.Instance.UpdateApp(filePath); } else { ShowTip("请检查您的网络设置!", () => { StartCoroutine(DownApp(appurl, version)); }); } } #endif public void ShowTip(string text, System.Action callback) { var ctr_state = _version_view.GetController("state"); ctr_state.selectedIndex = 1; _version_view.GetChild("tex_tip").text = text; _version_view.GetChild("btn_ok").onClick.Set(() => { ctr_state.selectedIndex = 0; if (callback != null) callback(); }); } /// /// 移除本地缓存包 /// public static void DeleteOldPack() { string dir = ResourcesManager.RES_PATH; string rv = dir + "version.txt"; if (File.Exists(rv)) File.Delete(rv); if (Directory.Exists(dir)) Directory.Delete(dir, true); } }