Merge pull request #31 from rtw1x1/main

Language selector in login
This commit is contained in:
rtw1x1
2025-12-31 22:41:38 +00:00
committed by GitHub
44 changed files with 274 additions and 21 deletions

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 52
top 21
right 74
bottom 38

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 78
top 63
right 100
bottom 80

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 26
top 63
right 48
bottom 80

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 0
top 42
right 22
bottom 59

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 78
top 0
right 100
bottom 17

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 52
top 0
right 74
bottom 17

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 78
top 21
right 100
bottom 38

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 26
top 21
right 48
bottom 38

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 104
top 63
right 126
bottom 80

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 104
top 42
right 126
bottom 59

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 0
top 0
right 22
bottom 17

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 0
top 63
right 22
bottom 80

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 104
top 21
right 126
bottom 38

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 52
top 63
right 74
bottom 80

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 26
top 0
right 48
bottom 17

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 78
top 42
right 100
bottom 59

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 52
top 42
right 74
bottom 59

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 0
top 21
right 22
bottom 38

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 104
top 0
right 126
bottom 17

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 0
top 84
right 22
bottom 101

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 26
top 84
right 48
bottom 101

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 52
top 84
right 74
bottom 101

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 78
top 84
right 100
bottom 101

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 104
top 84
right 126
bottom 101

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 0
top 105
right 22
bottom 122

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 26
top 105
right 48
bottom 122

View File

@@ -0,0 +1,7 @@
title subImage
version 1.0
image "severflags_01.dds"
left 26
top 42
right 48
bottom 59

Binary file not shown.

View File

@@ -144,6 +144,12 @@ class LoginWindow(ui.ScriptWindow):
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")
@@ -573,6 +608,50 @@ class LoginWindow(ui.ScriptWindow):
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)

View File

@@ -1 +0,0 @@
ae

View File

@@ -1 +0,0 @@
cz

View File

@@ -1 +0,0 @@
de

View File

@@ -1 +0,0 @@
dk

View File

@@ -1 +0,0 @@
es

View File

@@ -1 +0,0 @@
fr

View File

@@ -1 +0,0 @@
gr

View File

@@ -1 +0,0 @@
hu

View File

@@ -1 +0,0 @@
it

View File

@@ -1 +0,0 @@
nl

View File

@@ -1 +0,0 @@
pl

View File

@@ -1 +0,0 @@
pt

View File

@@ -1 +0,0 @@
ro

View File

@@ -1 +0,0 @@
ru

View File

@@ -1 +0,0 @@
tr