293 lines
6.4 KiB
Python
293 lines
6.4 KiB
Python
###################################################################################################
|
||
# Network
|
||
|
||
import app
|
||
import chr
|
||
import dbg
|
||
import net
|
||
import snd
|
||
|
||
import chr
|
||
import chrmgr
|
||
import background
|
||
import player
|
||
import playerSettingModule
|
||
|
||
import ui
|
||
import uiPhaseCurtain
|
||
|
||
import localeInfo
|
||
|
||
class PopupDialog(ui.ScriptWindow):
|
||
|
||
def __init__(self):
|
||
print "NEW POPUP DIALOG ----------------------------------------------------------------------------"
|
||
ui.ScriptWindow.__init__(self)
|
||
self.CloseEvent = 0
|
||
|
||
def __del__(self):
|
||
print "---------------------------------------------------------------------------- DELETE POPUP DIALOG "
|
||
ui.ScriptWindow.__del__(self)
|
||
|
||
def LoadDialog(self):
|
||
PythonScriptLoader = ui.PythonScriptLoader()
|
||
PythonScriptLoader.LoadScriptFile(self, "UIScript/PopupDialog.py")
|
||
|
||
def Open(self, Message, event = 0, ButtonName = localeInfo.UI_CANCEL):
|
||
|
||
if True == self.IsShow():
|
||
self.Close()
|
||
|
||
self.Lock()
|
||
self.SetTop()
|
||
self.CloseEvent = event
|
||
|
||
AcceptButton = self.GetChild("accept")
|
||
AcceptButton.SetText(ButtonName)
|
||
AcceptButton.SetEvent(ui.__mem_func__(self.Close))
|
||
|
||
self.GetChild("message").SetText(Message)
|
||
self.Show()
|
||
|
||
def Close(self):
|
||
|
||
if False == self.IsShow():
|
||
self.CloseEvent = 0
|
||
return
|
||
|
||
self.Unlock()
|
||
self.Hide()
|
||
|
||
if 0 != self.CloseEvent:
|
||
self.CloseEvent()
|
||
self.CloseEvent = 0
|
||
|
||
def Destroy(self):
|
||
self.Close()
|
||
self.ClearDictionary()
|
||
|
||
def OnPressEscapeKey(self):
|
||
self.Close()
|
||
return True
|
||
|
||
def OnIMEReturn(self):
|
||
self.Close()
|
||
return True
|
||
|
||
##
|
||
## Main Stream
|
||
##
|
||
class MainStream(object):
|
||
isChrData=0
|
||
|
||
def __init__(self):
|
||
print "NEWMAIN STREAM ----------------------------------------------------------------------------"
|
||
net.SetHandler(self)
|
||
net.SetTCPRecvBufferSize(128*1024)
|
||
net.SetTCPSendBufferSize(4096)
|
||
net.SetUDPRecvBufferSize(4096)
|
||
|
||
self.id=""
|
||
self.pwd=""
|
||
self.addr=""
|
||
self.port=0
|
||
self.account_addr=0
|
||
self.account_port=0
|
||
self.slot=0
|
||
self.isAutoSelect=0
|
||
self.isAutoLogin=0
|
||
|
||
self.curtain = 0
|
||
self.curPhaseWindow = 0
|
||
self.newPhaseWindow = 0
|
||
|
||
def __del__(self):
|
||
print "---------------------------------------------------------------------------- DELETE MAIN STREAM "
|
||
|
||
def Destroy(self):
|
||
if self.curPhaseWindow:
|
||
self.curPhaseWindow.Close()
|
||
self.curPhaseWindow = 0
|
||
|
||
if self.newPhaseWindow:
|
||
self.newPhaseWindow.Close()
|
||
self.newPhaseWindow = 0
|
||
|
||
self.popupWindow.Destroy()
|
||
self.popupWindow = 0
|
||
|
||
self.curtain = 0
|
||
|
||
def Create(self):
|
||
self.CreatePopupDialog()
|
||
|
||
self.curtain = uiPhaseCurtain.PhaseCurtain()
|
||
|
||
def SetPhaseWindow(self, newPhaseWindow):
|
||
if self.newPhaseWindow:
|
||
#print "<22>̹<EFBFBD> <20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲۻ<D9B2><DBBB>¿<EFBFBD><C2BF><EFBFBD> <20><> <20>ٲ<EFBFBD>", newPhaseWindow
|
||
self.__ChangePhaseWindow()
|
||
|
||
self.newPhaseWindow=newPhaseWindow
|
||
|
||
if self.curPhaseWindow:
|
||
#print "<22><><EFBFBD>̵<EFBFBD> <20>ƿ<EFBFBD><C6BF>Ǹ<EFBFBD> <20>ٲ<EFBFBD>"
|
||
self.curtain.FadeOut(self.__ChangePhaseWindow)
|
||
else:
|
||
#print "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>찡 <20><><EFBFBD><EFBFBD> <20><><EFBFBD>¶<EFBFBD> <20>ٷ<EFBFBD> <20>ٲ<EFBFBD>"
|
||
self.__ChangePhaseWindow()
|
||
|
||
def __ChangePhaseWindow(self):
|
||
oldPhaseWindow=self.curPhaseWindow
|
||
newPhaseWindow=self.newPhaseWindow
|
||
self.curPhaseWindow=0
|
||
self.newPhaseWindow=0
|
||
|
||
if oldPhaseWindow:
|
||
oldPhaseWindow.Close()
|
||
|
||
if newPhaseWindow:
|
||
newPhaseWindow.Open()
|
||
|
||
self.curPhaseWindow=newPhaseWindow
|
||
|
||
if self.curPhaseWindow:
|
||
self.curtain.FadeIn()
|
||
else:
|
||
app.Exit()
|
||
|
||
def CreatePopupDialog(self):
|
||
self.popupWindow = PopupDialog()
|
||
self.popupWindow.LoadDialog()
|
||
self.popupWindow.SetCenterPosition()
|
||
self.popupWindow.Hide()
|
||
|
||
|
||
## SelectPhase
|
||
##########################################################################################
|
||
def SetLogoPhase(self):
|
||
net.Disconnect()
|
||
|
||
import introLogo
|
||
self.SetPhaseWindow(introLogo.LogoWindow(self))
|
||
|
||
def SetLoginPhase(self):
|
||
net.Disconnect()
|
||
|
||
import introLogin
|
||
self.SetPhaseWindow(introLogin.LoginWindow(self))
|
||
|
||
def SameLogin_SetLoginPhase(self):
|
||
net.Disconnect()
|
||
|
||
import introLogin
|
||
introInst = introLogin.LoginWindow(self)
|
||
self.SetPhaseWindow(introInst)
|
||
introInst.SameLogin_OpenUI()
|
||
|
||
def SetSelectEmpirePhase(self):
|
||
try:
|
||
import introEmpire
|
||
self.SetPhaseWindow(introEmpire.SelectEmpireWindow(self))
|
||
except:
|
||
import exception
|
||
exception.Abort("networkModule.SetSelectEmpirePhase")
|
||
|
||
|
||
def SetReselectEmpirePhase(self):
|
||
try:
|
||
import introEmpire
|
||
self.SetPhaseWindow(introEmpire.ReselectEmpireWindow(self))
|
||
except:
|
||
import exception
|
||
exception.Abort("networkModule.SetReselectEmpirePhase")
|
||
|
||
def SetSelectCharacterPhase(self):
|
||
try:
|
||
localeInfo.LoadLocaleData()
|
||
import introSelect
|
||
self.popupWindow.Close()
|
||
self.SetPhaseWindow(introSelect.SelectCharacterWindow(self))
|
||
except:
|
||
import exception
|
||
exception.Abort("networkModule.SetSelectCharacterPhase")
|
||
|
||
def SetCreateCharacterPhase(self):
|
||
try:
|
||
import introCreate
|
||
self.SetPhaseWindow(introCreate.CreateCharacterWindow(self))
|
||
except:
|
||
import exception
|
||
exception.Abort("networkModule.SetCreateCharacterPhase")
|
||
|
||
def SetTestGamePhase(self, x, y):
|
||
try:
|
||
import introLoading
|
||
loadingPhaseWindow=introLoading.LoadingWindow(self)
|
||
loadingPhaseWindow.LoadData(x, y)
|
||
self.SetPhaseWindow(loadingPhaseWindow)
|
||
except:
|
||
import exception
|
||
exception.Abort("networkModule.SetLoadingPhase")
|
||
|
||
|
||
|
||
def SetLoadingPhase(self):
|
||
try:
|
||
import introLoading
|
||
self.SetPhaseWindow(introLoading.LoadingWindow(self))
|
||
except:
|
||
import exception
|
||
exception.Abort("networkModule.SetLoadingPhase")
|
||
|
||
def SetGamePhase(self):
|
||
try:
|
||
import game
|
||
self.popupWindow.Close()
|
||
self.SetPhaseWindow(game.GameWindow(self))
|
||
except:
|
||
raise
|
||
import exception
|
||
exception.Abort("networkModule.SetGamePhase")
|
||
|
||
################################
|
||
# Functions used in python
|
||
|
||
## Login
|
||
def Connect(self):
|
||
import constInfo
|
||
if constInfo.KEEP_ACCOUNT_CONNETION_ENABLE:
|
||
net.ConnectToAccountServer(self.addr, self.port, self.account_addr, self.account_port)
|
||
else:
|
||
net.ConnectTCP(self.addr, self.port)
|
||
|
||
#net.ConnectUDP(IP, Port)
|
||
|
||
def SetConnectInfo(self, addr, port, account_addr=0, account_port=0):
|
||
self.addr = addr
|
||
self.port = port
|
||
self.account_addr = account_addr
|
||
self.account_port = account_port
|
||
|
||
def GetConnectAddr(self):
|
||
return self.addr
|
||
|
||
def SetLoginInfo(self, id, pwd):
|
||
self.id = id
|
||
self.pwd = pwd
|
||
net.SetLoginInfo(id, pwd)
|
||
|
||
def CancelEnterGame(self):
|
||
pass
|
||
|
||
## Select
|
||
def SetCharacterSlot(self, slot):
|
||
self.slot=slot
|
||
|
||
def GetCharacterSlot(self):
|
||
return self.slot
|
||
|
||
## Empty
|
||
def EmptyFunction(self):
|
||
pass
|