public static void showError(Api.ServerErrors serverErrorType, GameScene fromScene = GameScene.UNDEF) { switch (serverErrorType) { case Api.ServerErrors.E_VERSION_ERROR: showError(TypeError.ES_NEED_UPDATE, fromScene); break; case Api.ServerErrors.E_SESSION_EXPIRED: showError(TypeError.ES_SESSION_EXPIRED, fromScene); break; case Api.ServerErrors.E_REQUEST_PARAMS: show("Ошибка покупки", () => { WindowController.rebildCurrentWindow(); }); break; case Api.ServerErrors.E_DRAWING_END: ScenesController.loadScene(GameScene.MAIN_MENU); break; case Api.ServerErrors.E_NOT_ENOUGH: { var errWnd = show("Недостаточно средств для совершения операции.\nПопробуйте ещё."); errWnd.setAction(0, () => { WindowController.rebildCurrentWindow(); AccountEvent.requestAccountInformation(); if (fromScene == GameScene.RAFFLE) { ScenesController.loadScene(GameScene.MAIN_MENU); } }); } break; case Api.ServerErrors.E_SESSION: { showErrorAndReAutification("Ошибка сессии"); } break; case Api.ServerErrors.E_SESSION_ID: { showErrorAndReAutification("Ошибка сессии"); } break; case Api.ServerErrors.E_DB_ERROR: showServerError("Ошибка сервера", fromScene); break; case Api.ServerErrors.E_TEMP_ERROR: showServerError("Временная ошибка сервера", fromScene); break; case Api.ServerErrors.E_PENDING: showServerError("ошибка сервера", fromScene); break; default: { if (fromScene != GameScene.AUTORIZATION) { var errWnd = show("Неизвестная ошибка"); errWnd.setAction(0, () => { ScenesController.loadScene(GameScene.AUTORIZATION); }); } else { var errWnd = show("Приложение не рабочее", "выход"); errWnd.setAction(0, () => { MAIN.exit(); }); } } break; } }
// ----------------------------------------- public static void showError(TypeError typeError, GameScene fromScene = GameScene.UNDEF) { //currentTypeError = typeError; switch (typeError) { case TypeError.ES_NEED_UPDATE: { //Ваша версия устарела, нужно обновится до последней версии var wnd = showError("Ваша версия не совместима, обновитесь до последней версии", typeError, "Выход"); //wnd.setAction(0, () => { /* ЗДЕСЬ НУЖНО ОБНОВИТЬСЯ */ wnd.hideWindow(); }); //wnd.setAction(1, exit); wnd.setAction(0, () => { MAIN.exit(); }); } break; case TypeError.ES_SERVER_ERROR: { showErrorAndReAutification("Ошибка сервера", fromScene); } break; case TypeError.ES_SESSION_EXPIRED: { showErrorAndReAutification("Время сессии истекло войдите заново", fromScene); } break; case TypeError.ES_CONNECT_ERROR: { showConnectError("Ошибка связи", fromScene); } break; case TypeError.EP_ON_INITIALIZE_FAILED: buyError(); break; case TypeError.EP_ON_BUY_NOT_FIND: buyError(); break; case TypeError.EP_ON_FAILED_CONFIRM_PURCHASE: buyError("Ошибка покупки, обратитесь в техническую поддержку"); break; case TypeError.EC_NOT_ENOUGH_MONEY: { var wnd = show("Недостаточно денег!"); wnd.setAction(0, () => { if (!Tutorial.show(TutorialSubject.TS_BUY_GOLD_BTN)) { WindowController.showPopUpWindow(WindowController.TypePopUpWindow.GOLD_EXCHANGE); Tutorial.show(); // В этом месте обрывается обучения, для избежании этого вызвается команда показать без параметров, в ней внутри перепроверяется наличие списка сообщений которые нужно показать, и если список не пустой обучение продолжается } }); } break; case TypeError.EC_NOT_ENOUGH_RUBINS: { //WindowController.showPopUpWindow(WindowController.TypePopUpWindow.CRYSTALS_BUY); var wnd = show("Недостаточно рубинов!"); wnd.setAction(0, () => { WindowController.showPopUpWindow(WindowController.TypePopUpWindow.CRYSTALS_BUY); Tutorial.show(); // В этом месте обрывается обучения, для избежании этого вызвается команда показать без параметров, в ней внутри перепроверяется наличие списка сообщений которые нужно показать, и если список не пустой обучение продолжается }); } break; default: { show("Неизвестная ошибка"); } break; } }
public static void restartAuth() // █ перезапуск аунтификации { Autorization auth = null; var go = GameObject.Find("Autorization"); if (go != null) { auth = go.GetComponent <Autorization>(); if (auth != null) { auth.resetParam(); auth.Start(); return; } } MAIN.exit(); }
public static void showServerError(string textError = "Ошибка сервера", GameScene fromScene = GameScene.UNDEF) { if (fromScene == GameScene.AUTORIZATION) { var errorW = show(textError, "Повтор", "Выход"); errorW.setAction(0, () => { Autorization.restartAuth(); }); errorW.setAction(1, () => { MAIN.exit(); }); return; } var errorWnd = show("Ошибка сервера"); errorWnd.setAction(0, () => { switch (fromScene) { case GameScene.BUY_TICKETS: ScenesController.loadScene(GameScene.MAIN_MENU); break; case GameScene.RAFFLE: ScenesController.loadScene(GameScene.BUY_TICKETS); break; } }); }
// пперед выходом из игры диалоговое окно public static void showWindowExit() { var wnd = Errors.show("Вы действительно хотите выйти из игры?", "Да", "Нет"); wnd.setAction(0, () => { MAIN.exit(); }); }