1. ###################################################################################################
  2. # Network
  3. import app
  4. import chr
  5. import dbg
  6. import net
  7. import snd
  8. import chr
  9. import chrmgr
  10. import background
  11. import player
  12. import playerSettingModule
  13. import ui
  14. import uiPhaseCurtain
  15. import localeInfo
  16. class PopupDialog(ui.ScriptWindow):
  17. def __init__(self):
  18. print "NEW POPUP DIALOG ----------------------------------------------------------------------------"
  19. ui.ScriptWindow.__init__(self)
  20. self.CloseEvent = 0
  21. def __del__(self):
  22. print "---------------------------------------------------------------------------- DELETE POPUP DIALOG "
  23. ui.ScriptWindow.__del__(self)
  24. def LoadDialog(self):
  25. PythonScriptLoader = ui.PythonScriptLoader()
  26. PythonScriptLoader.LoadScriptFile(self, "UIScript/PopupDialog.py")
  27. def Open(self, Message, event = 0, ButtonName = localeInfo.UI_CANCEL):
  28. if True == self.IsShow():
  29. self.Close()
  30. self.Lock()
  31. self.SetTop()
  32. self.CloseEvent = event
  33. AcceptButton = self.GetChild("accept")
  34. AcceptButton.SetText(ButtonName)
  35. AcceptButton.SetEvent(ui.__mem_func__(self.Close))
  36. self.GetChild("message").SetText(Message)
  37. self.Show()
  38. def Close(self):
  39. if False == self.IsShow():
  40. self.CloseEvent = 0
  41. return
  42. self.Unlock()
  43. self.Hide()
  44. if 0 != self.CloseEvent:
  45. self.CloseEvent()
  46. self.CloseEvent = 0
  47. def Destroy(self):
  48. self.Close()
  49. self.ClearDictionary()
  50. def OnPressEscapeKey(self):
  51. self.Close()
  52. return True
  53. def OnIMEReturn(self):
  54. self.Close()
  55. return True
  56. ##
  57. ## Main Stream
  58. ##
  59. class MainStream(object):
  60. isChrData=0
  61. def __init__(self):
  62. print "NEWMAIN STREAM ----------------------------------------------------------------------------"
  63. net.SetHandler(self)
  64. net.SetTCPRecvBufferSize(128*1024)
  65. net.SetTCPSendBufferSize(4096)
  66. net.SetUDPRecvBufferSize(4096)
  67. self.id=""
  68. self.pwd=""
  69. self.addr=""
  70. self.port=0
  71. self.account_addr=0
  72. self.account_port=0
  73. self.slot=0
  74. self.isAutoSelect=0
  75. self.isAutoLogin=0
  76. self.curtain = 0
  77. self.curPhaseWindow = 0
  78. self.newPhaseWindow = 0
  79. def __del__(self):
  80. print "---------------------------------------------------------------------------- DELETE MAIN STREAM "
  81. def Destroy(self):
  82. if self.curPhaseWindow:
  83. self.curPhaseWindow.Close()
  84. self.curPhaseWindow = 0
  85. if self.newPhaseWindow:
  86. self.newPhaseWindow.Close()
  87. self.newPhaseWindow = 0
  88. self.popupWindow.Destroy()
  89. self.popupWindow = 0
  90. self.curtain = 0
  91. def Create(self):
  92. self.CreatePopupDialog()
  93. self.curtain = uiPhaseCurtain.PhaseCurtain()
  94. def SetPhaseWindow(self, newPhaseWindow):
  95. if self.newPhaseWindow:
  96. #print "ÀÌ¹Ì »õ·Î¿î À©µµ¿ì·Î ¹Ù²Û»óÅ¿¡¼­ ¶Ç ¹Ù²Ş", newPhaseWindow
  97. self.__ChangePhaseWindow()
  98. self.newPhaseWindow=newPhaseWindow
  99. if self.curPhaseWindow:
  100. #print "ÆäÀÌµå ¾Æ¿ôµÇ¸é ¹Ù²Ş"
  101. self.curtain.FadeOut(self.__ChangePhaseWindow)
  102. else:
  103. #print "ÇöÀç À©µµ¿ì°¡ ¾ø´Â »óŶó ¹Ù·Î ¹Ù²Ş"
  104. self.__ChangePhaseWindow()
  105. def __ChangePhaseWindow(self):
  106. oldPhaseWindow=self.curPhaseWindow
  107. newPhaseWindow=self.newPhaseWindow
  108. self.curPhaseWindow=0
  109. self.newPhaseWindow=0
  110. if oldPhaseWindow:
  111. oldPhaseWindow.Close()
  112. if newPhaseWindow:
  113. newPhaseWindow.Open()
  114. self.curPhaseWindow=newPhaseWindow
  115. if self.curPhaseWindow:
  116. self.curtain.FadeIn()
  117. else:
  118. app.Exit()
  119. def CreatePopupDialog(self):
  120. self.popupWindow = PopupDialog()
  121. self.popupWindow.LoadDialog()
  122. self.popupWindow.SetCenterPosition()
  123. self.popupWindow.Hide()
  124. ## SelectPhase
  125. ##########################################################################################
  126. def SetLogoPhase(self):
  127. net.Disconnect()
  128. import introLogo
  129. self.SetPhaseWindow(introLogo.LogoWindow(self))
  130. def SetLoginPhase(self):
  131. net.Disconnect()
  132. import introLogin
  133. self.SetPhaseWindow(introLogin.LoginWindow(self))
  134. def SameLogin_SetLoginPhase(self):
  135. net.Disconnect()
  136. import introLogin
  137. introInst = introLogin.LoginWindow(self)
  138. self.SetPhaseWindow(introInst)
  139. introInst.SameLogin_OpenUI()
  140. def SetSelectEmpirePhase(self):
  141. try:
  142. import introEmpire
  143. self.SetPhaseWindow(introEmpire.SelectEmpireWindow(self))
  144. except:
  145. import exception
  146. exception.Abort("networkModule.SetSelectEmpirePhase")
  147. def SetReselectEmpirePhase(self):
  148. try:
  149. import introEmpire
  150. self.SetPhaseWindow(introEmpire.ReselectEmpireWindow(self))
  151. except:
  152. import exception
  153. exception.Abort("networkModule.SetReselectEmpirePhase")
  154. def SetSelectCharacterPhase(self):
  155. try:
  156. localeInfo.LoadLocaleData()
  157. import introSelect
  158. self.popupWindow.Close()
  159. self.SetPhaseWindow(introSelect.SelectCharacterWindow(self))
  160. except:
  161. import exception
  162. exception.Abort("networkModule.SetSelectCharacterPhase")
  163. def SetCreateCharacterPhase(self):
  164. try:
  165. import introCreate
  166. self.SetPhaseWindow(introCreate.CreateCharacterWindow(self))
  167. except:
  168. import exception
  169. exception.Abort("networkModule.SetCreateCharacterPhase")
  170. def SetTestGamePhase(self, x, y):
  171. try:
  172. import introLoading
  173. loadingPhaseWindow=introLoading.LoadingWindow(self)
  174. loadingPhaseWindow.LoadData(x, y)
  175. self.SetPhaseWindow(loadingPhaseWindow)
  176. except:
  177. import exception
  178. exception.Abort("networkModule.SetLoadingPhase")
  179. def SetLoadingPhase(self):
  180. try:
  181. import introLoading
  182. self.SetPhaseWindow(introLoading.LoadingWindow(self))
  183. except:
  184. import exception
  185. exception.Abort("networkModule.SetLoadingPhase")
  186. def SetGamePhase(self):
  187. try:
  188. import game
  189. self.popupWindow.Close()
  190. self.SetPhaseWindow(game.GameWindow(self))
  191. except:
  192. raise
  193. import exception
  194. exception.Abort("networkModule.SetGamePhase")
  195. ################################
  196. # Functions used in python
  197. ## Login
  198. def Connect(self):
  199. import constInfo
  200. if constInfo.KEEP_ACCOUNT_CONNETION_ENABLE:
  201. net.ConnectToAccountServer(self.addr, self.port, self.account_addr, self.account_port)
  202. else:
  203. net.ConnectTCP(self.addr, self.port)
  204. #net.ConnectUDP(IP, Port)
  205. def SetConnectInfo(self, addr, port, account_addr=0, account_port=0):
  206. self.addr = addr
  207. self.port = port
  208. self.account_addr = account_addr
  209. self.account_port = account_port
  210. def GetConnectAddr(self):
  211. return self.addr
  212. def SetLoginInfo(self, id, pwd):
  213. self.id = id
  214. self.pwd = pwd
  215. net.SetLoginInfo(id, pwd)
  216. def CancelEnterGame(self):
  217. pass
  218. ## Select
  219. def SetCharacterSlot(self, slot):
  220. self.slot=slot
  221. def GetCharacterSlot(self):
  222. return self.slot
  223. ## Empty
  224. def EmptyFunction(self):
  225. pass