client/bin/pack/root/networkmodule.py

285 lines
6.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

###################################################################################################
# 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 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