@@ -325,30 +325,30 @@ class LoginWindow(ui.ScriptWindow):
|
||||
|
||||
def __SaveChannelInfo(self):
|
||||
try:
|
||||
file=open("channel.inf", "w")
|
||||
file.write("%d %d %d" % (self.__GetServerID(), self.__GetChannelID(), self.__GetRegionID()))
|
||||
with open("channel.inf", "w") as file:
|
||||
file.write("%d %d %d" % (self.__GetServerID(), self.__GetChannelID(), self.__GetRegionID()))
|
||||
except:
|
||||
print "LoginWindow.__SaveChannelInfo - SaveError"
|
||||
|
||||
def __LoadChannelInfo(self):
|
||||
try:
|
||||
file=open("channel.inf")
|
||||
lines=file.readlines()
|
||||
|
||||
if len(lines)>0:
|
||||
tokens=lines[0].split()
|
||||
with open("channel.inf") as file:
|
||||
lines=file.readlines()
|
||||
|
||||
selServerID=int(tokens[0])
|
||||
selChannelID=int(tokens[1])
|
||||
|
||||
if len(tokens) == 3:
|
||||
regionID = int(tokens[2])
|
||||
if len(lines)>0:
|
||||
tokens=lines[0].split()
|
||||
|
||||
return regionID, selServerID, selChannelID
|
||||
selServerID=int(tokens[0])
|
||||
selChannelID=int(tokens[1])
|
||||
|
||||
if len(tokens) == 3:
|
||||
regionID = int(tokens[2])
|
||||
|
||||
return regionID, selServerID, selChannelID
|
||||
|
||||
except:
|
||||
print "LoginWindow.__LoadChannelInfo - OpenError"
|
||||
return -1, -1, -1
|
||||
return -1, -1, -1
|
||||
|
||||
def __ExitGame(self):
|
||||
app.Exit()
|
||||
|
||||
@@ -27,7 +27,8 @@ class CursorImage(object):
|
||||
self.LoadImage(imageName)
|
||||
|
||||
def __del__(self):
|
||||
grpImage.Delete(self.handle)
|
||||
if grpImage and self.handle:
|
||||
grpImage.Delete(self.handle)
|
||||
|
||||
def LoadImage(self, imageName):
|
||||
try:
|
||||
|
||||
@@ -9,21 +9,19 @@ def SaveLastPlayFieldMusic():
|
||||
global fieldMusic
|
||||
|
||||
try:
|
||||
lastPlayFile=open("BGM/lastplay.inf", "w")
|
||||
with open("BGM/lastplay.inf", "w") as lastPlayFile:
|
||||
lastPlayFile.write(fieldMusic)
|
||||
except IOError:
|
||||
return
|
||||
|
||||
lastPlayFile.write(fieldMusic)
|
||||
|
||||
|
||||
def LoadLastPlayFieldMusic():
|
||||
global fieldMusic
|
||||
|
||||
try:
|
||||
lastPlayFile=open("BGM/lastplay.inf", "r")
|
||||
with open("BGM/lastplay.inf", "r") as lastPlayFile:
|
||||
fieldMusic=lastPlayFile.read()
|
||||
except IOError:
|
||||
return
|
||||
|
||||
fieldMusic=lastPlayFile.read()
|
||||
|
||||
|
||||
|
||||
@@ -22,7 +22,8 @@ class LogBoxFile:
|
||||
self.restore()
|
||||
|
||||
def restore(self):
|
||||
sys.stderr = self.stderrSave
|
||||
if sys:
|
||||
sys.stderr = self.stderrSave
|
||||
|
||||
def write(self, msg):
|
||||
self.msg = self.msg + msg
|
||||
|
||||
@@ -98,7 +98,8 @@ class Window(object):
|
||||
self.Hide()
|
||||
|
||||
def __del__(self):
|
||||
wndMgr.Destroy(self.hWnd)
|
||||
if wndMgr and self.hWnd:
|
||||
wndMgr.Destroy(self.hWnd)
|
||||
|
||||
def RegisterWindow(self, layer):
|
||||
self.hWnd = wndMgr.Register(self, layer)
|
||||
|
||||
@@ -26,11 +26,13 @@ def GetMouseButtonSettings():
|
||||
|
||||
def SaveMouseButtonSettings():
|
||||
global MOUSE_SETTINGS
|
||||
open("mouse.cfg", "w").write("%s\t%s" % tuple(MOUSE_SETTINGS))
|
||||
with open("mouse.cfg", "w") as f:
|
||||
f.write("%s\t%s" % tuple(MOUSE_SETTINGS))
|
||||
|
||||
def LoadMouseButtonSettings():
|
||||
global MOUSE_SETTINGS
|
||||
tokens = open("mouse.cfg", "r").read().split()
|
||||
with open("mouse.cfg", "r") as f:
|
||||
tokens = f.read().split()
|
||||
|
||||
if len(tokens) != 2:
|
||||
raise RuntimeError, "MOUSE_SETTINGS_FILE_ERROR"
|
||||
|
||||
@@ -6,11 +6,14 @@ import uiScriptLocale
|
||||
class MarkItem(ui.ListBoxEx.Item):
|
||||
def __init__(self, fileName):
|
||||
ui.ListBoxEx.Item.__init__(self)
|
||||
self.imgWidth=0
|
||||
self.imgHeight=0
|
||||
self.canLoad=0
|
||||
self.textLine=self.__CreateTextLine(fileName)
|
||||
self.imgBox=self.__CreateImageBox("upload/"+fileName)
|
||||
self.fileName = fileName
|
||||
self.fullPath = "upload/" + fileName
|
||||
self.imgWidth = 0
|
||||
self.imgHeight = 0
|
||||
self.canLoad = 0
|
||||
self.imgBox = None
|
||||
self.imageLoaded = False
|
||||
self.textLine = self.__CreateTextLine(fileName)
|
||||
|
||||
def __del__(self):
|
||||
ui.ListBoxEx.Item.__del__(self)
|
||||
@@ -22,35 +25,47 @@ class MarkItem(ui.ListBoxEx.Item):
|
||||
ui.ListBoxEx.Item.SetSize(self, 20 + 6*len(self.textLine.GetText()) + 4, height)
|
||||
|
||||
def __CreateTextLine(self, fileName):
|
||||
textLine=ui.TextLine()
|
||||
textLine = ui.TextLine()
|
||||
textLine.SetParent(self)
|
||||
textLine.SetPosition(20, 0)
|
||||
textLine.SetText(fileName)
|
||||
textLine.Show()
|
||||
return textLine
|
||||
|
||||
def __CreateImageBox(self, fileName):
|
||||
(self.canLoad, self.imgWidth, self.imgHeight)=app.GetImageInfo(fileName)
|
||||
def LoadImageInfo(self):
|
||||
"""Load image info lazily when needed (e.g., when selected or validated)"""
|
||||
if self.imageLoaded:
|
||||
return
|
||||
|
||||
if 1==self.canLoad:
|
||||
if 16==self.imgWidth and 12==self.imgHeight:
|
||||
imgBox=ui.ImageBox()
|
||||
imgBox.AddFlag("not_pick")
|
||||
imgBox.SetParent(self)
|
||||
imgBox.SetPosition(0, 2)
|
||||
imgBox.LoadImageFromFile(fileName)
|
||||
imgBox.Show()
|
||||
return imgBox
|
||||
else:
|
||||
return 0
|
||||
else:
|
||||
return 0
|
||||
self.imageLoaded = True
|
||||
(self.canLoad, self.imgWidth, self.imgHeight) = app.GetImageInfo(self.fullPath)
|
||||
|
||||
if self.canLoad == 1 and self.imgWidth == 16 and self.imgHeight == 12:
|
||||
imgBox = ui.ImageBox()
|
||||
imgBox.AddFlag("not_pick")
|
||||
imgBox.SetParent(self)
|
||||
imgBox.SetPosition(0, 2)
|
||||
imgBox.LoadImageFromFile(self.fullPath)
|
||||
imgBox.Show()
|
||||
self.imgBox = imgBox
|
||||
|
||||
def OnRender(self):
|
||||
# Load image when item becomes visible (rendered)
|
||||
if not self.imageLoaded:
|
||||
self.LoadImageInfo()
|
||||
# Call parent to draw selection bar
|
||||
ui.ListBoxEx.Item.OnRender(self)
|
||||
|
||||
class SymbolItem(ui.ListBoxEx.Item):
|
||||
def __init__(self, fileName):
|
||||
ui.ListBoxEx.Item.__init__(self)
|
||||
self.textLine=self.__CreateTextLine(fileName)
|
||||
(self.canLoad, self.imgWidth, self.imgHeight)=app.GetImageInfo("upload/"+fileName)
|
||||
self.fileName = fileName
|
||||
self.fullPath = "upload/" + fileName
|
||||
self.imgWidth = 0
|
||||
self.imgHeight = 0
|
||||
self.canLoad = 0
|
||||
self.imageLoaded = False
|
||||
self.textLine = self.__CreateTextLine(fileName)
|
||||
|
||||
def __del__(self):
|
||||
ui.ListBoxEx.Item.__del__(self)
|
||||
@@ -62,13 +77,28 @@ class SymbolItem(ui.ListBoxEx.Item):
|
||||
ui.ListBoxEx.Item.SetSize(self, 6*len(self.textLine.GetText()) + 4, height)
|
||||
|
||||
def __CreateTextLine(self, fileName):
|
||||
textLine=ui.TextLine()
|
||||
textLine = ui.TextLine()
|
||||
textLine.SetParent(self)
|
||||
textLine.SetPosition(1, 2)
|
||||
textLine.SetText(fileName)
|
||||
textLine.Show()
|
||||
return textLine
|
||||
|
||||
def LoadImageInfo(self):
|
||||
"""Load image info lazily when needed"""
|
||||
if self.imageLoaded:
|
||||
return
|
||||
|
||||
self.imageLoaded = True
|
||||
(self.canLoad, self.imgWidth, self.imgHeight) = app.GetImageInfo(self.fullPath)
|
||||
|
||||
def OnRender(self):
|
||||
# Load image when item becomes visible (rendered)
|
||||
if not self.imageLoaded:
|
||||
self.LoadImageInfo()
|
||||
# Call parent to draw selection bar
|
||||
ui.ListBoxEx.Item.OnRender(self)
|
||||
|
||||
class PopupDialog(ui.ScriptWindow):
|
||||
def __init__(self, parent):
|
||||
print "NEW POPUP WINDOW ----------------------------------------------------------------------------"
|
||||
@@ -193,13 +223,16 @@ class MarkSelectDialog(ui.ScriptWindow):
|
||||
self.popupDialog.Open(msg)
|
||||
|
||||
def __OnOK(self):
|
||||
selItem=self.markListBox.GetSelectedItem()
|
||||
selItem = self.markListBox.GetSelectedItem()
|
||||
if selItem:
|
||||
if selItem.canLoad!=1:
|
||||
# Ensure image info is loaded before validation
|
||||
selItem.LoadImageInfo()
|
||||
|
||||
if selItem.canLoad != 1:
|
||||
self.__PopupMessage(localeInfo.GUILDMARK_UPLOADER_ERROR_FILE_FORMAT)
|
||||
elif selItem.imgWidth!=16:
|
||||
elif selItem.imgWidth != 16:
|
||||
self.__PopupMessage(localeInfo.GUILDMARK_UPLOADER_ERROR_16_WIDTH)
|
||||
elif selItem.imgHeight!=12:
|
||||
elif selItem.imgHeight != 12:
|
||||
self.__PopupMessage(localeInfo.GUILDMARK_UPLOADER_ERROR_12_HEIGHT)
|
||||
else:
|
||||
self.selectEvent(selItem.GetText())
|
||||
@@ -215,20 +248,22 @@ class MarkSelectDialog(ui.ScriptWindow):
|
||||
|
||||
def __RefreshFileList(self):
|
||||
self.__ClearFileList()
|
||||
self.__AppendFileList("bmp")
|
||||
self.__AppendFileList("tga")
|
||||
self.__AppendFileList("jpg")
|
||||
self.__AppendFileList("jpeg")
|
||||
self.__AppendFileList("png")
|
||||
# Collect all files first, then batch add to avoid multiple UI updates
|
||||
allFiles = []
|
||||
for ext in ("bmp", "tga", "jpg", "jpeg", "png"):
|
||||
fileNameList = app.GetFileList("upload/*." + ext)
|
||||
allFiles.extend(fileNameList)
|
||||
|
||||
# Sort alphabetically for consistent display
|
||||
allFiles.sort()
|
||||
|
||||
# Add all files at once
|
||||
for fileName in allFiles:
|
||||
self.__AppendFile(fileName)
|
||||
|
||||
def __ClearFileList(self):
|
||||
self.markListBox.RemoveAllItems()
|
||||
|
||||
def __AppendFileList(self, filter):
|
||||
fileNameList=app.GetFileList("upload/*."+filter)
|
||||
for fileName in fileNameList:
|
||||
self.__AppendFile(fileName)
|
||||
|
||||
def __AppendFile(self, fileName):
|
||||
self.markListBox.AppendItem(MarkItem(fileName))
|
||||
|
||||
@@ -318,13 +353,16 @@ class SymbolSelectDialog(ui.ScriptWindow):
|
||||
self.popupDialog.Open(msg)
|
||||
|
||||
def __OnOK(self):
|
||||
selItem=self.symbolListBox.GetSelectedItem()
|
||||
selItem = self.symbolListBox.GetSelectedItem()
|
||||
if selItem:
|
||||
if selItem.canLoad!=1:
|
||||
# Ensure image info is loaded before validation
|
||||
selItem.LoadImageInfo()
|
||||
|
||||
if selItem.canLoad != 1:
|
||||
self.__PopupMessage(localeInfo.GUILDMARK_UPLOADER_ERROR_FILE_FORMAT)
|
||||
elif selItem.imgWidth!=64:
|
||||
elif selItem.imgWidth != 64:
|
||||
self.__PopupMessage(localeInfo.GUILDMARK_UPLOADER_ERROR_64_WIDTH)
|
||||
elif selItem.imgHeight!=128:
|
||||
elif selItem.imgHeight != 128:
|
||||
self.__PopupMessage(localeInfo.GUILDMARK_UPLOADER_ERROR_128_HEIGHT)
|
||||
else:
|
||||
self.selectEvent(selItem.GetText())
|
||||
|
||||
@@ -46,10 +46,10 @@ class Sandbox(object):
|
||||
sys.modules[prevented_module_name] = None
|
||||
|
||||
try:
|
||||
f = open(filename, 'rb')
|
||||
data = f.read()
|
||||
code = compile(data, filename, 'exec')
|
||||
exec code in dic
|
||||
with open(filename, 'rb') as f:
|
||||
data = f.read()
|
||||
code = compile(data, filename, 'exec')
|
||||
exec code in dic
|
||||
except Exception, e:
|
||||
sys.stderr.write(e)
|
||||
finally:
|
||||
|
||||
Reference in New Issue
Block a user