Advertisement
Guest User

intrologin

a guest
Nov 22nd, 2019
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 40.02 KB | None | 0 0
  1. import dbg
  2. import app
  3. import net
  4. import ui
  5. import ime
  6. import snd
  7. import wndMgr
  8. import musicInfo
  9. import serverInfo
  10. import systemSetting
  11. import ServerStateChecker
  12. import localeInfo
  13. import constInfo
  14. import uiCommon
  15. import time
  16. import ServerCommandParser
  17. import ime
  18. import uiScriptLocale
  19. import grp
  20. import dates
  21. import os
  22.  
  23. RUNUP_MATRIX_AUTH = FALSE
  24. NEWCIBN_PASSPOD_AUTH = FALSE
  25.  
  26. LOGIN_DELAY_SEC = 0.0
  27. SKIP_LOGIN_PHASE = FALSE
  28. SKIP_LOGIN_PHASE_SUPPORT_CHANNEL = FALSE
  29. FULL_BACK_IMAGE = FALSE
  30.  
  31. PASSPOD_MSG_DICT = {}
  32.  
  33. VIRTUAL_KEYBOARD_NUM_KEYS = 46
  34. VIRTUAL_KEYBOARD_RAND_KEY = TRUE
  35.  
  36. def Suffle(src):
  37.     if VIRTUAL_KEYBOARD_RAND_KEY:
  38.         items = [item for item in src]
  39.  
  40.         itemCount = len(items)
  41.         for oldPos in xrange(itemCount):
  42.             newPos = app.GetRandom(0, itemCount-1)
  43.             items[newPos], items[oldPos] = items[oldPos], items[newPos]
  44.  
  45.         return "".join(items)
  46.     else:
  47.         return src
  48.  
  49. if localeInfo.IsNEWCIBN() or localeInfo.IsCIBN10():
  50.     LOGIN_DELAY_SEC = 20.0
  51.     FULL_BACK_IMAGE = TRUE
  52.     NEWCIBN_PASSPOD_AUTH = TRUE
  53.     PASSPOD_MSG_DICT = {
  54.         "PASERR1"   : localeInfo.LOGIN_FAILURE_PASERR1,
  55.         "PASERR2"   : localeInfo.LOGIN_FAILURE_PASERR2,
  56.         "PASERR3"   : localeInfo.LOGIN_FAILURE_PASERR3,
  57.         "PASERR4"   : localeInfo.LOGIN_FAILURE_PASERR4,
  58.         "PASERR5"   : localeInfo.LOGIN_FAILURE_PASERR5,
  59.     }
  60.  
  61. elif localeInfo.IsYMIR() or localeInfo.IsCHEONMA():
  62.     FULL_BACK_IMAGE = TRUE
  63.  
  64. elif localeInfo.IsHONGKONG():
  65.     FULL_BACK_IMAGE = TRUE
  66.     RUNUP_MATRIX_AUTH = TRUE
  67.     PASSPOD_MSG_DICT = {
  68.         "NOTELE"    : localeInfo.LOGIN_FAILURE_NOTELEBLOCK,
  69.     }
  70.  
  71. elif localeInfo.IsJAPAN():
  72.     FULL_BACK_IMAGE = TRUE
  73.  
  74. def IsFullBackImage():
  75.     global FULL_BACK_IMAGE
  76.     return FULL_BACK_IMAGE
  77.  
  78. def IsLoginDelay():
  79.     global LOGIN_DELAY_SEC
  80.     if LOGIN_DELAY_SEC > 0.0:
  81.         return TRUE
  82.     else:
  83.         return FALSE
  84.  
  85. def IsRunupMatrixAuth():
  86.     global RUNUP_MATRIX_AUTH
  87.     return RUNUP_MATRIX_AUTH   
  88.  
  89. def IsNEWCIBNPassPodAuth():
  90.     global NEWCIBN_PASSPOD_AUTH
  91.     return NEWCIBN_PASSPOD_AUTH
  92.  
  93. def GetLoginDelay():
  94.     global LOGIN_DELAY_SEC
  95.     return LOGIN_DELAY_SEC
  96.  
  97. app.SetGuildMarkPath("test")
  98.  
  99. class ConnectingDialog(ui.ScriptWindow):
  100.  
  101.     def __init__(self):
  102.         ui.ScriptWindow.__init__(self)
  103.         self.__LoadDialog()
  104.         self.eventTimeOver = lambda *arg: None
  105.         self.eventExit = lambda *arg: None
  106.  
  107.     def __del__(self):
  108.         ui.ScriptWindow.__del__(self)
  109.  
  110.     def __LoadDialog(self):
  111.         try:
  112.             PythonScriptLoader = ui.PythonScriptLoader()
  113.             PythonScriptLoader.LoadScriptFile(self, "UIScript/ConnectingDialog.py")
  114.  
  115.             self.board = self.GetChild("board")
  116.             self.message = self.GetChild("message")
  117.             self.countdownMessage = self.GetChild("countdown_message")
  118.  
  119.         except:
  120.             import exception
  121.             exception.Abort("ConnectingDialog.LoadDialog.BindObject")
  122.  
  123.     def Open(self, waitTime):
  124.         curTime = time.clock()
  125.         self.endTime = curTime + waitTime
  126.  
  127.         self.Lock()
  128.         self.SetCenterPosition()
  129.         self.SetTop()
  130.         self.Show()    
  131.  
  132.     def Close(self):
  133.         self.Unlock()
  134.         self.Hide()
  135.  
  136.     def Destroy(self):
  137.         self.Hide()
  138.         self.ClearDictionary()
  139.  
  140.     def SetText(self, text):
  141.         self.message.SetText(text)
  142.  
  143.     def SetCountDownMessage(self, waitTime):
  144.         self.countdownMessage.SetText("%.0f%s" % (waitTime, localeInfo.SECOND))
  145.  
  146.     def SAFE_SetTimeOverEvent(self, event):
  147.         self.eventTimeOver = ui.__mem_func__(event)
  148.  
  149.     def SAFE_SetExitEvent(self, event):
  150.         self.eventExit = ui.__mem_func__(event)
  151.  
  152.     def OnUpdate(self):
  153.         lastTime = max(0, self.endTime - time.clock())
  154.         if 0 == lastTime:
  155.             self.Close()
  156.             self.eventTimeOver()
  157.         else:
  158.             self.SetCountDownMessage(self.endTime - time.clock())
  159.  
  160.     def OnPressExitKey(self):
  161.         #self.eventExit()
  162.         return TRUE
  163.  
  164. class LoginWindow(ui.ScriptWindow):
  165.  
  166.     IS_TEST = net.IsTest()
  167.  
  168.     def __init__(self, stream):
  169.         print "NEW LOGIN WINDOW  ----------------------------------------------------------------------------"
  170.         ui.ScriptWindow.__init__(self)
  171.         net.SetPhaseWindow(net.PHASE_WINDOW_LOGIN, self)
  172.         net.SetAccountConnectorHandler(self)
  173.  
  174.  
  175.         self.matrixInputChanceCount = 0
  176.         self.lastLoginTime = 0
  177.         self.inputDialog = None
  178.         self.connectingDialog = None
  179.         self.stream=stream
  180.         self.isNowCountDown=FALSE
  181.         self.isStartError=FALSE
  182.  
  183.         self.xServerBoard = 0
  184.         self.yServerBoard = 0
  185.        
  186.         self.loadingImage = None
  187.  
  188.        
  189.     def __del__(self):
  190.         net.ClearPhaseWindow(net.PHASE_WINDOW_LOGIN, self)
  191.         net.SetAccountConnectorHandler(0)
  192.         ui.ScriptWindow.__del__(self)
  193.         print "---------------------------------------------------------------------------- DELETE LOGIN WINDOW"
  194.  
  195.     def Open(self):
  196.         ServerStateChecker.Create(self)
  197.  
  198.         print "LOGIN WINDOW OPEN ----------------------------------------------------------------------------"
  199.  
  200.         self.loginFailureMsgDict={
  201.             #"DEFAULT" : locale.LOGIN_FAILURE_UNKNOWN,
  202.  
  203.             "ALREADY"   : localeInfo.LOGIN_FAILURE_ALREAY,
  204.             "NOID"      : localeInfo.LOGIN_FAILURE_NOT_EXIST_ID,
  205.             "WRONGPWD"  : localeInfo.LOGIN_FAILURE_WRONG_PASSWORD,
  206.             "FULL"      : localeInfo.LOGIN_FAILURE_TOO_MANY_USER,
  207.             "SHUTDOWN"  : localeInfo.LOGIN_FAILURE_SHUTDOWN,
  208.             "REPAIR"    : localeInfo.LOGIN_FAILURE_REPAIR_ID,
  209.             "BLOCK"     : localeInfo.LOGIN_FAILURE_BLOCK_ID,
  210.             "WRONGMAT"  : localeInfo.LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER,
  211.             "QUIT"      : localeInfo.LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE,
  212.             "BESAMEKEY" : localeInfo.LOGIN_FAILURE_BE_SAME_KEY,
  213.             "NOTAVAIL"  : localeInfo.LOGIN_FAILURE_NOT_AVAIL,
  214.             "NOBILL"    : localeInfo.LOGIN_FAILURE_NOBILL,
  215.             "BLKLOGIN"  : localeInfo.LOGIN_FAILURE_BLOCK_LOGIN,
  216.             "WEBBLK"    : localeInfo.LOGIN_FAILURE_WEB_BLOCK,
  217.         }
  218.  
  219.         self.loginFailureFuncDict = {
  220.             "WRONGPWD"  : self.__DisconnectAndInputPassword,
  221.             "WRONGMAT"  : self.__DisconnectAndInputMatrix,
  222.             "QUIT"      : app.Exit,
  223.         }
  224.  
  225.         self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
  226.         self.SetWindowName("LoginWindow")
  227.  
  228.         if not self.__LoadScript(uiScriptLocale.LOCALE_UISCRIPT_PATH + "LoginWindow.py"):
  229.             dbg.TraceError("LoginWindow.Open - __LoadScript Error")
  230.             return
  231.        
  232.         self.__LoadLoginInfo("loginInfo.py")
  233.        
  234.         if app.loggined:
  235.             self.loginFailureFuncDict = {
  236.             "WRONGPWD"  : app.Exit,
  237.             "WRONGMAT"  : app.Exit,
  238.             "QUIT"      : app.Exit,
  239.             }
  240.  
  241.         if musicInfo.loginMusic != "":
  242.             snd.SetMusicVolume(systemSetting.GetMusicVolume())
  243.             snd.FadeInMusic("BGM/"+musicInfo.loginMusic)
  244.  
  245.         snd.SetSoundVolume(systemSetting.GetSoundVolume())
  246.  
  247.         # pevent key "[" "]"
  248.         ime.AddExceptKey(91)
  249.         ime.AddExceptKey(93)
  250.            
  251.         self.Show()
  252.  
  253.         global SKIP_LOGIN_PHASE
  254.         if SKIP_LOGIN_PHASE:
  255.             if self.isStartError:
  256.                 self.PopupNotifyMessage(localeInfo.LOGIN_CONNECT_FAILURE, self.__ExitGame)
  257.                 return
  258.  
  259.             if self.loginInfo:
  260.                 return
  261.             else:
  262.                 self.__RefreshServerList()
  263.                 self.__OpenServerBoard()
  264.         else:
  265.             connectingIP = self.stream.GetConnectAddr()
  266.             if connectingIP:
  267.                 if app.USE_OPENID and not app.OPENID_TEST :
  268.                     self.__RefreshServerList()
  269.                     self.__OpenServerBoard()
  270.                 else:
  271.                     self.__OpenLoginBoard()
  272.                     if IsFullBackImage():
  273.                         self.GetChild("bg1").Hide()
  274.                         self.GetChild("bg2").Show()
  275.  
  276.             else:
  277.                 self.__RefreshServerList()
  278.                 self.__OpenServerBoard()
  279.  
  280.         app.ShowCursor()
  281.  
  282.     def Close(self):
  283.  
  284.         if self.connectingDialog:
  285.             self.connectingDialog.Close()
  286.         self.connectingDialog = None
  287.         ServerStateChecker.Initialize(self)
  288.  
  289.         print "---------------------------------------------------------------------------- CLOSE LOGIN WINDOW "
  290.         #
  291.         # selectMusic?? ¾ø?¸¸é BGM?? ²÷±â¹?·? µ?°³ ´? ?¼?©??´?.
  292.         #
  293.         if musicInfo.loginMusic != "" and musicInfo.selectMusic != "":
  294.             snd.FadeOutMusic("BGM/"+musicInfo.loginMusic)
  295.  
  296.         ## NOTE : idEditLine¿? pwdEditLine?º ??º¥?®°¡ ¼­·? ¿¬°á µ?¾î??¾î¼­
  297.         ##        Event¸¦ °­?¦·? ??±â?­ ????¾î¾?¸¸ ??´?´? - [levites]
  298.         self.idEditLine.SetTabEvent(0)
  299.         self.idEditLine.SetReturnEvent(0)
  300.         self.pwdEditLine.SetReturnEvent(0)
  301.         self.pwdEditLine.SetTabEvent(0)
  302.  
  303.         self.idEditLine = None
  304.         self.pwdEditLine = None
  305.         self.inputDialog = None
  306.         self.connectingDialog = None
  307.         self.loadingImage = None
  308.  
  309.         # RUNUP_MATRIX_AUTH
  310.         self.matrixQuizBoard    = None
  311.         self.matrixAnswerInput  = None
  312.         self.matrixAnswerOK = None
  313.         self.matrixAnswerCancel = None
  314.         # RUNUP_MATRIX_AUTH_END
  315.  
  316.         # NEWCIBN_PASSPOD_AUTH
  317.         self.passpodBoard   = None
  318.         self.passpodAnswerInput = None
  319.         self.passpodAnswerOK    = None
  320.         self.passpodAnswerCancel = None
  321.         # NEWCIBN_PASSPOD_AUTH_END
  322.  
  323.         self.VIRTUAL_KEY_ALPHABET_LOWERS = None
  324.         self.VIRTUAL_KEY_ALPHABET_UPPERS = None
  325.         self.VIRTUAL_KEY_SYMBOLS = None
  326.         self.VIRTUAL_KEY_NUMBERS = None
  327.  
  328.  
  329.         self.KillFocus()
  330.         self.Hide()
  331.  
  332.         self.stream.popupWindow.Close()
  333.         self.loginFailureFuncDict=None
  334.  
  335.         ime.ClearExceptKey()
  336.  
  337.         app.HideCursor()
  338.  
  339.     def __SaveChannelInfo(self):
  340.         try:
  341.             file=open("channel.inf", "w")
  342.             file.write("%d %d %d" % (self.__GetServerID(), self.__GetChannelID(), self.__GetRegionID()))
  343.         except:
  344.             print "LoginWindow.__SaveChannelInfo - SaveError"
  345.  
  346.     def __LoadChannelInfo(self):
  347.         try:
  348.             file=open("channel.inf")
  349.             lines=file.readlines()
  350.            
  351.             if len(lines)>0:
  352.                 tokens=lines[0].split()
  353.  
  354.                 selServerID=int(tokens[0])
  355.                 selChannelID=int(tokens[1])
  356.                
  357.                 if len(tokens) == 3:
  358.                     regionID = int(tokens[2])
  359.  
  360.                 return regionID, selServerID, selChannelID
  361.  
  362.         except:
  363.             print "LoginWindow.__LoadChannelInfo - OpenError"
  364.             return -1, -1, -1
  365.  
  366.     def __ExitGame(self):
  367.         app.Exit()
  368.  
  369.     def SetIDEditLineFocus(self):
  370.         if self.idEditLine != None:
  371.             self.idEditLine.SetFocus()
  372.  
  373.     def SetPasswordEditLineFocus(self):
  374.         if localeInfo.IsEUROPE():
  375.             if self.idEditLine != None: #0000862: [M2EU] ·?±????¢ ??¾÷ ¿¡·¯: ?¾·á½? ¸??ú None ¼³?¤µ?
  376.                 self.idEditLine.SetText("")
  377.                 self.idEditLine.SetFocus() #0000685: [M2EU] ¾???µð/ºñ¹?¹ø?£ ?¯?? °¡´? ¹ö±? ¼ö?¤: ¹«?¶°? ¾???µð·? ?÷?¿½º°¡ °¡°? ¸¸µç´?
  378.  
  379.             if self.pwdEditLine != None: #0000862: [M2EU] ·?±????¢ ??¾÷ ¿¡·¯: ?¾·á½? ¸??ú None ¼³?¤µ?
  380.                 self.pwdEditLine.SetText("")
  381.         else:
  382.             if self.pwdEditLine != None:
  383.                 self.pwdEditLine.SetFocus()                            
  384.  
  385.     def OnEndCountDown(self):
  386.         self.isNowCountDown = FALSE
  387.         self.OnConnectFailure()
  388.  
  389.     def OnConnectFailure(self):
  390.  
  391.         if self.isNowCountDown:
  392.             return
  393.  
  394.         snd.PlaySound("sound/ui/loginfail.wav")
  395.  
  396.         if self.connectingDialog:
  397.             self.connectingDialog.Close()
  398.         self.connectingDialog = None
  399.  
  400.         if app.loggined:
  401.             self.PopupNotifyMessage(localeInfo.LOGIN_CONNECT_FAILURE, self.__ExitGame)
  402.         else:
  403.             self.PopupNotifyMessage(localeInfo.LOGIN_CONNECT_FAILURE, self.SetPasswordEditLineFocus)
  404.  
  405.     def OnHandShake(self):
  406.         if not IsLoginDelay():
  407.             snd.PlaySound("sound/ui/loginok.wav")
  408.             self.PopupDisplayMessage(localeInfo.LOGIN_CONNECT_SUCCESS)
  409.  
  410.     def OnLoginStart(self):
  411.         if not IsLoginDelay():
  412.             self.PopupDisplayMessage(localeInfo.LOGIN_PROCESSING)
  413.  
  414.     def OnLoginFailure(self, error):
  415.         if self.connectingDialog:
  416.             self.connectingDialog.Close()
  417.         self.connectingDialog = None
  418.  
  419.         try:
  420.             loginFailureMsg = self.loginFailureMsgDict[error]
  421.         except KeyError:
  422.             if PASSPOD_MSG_DICT:
  423.                 try:
  424.                     loginFailureMsg = PASSPOD_MSG_DICT[error]
  425.                 except KeyError:
  426.                     loginFailureMsg = localeInfo.LOGIN_FAILURE_UNKNOWN + error
  427.             else:
  428.                 loginFailureMsg = localeInfo.LOGIN_FAILURE_UNKNOWN  + error
  429.  
  430.  
  431.         #0000685: [M2EU] ¾???µð/ºñ¹?¹ø?£ ?¯?? °¡´? ¹ö±? ¼ö?¤: ¹«?¶°? ??½º¿öµå·? ?÷?¿½º°¡ °¡°? ¸¸µç´?
  432.         loginFailureFunc=self.loginFailureFuncDict.get(error, self.SetPasswordEditLineFocus)
  433.  
  434.         if app.loggined:
  435.             self.PopupNotifyMessage(loginFailureMsg, self.__ExitGame)
  436.         else:
  437.             self.PopupNotifyMessage(loginFailureMsg, loginFailureFunc)
  438.  
  439.         snd.PlaySound("sound/ui/loginfail.wav")
  440.  
  441.     def __DisconnectAndInputID(self):
  442.         if self.connectingDialog:
  443.             self.connectingDialog.Close()
  444.         self.connectingDialog = None
  445.  
  446.         self.SetIDEditLineFocus()
  447.         net.Disconnect()
  448.  
  449.     def __DisconnectAndInputPassword(self):
  450.         if self.connectingDialog:
  451.             self.connectingDialog.Close()
  452.         self.connectingDialog = None
  453.  
  454.         self.SetPasswordEditLineFocus()
  455.         net.Disconnect()
  456.        
  457.     def __DisconnectAndInputMatrix(self):
  458.         if self.connectingDialog:
  459.             self.connectingDialog.Close()
  460.         self.connectingDialog = None
  461.  
  462.         self.stream.popupWindow.Close()
  463.         self.matrixInputChanceCount -= 1
  464.  
  465.         if self.matrixInputChanceCount <= 0:
  466.             self.__OnCloseInputDialog()
  467.  
  468.         elif self.inputDialog:
  469.             self.inputDialog.Show()
  470.  
  471.     def __LoadScript(self, fileName):
  472.         try:
  473.             pyScrLoader = ui.PythonScriptLoader()
  474.             pyScrLoader.LoadScriptFile(self,"login_itachi/loginwindow_itachi.py")
  475.         except:
  476.             import exception
  477.             exception.Abort("LoginWindow.__LoadScript.LoadObject")
  478.  
  479.         try:
  480.             GetObject=self.GetChild
  481.             self.idEditLine             = GetObject("name_input")
  482.             self.pwdEditLine            = GetObject("pass_input")
  483.             self.enterbutton            = GetObject("Entrar")
  484.             self.exitbutton             = GetObject("Salir")
  485.             self.guardarcuenta          = GetObject("Guardar")
  486.             self.cuenta_1       = GetObject("Cuenta_1")
  487.             self.cuenta_2       = GetObject("Cuenta_2")
  488.             self.cuenta_3       = GetObject("Cuenta_3")
  489.             self.cuenta_4       = GetObject("Cuenta_4")
  490.             self.logincuenta1       = GetObject("Guardar_Cuenta_1")
  491.             self.logincuenta2       = GetObject("Guardar_Cuenta_2")
  492.             self.logincuenta3       = GetObject("Guardar_Cuenta_3")
  493.             self.logincuenta4       = GetObject("Guardar_Cuenta_4")
  494.             self.borrarcuenta1      = GetObject("Borrar_Cuenta_1")
  495.             self.borrarcuenta2      = GetObject("Borrar_Cuenta_2")
  496.             self.borrarcuenta3      = GetObject("Borrar_Cuenta_3")
  497.             self.borrarcuenta4      = GetObject("Borrar_Cuenta_4")
  498.             self.ChannelSlot = []
  499.             self.ChannelSlot.append(GetObject("channel_1"))
  500.             self.ChannelSlot.append(GetObject("channel_2"))
  501.             self.ChannelSlot.append(GetObject("channel_3"))
  502.             self.ChannelSlot.append(GetObject("channel_4"))
  503.             # self.Web      = GetObject("Web")
  504.             # self.Foro     = GetObject("Foro")
  505.             #self.Facebook      = GetObject("Facebook")
  506.             #self.Itemshop      = GetObject("Itemshop")
  507.  
  508.             self.__CargarCuentas()
  509.  
  510.             #self.ChannelSlot.append(GetObject("channel_5_button"))
  511.             #self.ChannelSlot.append(GetObject("channel_6_button"))
  512.  
  513.  
  514.             # RUNUP_MATRIX_AUTH
  515.             if IsRunupMatrixAuth():
  516.                 self.matrixQuizBoard    = GetObject("RunupMatrixQuizBoard")
  517.                 self.matrixAnswerInput  = GetObject("RunupMatrixAnswerInput")
  518.                 self.matrixAnswerOK = GetObject("RunupMatrixAnswerOK")
  519.                 self.matrixAnswerCancel = GetObject("RunupMatrixAnswerCancel")
  520.             # RUNUP_MATRIX_AUTH_END
  521.  
  522.             # NEWCIBN_PASSPOD_AUTH
  523.             if IsNEWCIBNPassPodAuth():
  524.                 self.passpodBoard   = GetObject("NEWCIBN_PASSPOD_BOARD")
  525.                 self.passpodAnswerInput = GetObject("NEWCIBN_PASSPOD_INPUT")
  526.                 self.passpodAnswerOK    = GetObject("NEWCIBN_PASSPOD_OK")
  527.                 self.passpodAnswerCancel= GetObject("NEWCIBN_PASSPOD_CANCEL")
  528.             # NEWCIBN_PASSPOD_AUTH_END
  529.  
  530.         except:
  531.             import exception
  532.             exception.Abort("LoginWindow.__LoadScript.BindObject")
  533.  
  534.         self.ChannelSlot[0].SAFE_SetEvent(self.__OnClickChannelButton,1)
  535.         self.ChannelSlot[1].SAFE_SetEvent(self.__OnClickChannelButton,2)
  536.         self.ChannelSlot[2].SAFE_SetEvent(self.__OnClickChannelButton,3)
  537.         self.ChannelSlot[3].SAFE_SetEvent(self.__OnClickChannelButton,4)
  538.  
  539.         self.enterbutton.SetEvent(ui.__mem_func__(self.__OnClickLoginButton))
  540.         self.exitbutton.SetEvent(ui.__mem_func__(self.__OnClickExitButton))
  541.  
  542.        
  543.         self.idEditLine.SetReturnEvent(ui.__mem_func__(self.pwdEditLine.SetFocus))
  544.         self.idEditLine.SetTabEvent(ui.__mem_func__(self.pwdEditLine.SetFocus))
  545.  
  546.         self.pwdEditLine.SetReturnEvent(ui.__mem_func__(self.__OnClickLoginButton))
  547.         self.pwdEditLine.SetTabEvent(ui.__mem_func__(self.idEditLine.SetFocus))
  548.  
  549.         self.guardarcuenta.SetEvent(ui.__mem_func__(self.__GuardarCuenta))
  550.         self.logincuenta1.SetEvent(ui.__mem_func__(self.__OnClicklogincuenta1))
  551.         self.logincuenta2.SetEvent(ui.__mem_func__(self.__OnClicklogincuenta2))
  552.         self.logincuenta3.SetEvent(ui.__mem_func__(self.__OnClicklogincuenta3))
  553.         self.logincuenta4.SetEvent(ui.__mem_func__(self.__OnClicklogincuenta4))
  554.         self.borrarcuenta1.SetEvent(ui.__mem_func__(self.__Borrarcuenta1))
  555.         self.borrarcuenta2.SetEvent(ui.__mem_func__(self.__Borrarcuenta2))
  556.         self.borrarcuenta3.SetEvent(ui.__mem_func__(self.__Borrarcuenta3))
  557.         self.borrarcuenta4.SetEvent(ui.__mem_func__(self.__Borrarcuenta4))
  558.         # self.Web.SetEvent(ui.__mem_func__(self.__Web))       
  559.         # self.Foro.SetEvent(ui.__mem_func__(self.__Foro))     
  560.         #self.Facebook.SetEvent(ui.__mem_func__(self.__Facebook))  
  561.         #self.Itemshop.SetEvent(ui.__mem_func__(self.__Itemshop))      
  562.  
  563.         # RUNUP_MATRIX_AUTH
  564.         if IsRunupMatrixAuth():        
  565.             self.matrixAnswerOK.SAFE_SetEvent(self.__OnClickMatrixAnswerOK)
  566.             self.matrixAnswerCancel.SAFE_SetEvent(self.__OnClickMatrixAnswerCancel)
  567.             self.matrixAnswerInput.SAFE_SetReturnEvent(self.__OnClickMatrixAnswerOK)
  568.         # RUNUP_MATRIX_AUTH_END
  569.  
  570.         # NEWCIBN_PASSPOD_AUTH
  571.         if IsNEWCIBNPassPodAuth():
  572.             self.passpodAnswerOK.SAFE_SetEvent(self.__OnClickNEWCIBNPasspodAnswerOK)
  573.             self.passpodAnswerCancel.SAFE_SetEvent(self.__OnClickNEWCIBNPasspodAnswerCancel)
  574.             self.passpodAnswerInput.SAFE_SetReturnEvent(self.__OnClickNEWCIBNPasspodAnswerOK)
  575.  
  576.         # NEWCIBN_PASSPOD_AUTH_END
  577.  
  578.  
  579.         if IsFullBackImage():
  580.             self.GetChild("bg1").Show()
  581.             self.GetChild("bg2").Hide()
  582.         return 1
  583.                
  584.     def Connect(self, id, pwd):
  585.  
  586.         if constInfo.SEQUENCE_PACKET_ENABLE:
  587.             net.SetPacketSequenceMode()
  588.  
  589.         if IsLoginDelay():
  590.             loginDelay = GetLoginDelay()
  591.             self.connectingDialog = ConnectingDialog()
  592.             self.connectingDialog.Open(loginDelay)
  593.             self.connectingDialog.SAFE_SetTimeOverEvent(self.OnEndCountDown)
  594.             self.connectingDialog.SAFE_SetExitEvent(self.OnPressExitKey)
  595.             self.isNowCountDown = TRUE
  596.  
  597.         else:
  598.             self.stream.popupWindow.Close()
  599.             self.stream.popupWindow.Open(localeInfo.LOGIN_CONNETING, self.SetPasswordEditLineFocus, localeInfo.UI_CANCEL)
  600.  
  601.         self.stream.SetLoginInfo(id, pwd)
  602.         self.stream.Connect()
  603.  
  604.     def __OnClickExitButton(self):
  605.         self.stream.SetPhaseWindow(0)
  606.  
  607.     def __SetServerInfo(self, name):
  608.         net.SetServerInfo(name.strip())
  609.  
  610.  
  611.  
  612.     def __LoadLoginInfo(self, loginInfoFileName):
  613.  
  614.         try:
  615.             loginInfo={}
  616.             execfile(loginInfoFileName, loginInfo)
  617.         except IOError:
  618.             print(\
  619.                 "??µ¿ ·?±????» ??½?·?¸é" + loginInfoFileName + "?????» ??¼º????¼¼¿ä\n"\
  620.                 "\n"\
  621.                 "³»¿ë:\n"\
  622.                 "================================================================\n"\
  623.                 "addr=??¼?\n"\
  624.                 "port=?÷?®\n"\
  625.                 "id=¾???µð\n"\
  626.                 "pwd=ºñ¹?¹ø?£\n"\
  627.                 "slot=?³¸¯?? ¼±?? ??µ¦½º (¾ø°?³ª -1??¸é ??µ¿ ¼±?? ¾???)\n"\
  628.                 "autoLogin=??µ¿ ?¢¼? ¿©º?\n"
  629.                 "autoSelect=??µ¿ ?¢¼? ¿©º?\n"
  630.                 "localeInfo=(ymir) LC_Ymir ??°æ¿ì ymir·? ??µ¿. ?ö?¤???ö ¾??¸¸é korea·? ??µ¿\n"
  631.             );
  632.  
  633.         id=loginInfo.get("id", "")
  634.         pwd=loginInfo.get("pwd", "")
  635.  
  636.         if self.IS_TEST:
  637.             try:
  638.                 addr=loginInfo["addr"]
  639.                 port=loginInfo["port"]
  640.                 account_addr=addr
  641.                 account_port=port
  642.  
  643.                 net.SetMarkServer(addr, port)
  644.                 self.__SetServerInfo(localeInfo.CHANNEL_TEST_SERVER_ADDR % (addr, port))
  645.             except:
  646.                 try:
  647.                     addr=serverInfo.TESTADDR["ip"]
  648.                     port=serverInfo.TESTADDR["tcp_port"]
  649.  
  650.                     net.SetMarkServer(addr, port)
  651.                     self.__SetServerInfo(localeInfo.CHANNEL_TEST_SERVER)
  652.                 except:
  653.                     import exception
  654.                     exception.Abort("LoginWindow.__LoadLoginInfo - ??½º?®¼­¹ö ??¼?°¡ ¾ø½?´?´?")
  655.  
  656.         else:
  657.             addr=loginInfo.get("addr", "")
  658.             port=loginInfo.get("port", 0)
  659.             account_addr=loginInfo.get("account_addr", addr)
  660.             account_port=loginInfo.get("account_port", port)
  661.  
  662.             localeInfo = loginInfo.get("localeInfo", "")
  663.  
  664.             if addr and port:
  665.                 net.SetMarkServer(addr, port)
  666.  
  667.                 if localeInfo == "ymir" :
  668.                     net.SetServerInfo("?µ¸¶ ¼­¹ö")
  669.                 else:
  670.                     net.SetServerInfo(addr+":"+str(port))
  671.  
  672.         slot=loginInfo.get("slot", 0)
  673.         isAutoLogin=loginInfo.get("auto", 0)
  674.         isAutoLogin=loginInfo.get("autoLogin", 0)
  675.         isAutoSelect=loginInfo.get("autoSelect", 0)
  676.  
  677.         self.stream.SetCharacterSlot(slot)
  678.         self.stream.SetConnectInfo(addr, port, account_addr, account_port)
  679.         self.stream.isAutoLogin=isAutoLogin
  680.         self.stream.isAutoSelect=isAutoSelect
  681.  
  682.         self.id = None
  683.         self.pwd = None    
  684.         self.loginnedServer = None
  685.         self.loginnedChannel = None        
  686.         app.loggined = FALSE
  687.  
  688.         self.loginInfo = loginInfo
  689.  
  690.         if self.id and self.pwd:
  691.             app.loggined = TRUE
  692.  
  693.         if isAutoLogin:
  694.             self.Connect(id, pwd)
  695.            
  696.             print "=================================================================================="
  697.             print "??µ¿ ·?±???: %s - %s:%d %s" % (loginInfoFileName, addr, port, id)
  698.             print "=================================================================================="
  699.  
  700.        
  701.     def PopupDisplayMessage(self, msg):
  702.         self.stream.popupWindow.Close()
  703.         self.stream.popupWindow.Open(msg)
  704.  
  705.     def PopupNotifyMessage(self, msg, func=0):
  706.         if not func:
  707.             func=self.EmptyFunc
  708.  
  709.         self.stream.popupWindow.Close()
  710.         self.stream.popupWindow.Open(msg, func, localeInfo.UI_OK)
  711.  
  712.     # RUNUP_MATRIX_AUTH
  713.     def BINARY_OnRunupMatrixQuiz(self, quiz):
  714.         if not IsRunupMatrixAuth():
  715.             return
  716.  
  717.         id      = self.GetChild("RunupMatrixID")
  718.         id.SetText(self.idEditLine.GetText())
  719.        
  720.         code    = self.GetChild("RunupMatrixCode")
  721.        
  722.         code.SetText("".join(["[%c,%c]" % (quiz[i], quiz[i+1]) for i in xrange(0, len(quiz), 2)]))
  723.  
  724.         self.stream.popupWindow.Close()
  725.         self.matrixQuizBoard.Show()
  726.         self.matrixAnswerInput.SetFocus()
  727.  
  728.     def __OnClickMatrixAnswerOK(self):
  729.         answer = self.matrixAnswerInput.GetText()
  730.  
  731.         print "matrix_quiz.ok"
  732.         net.SendRunupMatrixCardPacket(answer)
  733.         self.matrixQuizBoard.Hide()
  734.  
  735.         self.stream.popupWindow.Close()
  736.         self.stream.popupWindow.Open("WAITING FOR MATRIX AUTHENTICATION",
  737.             self.__OnClickMatrixAnswerCancel,
  738.             localeInfo.UI_CANCEL)
  739.  
  740.     def __OnClickMatrixAnswerCancel(self):
  741.         print "matrix_quiz.cancel"
  742.  
  743.         if self.matrixQuizBoard:
  744.             self.matrixQuizBoard.Hide()
  745.  
  746.  
  747.  
  748.     # RUNUP_MATRIX_AUTH_END
  749.  
  750.     # NEWCIBN_PASSPOD_AUTH
  751.     def BINARY_OnNEWCIBNPasspodRequest(self):
  752.         if not IsNEWCIBNPassPodAuth():
  753.             return
  754.  
  755.         if self.connectingDialog:
  756.             self.connectingDialog.Close()
  757.         self.connectingDialog = None
  758.  
  759.         self.stream.popupWindow.Close()
  760.         self.passpodBoard.Show()
  761.         self.passpodAnswerInput.SetFocus()
  762.  
  763.     def BINARY_OnNEWCIBNPasspodFailure(self):
  764.         if not IsNEWCIBNPassPodAuth():
  765.             return
  766.  
  767.     def __OnClickNEWCIBNPasspodAnswerOK(self):
  768.         answer = self.passpodAnswerInput.GetText()
  769.  
  770.         print "passpod.ok"
  771.         net.SendNEWCIBNPasspodAnswerPacket(answer)
  772.         self.passpodAnswerInput.SetText("")
  773.         self.passpodBoard.Hide()   
  774.  
  775.         self.stream.popupWindow.Close()
  776.         self.stream.popupWindow.Open(localeInfo.WAIT_FOR_PASSPOD,
  777.             self.__OnClickNEWCIBNPasspodAnswerCancel,
  778.             localeInfo.UI_CANCEL)
  779.  
  780.     def __OnClickNEWCIBNPasspodAnswerCancel(self):
  781.         print "passpod.cancel"
  782.  
  783.         if self.passpodBoard:
  784.             self.passpodBoard.Hide()   
  785.    
  786.     # NEWCIBN_PASSPOD_AUTH_END
  787.  
  788.  
  789.     def OnMatrixCard(self, row1, row2, row3, row4, col1, col2, col3, col4):
  790.  
  791.         if self.connectingDialog:
  792.             self.connectingDialog.Close()
  793.         self.connectingDialog = None
  794.  
  795.         self.matrixInputChanceCount = 3
  796.  
  797.         self.stream.popupWindow.Close()
  798.  
  799.         # CHINA_MATRIX_CARD_BUG_FIX
  800.         ## A~Z ±î?ö 26 ??³»?? °ª?? µé¾î??¾î¾?¸¸ ??´?.
  801.         ## Python Exception Log ¿¡¼­ ±? ??»ó?? °ª?? µé¾î??¾î¼­ ¿¡·¯ ¹æ?ö
  802.         ## ?åµ¥ ¿? ??±¹?? ·?±?¿¡¼­ ??°? ?°¿ëµ?´??ö´? ¸ð¸£°??½
  803.         row1 = min(30, row1)
  804.         row2 = min(30, row2)
  805.         row3 = min(30, row3)
  806.         row4 = min(30, row4)
  807.         # END_OF_CHINA_MATRIX_CARD_BUG_FIX
  808.  
  809.         row1 = chr(row1 + ord('A'))
  810.         row2 = chr(row2 + ord('A'))
  811.         row3 = chr(row3 + ord('A'))
  812.         row4 = chr(row4 + ord('A'))
  813.         col1 = col1 + 1
  814.         col2 = col2 + 1
  815.         col3 = col3 + 1
  816.         col4 = col4 + 1
  817.  
  818.         inputDialog = uiCommon.InputDialogWithDescription2()
  819.         inputDialog.SetMaxLength(8)
  820.         inputDialog.SetAcceptEvent(ui.__mem_func__(self.__OnAcceptMatrixCardData))
  821.         inputDialog.SetCancelEvent(ui.__mem_func__(self.__OnCancelMatrixCardData))
  822.         inputDialog.SetTitle(localeInfo.INPUT_MATRIX_CARD_TITLE)
  823.         inputDialog.SetDescription1(localeInfo.INPUT_MATRIX_CARD_NUMBER)
  824.         inputDialog.SetDescription2("%c%d %c%d %c%d %c%d" % (row1, col1,
  825.                                                             row2, col2,
  826.                                                             row3, col3,
  827.                                                             row4, col4))
  828.  
  829.         inputDialog.Open()
  830.         self.inputDialog = inputDialog
  831.  
  832.     def __OnAcceptMatrixCardData(self):
  833.         text = self.inputDialog.GetText()
  834.         net.SendChinaMatrixCardPacket(text)
  835.         if self.inputDialog:
  836.             self.inputDialog.Hide()
  837.         self.PopupNotifyMessage(localeInfo.LOGIN_PROCESSING)
  838.         return TRUE
  839.  
  840.     def __OnCancelMatrixCardData(self):
  841.         self.SetPasswordEditLineFocus()
  842.         self.__OnCloseInputDialog()
  843.         self.__DisconnectAndInputPassword()
  844.         return TRUE
  845.  
  846.     def __OnCloseInputDialog(self):
  847.         if self.inputDialog:
  848.             self.inputDialog.Close()
  849.         self.inputDialog = None
  850.         return TRUE
  851.  
  852.     def OnPressExitKey(self):
  853.         self.stream.popupWindow.Close()
  854.         self.stream.SetPhaseWindow(0)
  855.         return TRUE
  856.  
  857.     def OnExit(self):
  858.         self.stream.popupWindow.Close()
  859.         self.stream.popupWindow.Open(localeInfo.LOGIN_FAILURE_WRONG_MATRIX_CARD_NUMBER_TRIPLE, app.Exit, localeInfo.UI_OK)
  860.  
  861.     def OnUpdate(self):
  862.         ServerStateChecker.Update()
  863.  
  864.     def EmptyFunc(self):
  865.         pass
  866.        
  867.     #####################################################################################
  868.  
  869.     def __ServerBoard_OnKeyUp(self, key):
  870.         return TRUE
  871.  
  872.     def __GetRegionID(self):
  873.         return 0
  874.  
  875.     def __GetServerID(self):
  876.         return
  877.  
  878.     def __GetChannelID(self):
  879.         return
  880.  
  881.     # SEVER_LIST_BUG_FIX
  882.     def __ServerIDToServerIndex(self, regionID, targetServerID):
  883.         try:
  884.             regionDict = serverInfo.REGION_DICT[regionID]
  885.         except KeyError:
  886.             return -1
  887.  
  888.         retServerIndex = 0
  889.         for eachServerID, regionDataDict in regionDict.items():
  890.             if eachServerID == targetServerID:
  891.                 return retServerIndex
  892.  
  893.             retServerIndex += 1    
  894.        
  895.         return -1
  896.  
  897.     def __ChannelIDToChannelIndex(self, channelID):
  898.         return channelID - 1
  899.     # END_OF_SEVER_LIST_BUG_FIX
  900.  
  901.     def __OpenServerBoard(self):
  902.  
  903.         loadRegionID, loadServerID, loadChannelID = self.__LoadChannelInfo()
  904.        
  905.         serverIndex = self.__ServerIDToServerIndex(loadRegionID, loadServerID)
  906.         channelIndex = self.__ChannelIDToChannelIndex(loadChannelID)
  907.        
  908.         # RUNUP_MATRIX_AUTH
  909.         if IsRunupMatrixAuth():
  910.             self.matrixQuizBoard.Hide()
  911.         # RUNUP_MATRIX_AUTH_END
  912.  
  913.         # NEWCIBN_PASSPOD_AUTH
  914.         if IsNEWCIBNPassPodAuth():
  915.             self.passpodBoard.Hide()
  916.         # NEWCIBN_PASSPOD_AUTH_END
  917.  
  918.         #self.__OnClickChannelButton()
  919.         self.idEditLine.SetFocus()
  920.    
  921.         ## Show/Hide ??µå¿¡ ¹®?¦°¡ ??¾î¼­ ??½? - [levites]
  922.  
  923.         if app.loggined and not SKIP_LOGIN_PHASE_SUPPORT_CHANNEL:
  924.             self.__OnClickSelectServerButton()
  925.  
  926.     def __OpenLoginBoard(self):
  927.  
  928.         # RUNUP_MATRIX_AUTH
  929.         if IsRunupMatrixAuth():
  930.             self.matrixQuizBoard.Hide()
  931.         # RUNUP_MATRIX_AUTH_END
  932.  
  933.         # NEWCIBN_PASSPOD_AUTH
  934.         if IsNEWCIBNPassPodAuth():
  935.             self.passpodBoard.Hide()
  936.         # NEWCIBN_PASSPOD_AUTH_END
  937.  
  938.         if app.loggined:
  939.             self.Connect(self.id, self.pwd)
  940.  
  941.  
  942.         ## if users have the login infomation, then don't initialize.2005.9 haho
  943.         if self.idEditLine == None:
  944.             self.idEditLine.SetText("")
  945.         if self.pwdEditLine == None:
  946.             self.pwdEditLine.SetText("")
  947.  
  948.         self.idEditLine.SetFocus() 
  949.  
  950.     def __OnSelectRegionGroup(self):
  951.         self.__RefreshServerList()
  952.  
  953.     def __OnSelectSettlementArea(self):
  954.         # SEVER_LIST_BUG_FIX
  955.         regionID = self.__GetRegionID()
  956.  
  957.         serverIndex = self.__ServerIDToServerIndex(regionID, serverID)
  958.         # END_OF_SEVER_LIST_BUG_FIX
  959.        
  960.         self.__OnSelectServer()
  961.  
  962.     def __ClickRadioButton(self, buttonList, buttonIndex):
  963.         try:
  964.             selButton=buttonList[buttonIndex]
  965.         except IndexError:
  966.             return
  967.  
  968.         for eachButton in buttonList:
  969.             eachButton.SetUp()
  970.  
  971.         selButton.Down()
  972.  
  973.     def __GuardarCuenta(self):
  974.         id = self.idEditLine.GetText()
  975.         pwd = self.pwdEditLine.GetText()
  976.        
  977.         fd = open(dates.save_folder+"/cuenta1.cfg" )
  978.         login1 = fd.readline()
  979.         login1.replace( "\n", "" )
  980.         fd.close()
  981.  
  982.         fd = open(dates.save_folder+"/cuenta2.cfg" )
  983.         login2 = fd.readline()
  984.         login2.replace( "\n", "" )
  985.         fd.close()
  986.  
  987.         fd = open(dates.save_folder+"/cuenta3.cfg" )
  988.         login3 = fd.readline()
  989.         login3.replace( "\n", "" )
  990.         fd.close()
  991.  
  992.         fd = open(dates.save_folder+"/cuenta4.cfg" )
  993.         login4 = fd.readline()
  994.         login4.replace( "\n", "" )
  995.         fd.close()
  996.        
  997.         if login1 == "":
  998.             slot = 1
  999.         elif login2 == "":
  1000.             slot = 2
  1001.         elif login3 == "":
  1002.             slot = 3
  1003.         elif login4 == "":
  1004.             slot = 4
  1005.         else:
  1006.             self.PopupNotifyMessage("No hay ninguna ranura libre para almacenar!")
  1007.             return
  1008.        
  1009.         if id == "" and pwd == "":
  1010.             self.PopupNotifyMessage("No puedes guardar una cuenta si no escribes nada.")
  1011.             return
  1012.            
  1013.         if id == "":
  1014.             self.PopupNotifyMessage("No puedes guardar una cuenta si no escribes la ID.")
  1015.             return
  1016.  
  1017.         if pwd == "":
  1018.             self.PopupNotifyMessage("No puedes guardar una cuenta si no escribes la Pw.")
  1019.             return
  1020.  
  1021.         f = open(dates.save_folder+"/cuenta" + str(slot) + ".cfg", "w")
  1022.         f.write(id +"\n")
  1023.         f.write(pwd)
  1024.         f.close()
  1025.        
  1026.         self.PopupNotifyMessage("Su cuenta ha sido guardada con exito.")
  1027.         self.__CargarCuentas()
  1028.        
  1029.            
  1030.     def __CargarCuentas(self):
  1031.  
  1032.         fd = open( dates.save_folder+"/cuenta1.cfg" )
  1033.         login1 = fd.readline()
  1034.         login1.replace( "\n", "" )
  1035.         fd.close()
  1036.  
  1037.         fd = open( dates.save_folder+"/cuenta2.cfg" )
  1038.         login2 = fd.readline()
  1039.         login2.replace( "\n", "" )
  1040.         fd.close()
  1041.  
  1042.         fd = open( dates.save_folder+"/cuenta3.cfg" )
  1043.         login3 = fd.readline()
  1044.         login3.replace( "\n", "" )
  1045.         fd.close()
  1046.  
  1047.         fd = open( dates.save_folder+"/cuenta4.cfg" )
  1048.         login4 = fd.readline()
  1049.         login4.replace( "\n", "" )
  1050.         fd.close()
  1051.    
  1052.         if login1 != "":
  1053.             self.cuenta_1.SetText(login1)
  1054.         else:
  1055.             self.cuenta_1.SetText("ID 1 - Vacia")
  1056.            
  1057.         if login2 != "":
  1058.             self.cuenta_2.SetText(login2)
  1059.         else:
  1060.             self.cuenta_2.SetText("ID 2 - Vacia")
  1061.            
  1062.         if login3 != "":
  1063.             self.cuenta_3.SetText(login3)
  1064.         else:
  1065.             self.cuenta_3.SetText("ID 3 - Vacia")
  1066.            
  1067.         if login4 != "":
  1068.             self.cuenta_4.SetText(login4)
  1069.         else:
  1070.             self.cuenta_4.SetText("ID 4 - Vacia")
  1071.            
  1072.     def __LoginCuentaGuardada(self, accid):
  1073.         import linecache
  1074.         login = linecache.getline(dates.save_folder+"/cuenta" + str(accid) + ".cfg", 1)
  1075.         password = linecache.getline(dates.save_folder+"/cuenta" + str(accid) + ".cfg", 2)
  1076.         login = login.replace('\n', '')
  1077.         password = password.replace('\n', '')
  1078.         #self.Connect(login, password)
  1079.         self.idEditLine.SetText(login)
  1080.         self.pwdEditLine.SetText(password)
  1081.         self.__OnClickLoginButton()
  1082.  
  1083.     def __Borrarcuenta1(self):
  1084.         f = open(dates.save_folder+"/cuenta1.cfg", "w")
  1085.         f.write ("")
  1086.         f.close()
  1087.         self.cuenta_1.SetText("Cuenta 1 - Vacia")
  1088.         self.__CargarCuentas()
  1089.        
  1090.     def __Borrarcuenta2(self):
  1091.         f = open(dates.save_folder+"/cuenta2.cfg", "w")
  1092.         f.write ("")
  1093.         f.close()
  1094.         self.cuenta_2.SetText("Cuenta 2 - Vacia")
  1095.         self.__CargarCuentas()
  1096.        
  1097.     def __Borrarcuenta3(self):
  1098.         f = open(dates.save_folder+"/cuenta3.cfg", "w")
  1099.         f.write ("")
  1100.         f.close()
  1101.         self.cuenta_3.SetText("Cuenta 3 - Vacia")
  1102.         self.__CargarCuentas()
  1103.        
  1104.     def __Borrarcuenta4(self):
  1105.         f = open(dates.save_folder+"/cuenta4.cfg", "w")
  1106.         f.write ("")
  1107.         f.close()
  1108.         self.cuenta_4.SetText("Cuenta 4 - Vacia")
  1109.         self.__CargarCuentas()
  1110.        
  1111.     def __OnClicklogincuenta1(self):
  1112.         fd = open( dates.save_folder+"/cuenta1.cfg" )
  1113.         login1 = fd.readline()
  1114.         login1.replace( "\n", "" )
  1115.         fd.close()
  1116.        
  1117.         if login1 == "":
  1118.             self.PopupNotifyMessage("No hay Ninguna Cuenta Guardada en este Espacio")
  1119.             return
  1120.         else:
  1121.             constInfo.cuenta_1_usada = 1
  1122.             self.__LoginCuentaGuardada(1)
  1123.  
  1124.    
  1125.     def __OnClicklogincuenta2(self):
  1126.         fd = open( dates.save_folder+"/cuenta2.cfg" )
  1127.         login2 = fd.readline()
  1128.         login2.replace( "\n", "" )
  1129.         fd.close()
  1130.        
  1131.         if login2 == "":
  1132.             self.PopupNotifyMessage("No hay Ninguna Cuenta Guardada en este Espacio")
  1133.        
  1134.         else:
  1135.             constInfo.cuenta_2_usada = 1
  1136.             self.__LoginCuentaGuardada(2)
  1137.    
  1138.     def __OnClicklogincuenta3(self):
  1139.         fd = open( dates.save_folder+"/cuenta3.cfg" )
  1140.         login3 = fd.readline()
  1141.         login3.replace( "\n", "" )
  1142.         fd.close()
  1143.        
  1144.         if login3 == "":
  1145.             self.PopupNotifyMessage("No hay Ninguna Cuenta Guardada en este Espacio")      
  1146.         else:
  1147.             constInfo.cuenta_3_usada = 1
  1148.             self.__LoginCuentaGuardada(3)
  1149.    
  1150.     def __OnClicklogincuenta4(self):
  1151.         fd = open( dates.save_folder+"/cuenta4.cfg" )
  1152.         login4 = fd.readline()
  1153.         login4.replace( "\n", "" )
  1154.         fd.close()
  1155.        
  1156.         if login4 == "":
  1157.             self.PopupNotifyMessage("No hay Ninguna Cuenta Guardada en este Espacio")      
  1158.         else:
  1159.             constInfo.cuenta_4_usada = 1
  1160.             self.__LoginCuentaGuardada(4)
  1161.  
  1162.     def __OnClickChannelButton(self,channel):
  1163.         self.__ClickRadioButton(self.ChannelSlot, channel-1)
  1164.         import dates
  1165.         self.stream.SetConnectInfo(dates.ip, dates.config['port_channel'+str(channel)], dates.ip, dates.port_auth)
  1166.         net.SetServerInfo(dates.name+dates.config['name_channel'+str(channel)])
  1167.         net.SetMarkServer(dates.ip, dates.config['port_channel'+str(channel)])
  1168.         app.SetGuildMarkPath("10.tga")
  1169.         app.SetGuildSymbolPath("10")
  1170.     # END_OF_GUILD_SYMBOL
  1171.  
  1172.     def __RefreshServerList(self):
  1173.         regionID = self.__GetRegionID()
  1174.        
  1175.         if not serverInfo.REGION_DICT.has_key(regionID):
  1176.             return
  1177.  
  1178.  
  1179.         regionDict = serverInfo.REGION_DICT[regionID]
  1180.  
  1181.         # SEVER_LIST_BUG_FIX
  1182.         visible_index = 1
  1183.         for id, regionDataDict in regionDict.items():
  1184.             name = regionDataDict.get("name", "noname")
  1185.        
  1186.        
  1187.         # END_OF_SEVER_LIST_BUG_FIX
  1188.  
  1189.     def __OnSelectServer(self):
  1190.         self.__OnCloseInputDialog()
  1191.         self.__RequestServerStateList()
  1192.         self.__RefreshServerStateList()
  1193.  
  1194.     def __RequestServerStateList(self):
  1195.         regionID = self.__GetRegionID()
  1196.         serverID = self.__GetServerID()
  1197.  
  1198.         try:
  1199.             channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"]
  1200.         except:
  1201.             print " __RequestServerStateList - serverInfo.REGION_DICT(%d, %d)" % (regionID, serverID)
  1202.             return
  1203.  
  1204.         ServerStateChecker.Initialize();
  1205.         for id, channelDataDict in channelDict.items():
  1206.             key=channelDataDict["key"]
  1207.             ip=channelDataDict["ip"]
  1208.             udp_port=channelDataDict["udp_port"]
  1209.             ServerStateChecker.AddChannel(key, ip, udp_port)
  1210.  
  1211.         ServerStateChecker.Request()
  1212.  
  1213.     def __RefreshServerStateList(self):
  1214.  
  1215.         regionID = self.__GetRegionID()
  1216.         serverID = self.__GetServerID()
  1217.  
  1218.  
  1219.         try:
  1220.             channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"]
  1221.         except:
  1222.             print " __RequestServerStateList - serverInfo.REGION_DICT(%d, %d)" % (regionID, serverID)
  1223.             return
  1224.  
  1225.         for channelID, channelDataDict in channelDict.items():
  1226.             channelName = channelDataDict["name"]
  1227.             channelState = channelDataDict["state"]
  1228.  
  1229.     def __GetChannelName(self, regionID, selServerID, selChannelID):
  1230.         try:
  1231.             return serverInfo.REGION_DICT[regionID][selServerID]["channel"][selChannelID]["name"]
  1232.         except KeyError:
  1233.             if 9==selChannelID:
  1234.                 return localeInfo.CHANNEL_PVP
  1235.             else:
  1236.                 return localeInfo.CHANNEL_NORMAL % (selChannelID)
  1237.  
  1238.     def NotifyChannelState(self, addrKey, state):
  1239.         try:
  1240.             stateName=serverInfo.STATE_DICT[state]
  1241.         except:
  1242.             stateName=serverInfo.STATE_NONE
  1243.  
  1244.         regionID=int(addrKey/1000)
  1245.         serverID=int(addrKey/10) % 100
  1246.         channelID=addrKey%10
  1247.  
  1248.         try:
  1249.             serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["state"] = stateName
  1250.             self.__RefreshServerStateList()
  1251.  
  1252.         except:
  1253.             import exception
  1254.             exception.Abort(localeInfo.CHANNEL_NOT_FIND_INFO)
  1255.  
  1256.     def __OnClickExitServerButton(self):
  1257.         print "exit server"
  1258.         self.__OpenLoginBoard()        
  1259.  
  1260.         if IsFullBackImage():
  1261.             self.GetChild("bg1").Hide()
  1262.             self.GetChild("bg2").Show()
  1263.            
  1264.  
  1265.     def __OnClickSelectRegionButton(self):
  1266.         regionID = self.__GetRegionID()
  1267.         serverID = self.__GetServerID()
  1268.  
  1269.         if (not serverInfo.REGION_DICT.has_key(regionID)):
  1270.             self.PopupNotifyMessage(localeInfo.CHANNEL_SELECT_REGION)
  1271.             return
  1272.  
  1273.         if (not serverInfo.REGION_DICT[regionID].has_key(serverID)):
  1274.             self.PopupNotifyMessage(localeInfo.CHANNEL_SELECT_SERVER)
  1275.             return     
  1276.  
  1277.         self.__SaveChannelInfo()
  1278.  
  1279.  
  1280.         self.__RefreshServerList()
  1281.         self.__OpenServerBoard()
  1282.  
  1283.     def __OnClickSelectServerButton(self):
  1284.         if IsFullBackImage():
  1285.             self.GetChild("bg1").Hide()
  1286.             self.GetChild("bg2").Show()
  1287.  
  1288.         regionID = self.__GetRegionID()
  1289.         serverID = self.__GetServerID()
  1290.         channelID = self.__GetChannelID()
  1291.  
  1292.         if (not serverInfo.REGION_DICT.has_key(regionID)):
  1293.             self.PopupNotifyMessage(localeInfo.CHANNEL_SELECT_REGION)
  1294.             return
  1295.  
  1296.         if (not serverInfo.REGION_DICT[regionID].has_key(serverID)):
  1297.             self.PopupNotifyMessage(localeInfo.CHANNEL_SELECT_SERVER)
  1298.             return
  1299.  
  1300.         try:
  1301.             channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"]
  1302.         except KeyError:
  1303.             return
  1304.  
  1305.         try:
  1306.             state = channelDict[channelID]["state"]
  1307.         except KeyError:
  1308.             self.PopupNotifyMessage(localeInfo.CHANNEL_SELECT_CHANNEL)
  1309.             return
  1310.  
  1311.         # »ó??°¡ FULL °ú °°?¸¸é ?ø?? ±??ö
  1312.         if state == serverInfo.STATE_DICT[3]:
  1313.             self.PopupNotifyMessage(localeInfo.CHANNEL_NOTIFY_FULL)
  1314.             return
  1315.  
  1316.         self.__SaveChannelInfo()
  1317.  
  1318.         try:
  1319.             serverName = serverInfo.REGION_DICT[regionID][serverID]["name"]
  1320.             channelName = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["name"]
  1321.             addrKey = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["key"]
  1322.            
  1323.             if "?µ¸¶ ¼­¹ö" == serverName:           
  1324.                 app.ForceSetlocaleInfo("ymir", "localeInfo/ymir")
  1325.             elif "?èµµ ¼­¹ö" == serverName:         
  1326.                 app.ForceSetlocaleInfo("we_korea", "localeInfo/we_korea")              
  1327.                
  1328.         except:
  1329.             print " ERROR __OnClickSelectServerButton(%d, %d, %d)" % (regionID, serverID, channelID)
  1330.             serverName = localeInfo.CHANNEL_EMPTY_SERVER
  1331.             channelName = localeInfo.CHANNEL_NORMAL % channelID
  1332.  
  1333.         self.__SetServerInfo("%s, %s " % (serverName, channelName))
  1334.  
  1335.         try:
  1336.             ip = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["ip"]
  1337.             tcp_port = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["tcp_port"]
  1338.         except:
  1339.             import exception
  1340.             exception.Abort("LoginWindow.__OnClickSelectServerButton - ¼­¹ö ¼±?? ½???")
  1341.  
  1342.         try:
  1343.             account_ip = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["ip"]
  1344.             account_port = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["port"]
  1345.         except:
  1346.             account_ip = 0
  1347.             account_port = 0
  1348.  
  1349.         try:
  1350.             markKey = regionID*1000 + serverID*10
  1351.             markAddrValue=serverInfo.MARKADDR_DICT[markKey]
  1352.             net.SetMarkServer(markAddrValue["ip"], markAddrValue["tcp_port"])
  1353.             app.SetGuildMarkPath(markAddrValue["mark"])
  1354.             # GUILD_SYMBOL
  1355.             app.SetGuildSymbolPath(markAddrValue["symbol_path"])
  1356.             # END_OF_GUILD_SYMBOL
  1357.  
  1358.         except:
  1359.             import exception
  1360.             exception.Abort("LoginWindow.__OnClickSelectServerButton - ¸¶?© ?¤º¸ ¾ø?½")
  1361.  
  1362.  
  1363.         if app.USE_OPENID and not app.OPENID_TEST :
  1364.             ## 2012.07.19 OpenID : ±è¿ë¿í
  1365.             # ?¤³? ¼±?? ?­¸é¿¡¼­ "?®??"(SelectServerButton) ?» ´­·¶?»¶§,
  1366.             # ·?±??? ?­¸é?¸·? ³?¾î°¡?ö ¾?°í ¹?·? ¼­¹ö¿¡ OpenID ???õ?°¸¦ º¸³»µµ·? ¼ö?¤
  1367.             self.stream.SetConnectInfo(ip, tcp_port, account_ip, account_port)
  1368.             self.Connect(0, 0)
  1369.         else :
  1370.             self.stream.SetConnectInfo(ip, tcp_port, account_ip, account_port)
  1371.             self.__OpenLoginBoard()
  1372.        
  1373.  
  1374.     def __OnClickSelectConnectButton(self):
  1375.         if IsFullBackImage():
  1376.             self.GetChild("bg1").Hide()
  1377.             self.GetChild("bg2").Show()
  1378.         self.__RefreshServerList()
  1379.         self.__OpenServerBoard()
  1380.  
  1381.     # def __Web(self):
  1382.         # import uiweb
  1383.         # self.Web = uiweb.WebWindow()
  1384.         # self.Web.LoadWindow()
  1385.         # self.Web.Open(dates.web)
  1386.        
  1387.     # def __Foro(self):
  1388.         # import uiweb
  1389.         # self.Web = uiweb.WebWindow()
  1390.         # self.Web.LoadWindow()
  1391.         # self.Web.Open(dates.foro)
  1392.         # os.system("start " + dates.foro)
  1393.  
  1394.     #def __Itemshop(self):
  1395.         #import uiweb
  1396.         #self.Web = uiweb.WebWindow()
  1397.         #self.Web.LoadWindow()
  1398.         #self.Web.Open(dates.itemshop)
  1399.  
  1400.     #def __Facebook(self):
  1401.         #import uiweb
  1402.         #self.Web = uiweb.WebWindow()
  1403.         #self.Web.LoadWindow()
  1404.         #self.Web.Open(dates.facebook)
  1405.  
  1406.     def __OnClickLoginButton(self):
  1407.         id = self.idEditLine.GetText()
  1408.         pwd = self.pwdEditLine.GetText()       
  1409.  
  1410.         if len(id)==0:
  1411.             self.PopupNotifyMessage(localeInfo.LOGIN_INPUT_ID, self.SetIDEditLineFocus)
  1412.             return
  1413.  
  1414.         if len(pwd)==0:
  1415.             self.PopupNotifyMessage(localeInfo.LOGIN_INPUT_PASSWORD, self.SetPasswordEditLineFocus)
  1416.             return
  1417.  
  1418.         if self.ChannelSlot[0].IsDown() or self.ChannelSlot[1].IsDown() or self.ChannelSlot[2].IsDown() or self.ChannelSlot[3].IsDown() :
  1419.             self.Connect(id, pwd)
  1420.         else:
  1421.             self.PopupDisplayMessage("Tienes que seleccionar un channel")
  1422.             return
  1423.         # import aeditor
  1424.         # self.PythonLoader().Show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement