diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_ae.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_ae.sub new file mode 100644 index 00000000..bba31ba2 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_ae.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 52 +top 21 +right 74 +bottom 38 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_all.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_all.sub new file mode 100644 index 00000000..f3cd5dec --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_all.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 78 +top 63 +right 100 +bottom 80 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_br.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_br.sub new file mode 100644 index 00000000..ed72a3f6 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_br.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 26 +top 63 +right 48 +bottom 80 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_cz.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_cz.sub new file mode 100644 index 00000000..243022ea --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_cz.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 0 +top 42 +right 22 +bottom 59 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_de.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_de.sub new file mode 100644 index 00000000..53192ecc --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_de.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 78 +top 0 +right 100 +bottom 17 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_dk.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_dk.sub new file mode 100644 index 00000000..b5490d1d --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_dk.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 52 +top 0 +right 74 +bottom 17 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_en.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_en.sub new file mode 100644 index 00000000..eadf8510 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_en.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 78 +top 21 +right 100 +bottom 38 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_es.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_es.sub new file mode 100644 index 00000000..f904b5a9 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_es.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 26 +top 21 +right 48 +bottom 38 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_eu.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_eu.sub new file mode 100644 index 00000000..8f895c67 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_eu.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 104 +top 63 +right 126 +bottom 80 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_fr.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_fr.sub new file mode 100644 index 00000000..8f2f9339 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_fr.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 104 +top 42 +right 126 +bottom 59 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_gr.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_gr.sub new file mode 100644 index 00000000..c3bbb659 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_gr.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 0 +top 0 +right 22 +bottom 17 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_hu.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_hu.sub new file mode 100644 index 00000000..68b134a0 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_hu.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 0 +top 63 +right 22 +bottom 80 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_it.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_it.sub new file mode 100644 index 00000000..f778dd99 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_it.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 104 +top 21 +right 126 +bottom 38 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_kr.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_kr.sub new file mode 100644 index 00000000..5402374c --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_kr.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 52 +top 63 +right 74 +bottom 80 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_nl.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_nl.sub new file mode 100644 index 00000000..3368ba98 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_nl.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 26 +top 0 +right 48 +bottom 17 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_pl.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_pl.sub new file mode 100644 index 00000000..889aa527 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_pl.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 78 +top 42 +right 100 +bottom 59 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_pt.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_pt.sub new file mode 100644 index 00000000..23534af5 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_pt.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 52 +top 42 +right 74 +bottom 59 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_ro.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_ro.sub new file mode 100644 index 00000000..6ebfe23a --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_ro.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 0 +top 21 +right 22 +bottom 38 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_ru.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_ru.sub new file mode 100644 index 00000000..d5f914df --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_ru.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 104 +top 0 +right 126 +bottom 17 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_sp1.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_sp1.sub new file mode 100644 index 00000000..633c94f9 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_sp1.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 0 +top 84 +right 22 +bottom 101 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_sp2.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_sp2.sub new file mode 100644 index 00000000..ea9f7f8f --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_sp2.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 26 +top 84 +right 48 +bottom 101 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_sp3.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_sp3.sub new file mode 100644 index 00000000..e3f2c7c3 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_sp3.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 52 +top 84 +right 74 +bottom 101 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_sp4.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_sp4.sub new file mode 100644 index 00000000..030bc93d --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_sp4.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 78 +top 84 +right 100 +bottom 101 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_sp5.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_sp5.sub new file mode 100644 index 00000000..e7802c30 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_sp5.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 104 +top 84 +right 126 +bottom 101 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_sp6.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_sp6.sub new file mode 100644 index 00000000..53bf87ea --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_sp6.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 0 +top 105 +right 22 +bottom 122 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_sp7.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_sp7.sub new file mode 100644 index 00000000..25da3daa --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_sp7.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 26 +top 105 +right 48 +bottom 122 diff --git a/assets/ETC/ymir work/ui/intro/login/server_flag_tr.sub b/assets/ETC/ymir work/ui/intro/login/server_flag_tr.sub new file mode 100644 index 00000000..7b7b8aa2 --- /dev/null +++ b/assets/ETC/ymir work/ui/intro/login/server_flag_tr.sub @@ -0,0 +1,7 @@ +title subImage +version 1.0 +image "severflags_01.dds" +left 26 +top 42 +right 48 +bottom 59 diff --git a/assets/ETC/ymir work/ui/severflags_01.dds b/assets/ETC/ymir work/ui/severflags_01.dds new file mode 100644 index 00000000..9aa023d6 Binary files /dev/null and b/assets/ETC/ymir work/ui/severflags_01.dds differ diff --git a/assets/root/intrologin.py b/assets/root/intrologin.py index 5413c0e5..343494c8 100644 --- a/assets/root/intrologin.py +++ b/assets/root/intrologin.py @@ -143,7 +143,13 @@ class LoginWindow(ui.ScriptWindow): self.virtualKeyboardMode = "ALPHABET" self.virtualKeyboardIsUpper = False self.timeOutMsg = False #Fix - + + self.language_list = [] + self.flag_button_list = [] + self.language_board = None + self.language_popup = None + self.__LoadLocale() + def __del__(self): net.ClearPhaseWindow(net.PHASE_WINDOW_LOGIN, self) net.SetAccountConnectorHandler(0) @@ -270,9 +276,14 @@ class LoginWindow(ui.ScriptWindow): self.connectingDialog = None self.loadingImage = None - self.serverBoard = None - self.serverList = None - self.channelList = None + self.language_list = [] + self.flag_button_list = [] + self.language_board = None + self.language_popup = None + + self.serverBoard = None + self.serverList = None + self.channelList = None self.VIRTUAL_KEY_ALPHABET_LOWERS = None self.VIRTUAL_KEY_ALPHABET_UPPERS = None @@ -454,6 +465,30 @@ class LoginWindow(ui.ScriptWindow): self.GetChild("key_at").SetToggleDownEvent(lambda : self.__VirtualKeyboard_SetSymbolMode()) self.GetChild("key_at").SetToggleUpEvent(lambda : self.__VirtualKeyboard_SetAlphabetMode()) + self.language_board = ui.ThinBoard() + self.language_board.SetParent(self) + self.language_board.SetSize(wndMgr.GetScreenWidth(), 35) + self.language_board.SetPosition(0, 20) + self.language_board.Show() + + step = wndMgr.GetScreenWidth() / len(self.language_list) + x = 0 + + for i, lang in enumerate(self.language_list): + img_path = "d:/ymir work/ui/intro/login/server_flag_%s.sub" % lang + btn = ui.Button() + btn.SetParent(self.language_board) + btn.SetPosition(x + 15, 10) + btn.SetUpVisual(img_path) + btn.SetOverVisual(img_path) + btn.SetDownVisual(img_path) + btn.SetToolTipText(lang.upper()) + btn.SetEvent(ui.__mem_func__(self.__ClickLanguage), i) + btn.Show() + + self.flag_button_list.append(btn) + x += step + except: import exception exception.Abort("LoginWindow.__LoadScript.BindObject") @@ -566,17 +601,61 @@ class LoginWindow(ui.ScriptWindow): else: self.stream.popupWindow.Close() self.stream.popupWindow.Open(localeInfo.LOGIN_CONNETING, self.SetPasswordEditLineFocus, localeInfo.UI_CANCEL) - + self.stream.SetLoginInfo(id, pwd) self.stream.Connect() def __OnClickExitButton(self): self.stream.SetPhaseWindow(0) + def __LoadLocale(self): + self.language_list = [ + "ae", "en", "cz", "de", "dk", + "es", "fr", "gr", "hu", "it", + "nl", "pl", "pt", "ro", "ru", "tr", + ] + + def __SaveLocale(self, locale): + try: + with open("config/locale.cfg", "wt") as f: + f.write(locale) + except: + import dbg + dbg.LogBox("__SaveLocale error locale.cfg") + app.Abort() + + def __ClickLanguage(self, index): + if index >= len(self.language_list): + return + + self.locale = self.language_list[index] + + if not self.language_popup: + self.language_popup = uiCommon.QuestionDialog() + + self.language_popup.SetText("Change language and restart the client?") + self.language_popup.SetAcceptEvent(ui.__mem_func__(self.__OnAcceptLanguage)) + self.language_popup.SetCancelEvent(ui.__mem_func__(self.__OnCancelLanguage)) + self.language_popup.Open() + + def __OnAcceptLanguage(self): + if self.language_popup: + self.language_popup.Close() + + self.__SaveLocale(self.locale) + + import os + app.Exit() + os.popen('start "" "Metin2_Debug.exe"') + + def __OnCancelLanguage(self): + if self.language_popup: + self.language_popup.Close() + def __SetServerInfo(self, name): net.SetServerInfo(name.strip()) self.serverInfo.SetText(name) - + def __LoadLoginInfo(self, loginInfoFileName): try: diff --git a/config/locale_ae.cfg b/config/locale_ae.cfg deleted file mode 100644 index 8769a806..00000000 --- a/config/locale_ae.cfg +++ /dev/null @@ -1 +0,0 @@ -ae \ No newline at end of file diff --git a/config/locale_cz.cfg b/config/locale_cz.cfg deleted file mode 100644 index ce76795c..00000000 --- a/config/locale_cz.cfg +++ /dev/null @@ -1 +0,0 @@ -cz \ No newline at end of file diff --git a/config/locale_de.cfg b/config/locale_de.cfg deleted file mode 100644 index c42e816f..00000000 --- a/config/locale_de.cfg +++ /dev/null @@ -1 +0,0 @@ -de \ No newline at end of file diff --git a/config/locale_dk.cfg b/config/locale_dk.cfg deleted file mode 100644 index 2a878999..00000000 --- a/config/locale_dk.cfg +++ /dev/null @@ -1 +0,0 @@ -dk \ No newline at end of file diff --git a/config/locale_es.cfg b/config/locale_es.cfg deleted file mode 100644 index 6c438149..00000000 --- a/config/locale_es.cfg +++ /dev/null @@ -1 +0,0 @@ -es \ No newline at end of file diff --git a/config/locale_fr.cfg b/config/locale_fr.cfg deleted file mode 100644 index 717280ac..00000000 --- a/config/locale_fr.cfg +++ /dev/null @@ -1 +0,0 @@ -fr \ No newline at end of file diff --git a/config/locale_gr.cfg b/config/locale_gr.cfg deleted file mode 100644 index d0e445b9..00000000 --- a/config/locale_gr.cfg +++ /dev/null @@ -1 +0,0 @@ -gr \ No newline at end of file diff --git a/config/locale_hu.cfg b/config/locale_hu.cfg deleted file mode 100644 index 6c604cf2..00000000 --- a/config/locale_hu.cfg +++ /dev/null @@ -1 +0,0 @@ -hu \ No newline at end of file diff --git a/config/locale_it.cfg b/config/locale_it.cfg deleted file mode 100644 index c9197143..00000000 --- a/config/locale_it.cfg +++ /dev/null @@ -1 +0,0 @@ -it \ No newline at end of file diff --git a/config/locale_nl.cfg b/config/locale_nl.cfg deleted file mode 100644 index d5f5c2a1..00000000 --- a/config/locale_nl.cfg +++ /dev/null @@ -1 +0,0 @@ -nl \ No newline at end of file diff --git a/config/locale_pl.cfg b/config/locale_pl.cfg deleted file mode 100644 index 55239f3c..00000000 --- a/config/locale_pl.cfg +++ /dev/null @@ -1 +0,0 @@ -pl \ No newline at end of file diff --git a/config/locale_pt.cfg b/config/locale_pt.cfg deleted file mode 100644 index 9e3340ec..00000000 --- a/config/locale_pt.cfg +++ /dev/null @@ -1 +0,0 @@ -pt \ No newline at end of file diff --git a/config/locale_ro.cfg b/config/locale_ro.cfg deleted file mode 100644 index d89a6ef5..00000000 --- a/config/locale_ro.cfg +++ /dev/null @@ -1 +0,0 @@ -ro \ No newline at end of file diff --git a/config/locale_ru.cfg b/config/locale_ru.cfg deleted file mode 100644 index adc719b4..00000000 --- a/config/locale_ru.cfg +++ /dev/null @@ -1 +0,0 @@ -ru \ No newline at end of file diff --git a/config/locale_tr.cfg b/config/locale_tr.cfg deleted file mode 100644 index 44266bf2..00000000 --- a/config/locale_tr.cfg +++ /dev/null @@ -1 +0,0 @@ -tr \ No newline at end of file