Marty-v58/client/pack/root/networkmodule.py
2024-10-25 00:07:46 -05:00

343 lines
7.9 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
if app.__BL_MULTI_LANGUAGE__:
import emotion
import introCreate
import introEmpire
import serverInfo
import textTail
import uiAffectShower
import uiCharacter
import uiChat
import uiDragonSoul
import uiGuild
import uiMapNameShower
import uiParty
import uiSelectMusic
import uiScriptLocale
import uiTarget
import uiToolTip
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 not self.IsShow():
self.CloseEvent = 0
return
self.Unlock()
self.Hide()
if self.CloseEvent:
self.CloseEvent()
self.CloseEvent = 0
@ui.WindowDestroy
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(ui.NoWindow):
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 ")
if ui.WOC_ENABLE_PRINT_DEL_DEBUG: import dbg; dbg.TraceError("{} __del__ called".format(self.__class__.__name__))
def Hide(self):
pass
@ui.WindowDestroy
def Destroy(self):
if self.curPhaseWindow:
self.curPhaseWindow.Close()
self.curPhaseWindow = 0
if self.newPhaseWindow:
self.newPhaseWindow.Close()
self.newPhaseWindow = 0
if self.popupWindow:
self.popupWindow.Destroy()
self.popupWindow = 0
self.curtain = 0
if ui.WOC_ENABLE_PRINT_REGISTERS: #dump all the
ui.WocDumpRegisters()
def Create(self):
self.CreatePopupDialog()
self.curtain = uiPhaseCurtain.PhaseCurtain()
def SetPhaseWindow(self, newPhaseWindow):
if self.newPhaseWindow:
self.__ChangePhaseWindow()
self.newPhaseWindow=newPhaseWindow
if self.curPhaseWindow:
self.curtain.FadeOut(self.__ChangePhaseWindow)
else:
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:
if app.__BL_MULTI_LANGUAGE__:
import introSelect
if app.GetReloadLocale():
app.ReloadLocaConfig()
localeInfo.ReloadLocaleFile()
uiScriptLocale.ReloadLocaleFile()
app.SetDefaultFontName(localeInfo.UI_DEF_FONT)
textTail.Initialize()
uiAffectShower.AffectShower.ReloadVariables()
emotion.ReloadEmotionDict()
introCreate.CreateCharacterWindow.ReloadVariables()
introEmpire.SelectEmpireWindow.ReloadVariables()
introSelect.SelectCharacterWindow.ReloadVariables()
serverInfo.ReloadVariables()
uiCharacter.CharacterWindow.ReloadVariables()
uiChat.ChatLine.ReloadVariables()
uiChat.ChatLogWindow.ReloadVariables()
uiDragonSoul.DragonSoulWindow.ReloadVariables()
uiGuild.GuildWindow.ReloadVariables()
uiGuild.BuildGuildBuildingWindow.ReloadVariables()
uiMapNameShower.MapNameShower.ReloadVariables()
uiParty.PartyMemberInfoBoard.ReloadVariables()
uiParty.PartyMenu.ReloadVariables()
uiSelectMusic.ReloadVariables()
uiTarget.TargetBoard.ReloadVariables()
uiToolTip.ItemToolTip.ReloadVariables()
uiToolTip.SkillToolTip.ReloadVariables()
localeInfo.LoadLocaleData()
app.SetReloadLocale(False)
else:
localeInfo.LoadLocaleData()
else:
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