forked from metin2/client
1
0
Fork 0
client/bin_original/uiAutoBan.py

182 lines
4.1 KiB
Python

import app
import os
import net
import mouseModule
import player
import snd
import locale
import ui
import uiScriptLocale
class AutoBanQuizWindow(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.answer = 0
self.restSec = 0
def __del__(self):
ui.ScriptWindow.__del__(self)
def LoadWindow(self):
try:
pyScrLoader = ui.PythonScriptLoader()
pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "AutoBanQuiz.py")
except:
import exception
exception.Abort("AutoBanQuiz.LoadDialog.LoadScript")
try:
GetObject=self.GetChild
self.msgTexts = [
GetObject("msg1"),
GetObject("msg2"),
]
self.selButtons = [
GetObject("select1"),
GetObject("select2"),
GetObject("select3"),
]
self.statusText = GetObject("status")
self.answerButton = GetObject("answer")
self.refreshButton = GetObject("refresh")
except:
import exception
exception.Abort("AutoBanQuiz.LoadDialog.BindObject")
self.selButtons[0].SAFE_SetEvent(self.__OnClickSelectButton0)
self.selButtons[1].SAFE_SetEvent(self.__OnClickSelectButton1)
self.selButtons[2].SAFE_SetEvent(self.__OnClickSelectButton2)
self.answerButton.SAFE_SetEvent(self.__OnClickAnswerButton)
self.refreshButton.SAFE_SetEvent(self.__OnClickRefreshButton)
def Destroy(self):
self.ClearDictionary()
self.msgTexts = []
self.selButtons = []
self.statusText = None
self.answerButton = None
self.refreshButton = None
def Open(self, open, quiz, duration):
srcLines = quiz.split("|")
if len(srcLines) >= 5:
msgLines = srcLines[:2]
selLines = srcLines[2:]
for msgText, msgLine in zip(self.msgTexts, msgLines):
msgText.SetText(msgLine)
for selButton, selLine in zip(self.selButtons, selLines):
selButton.SetText(selLine)
self.statusText.SetText("%s: %s" % (uiScriptLocale.AUTOBAN_QUIZ_REST_TIME, locale.SecondToDHM(duration)))
self.answer = 0
self.endTime = app.GetTime() + duration
for selectButton in self.selButtons:
selectButton.SetUp()
self.Show()
self.Lock()
def Close(self):
self.Unlock()
self.Hide()
def Clear(self):
pass
def Refresh(self):
pass
def __OnClickSelectButton0(self):
self.__Select(0)
def __OnClickSelectButton1(self):
self.__Select(1)
def __OnClickSelectButton2(self):
self.__Select(2)
def __Select(self, index):
for selectButton in self.selButtons:
selectButton.SetUp()
self.selButtons[index].Down()
self.answer = index + 1
print "autoban_select: %d" % (self.answer)
def __OnClickAnswerButton(self):
if self.answer:
print "autoban_answer: %d" % (self.answer)
net.SendChatPacket("/autoban_answer %d" % (self.answer))
self.Close()
else:
print "autoban_noanswer"
def __OnClickRefreshButton(self):
print "autoban_refresh"
net.SendChatPacket("/autoban_refresh")
def OnPressEscapeKey(self):
return TRUE
def OnUpdate(self):
restTime = self.endTime - app.GetTime()
if restTime < 0:
restTime = 0
self.statusText.SetText("%s: %s" % (uiScriptLocale.AUTOBAN_QUIZ_REST_TIME, locale.SecondToDHM(restTime)))
if __name__ == "__main__":
import app
import wndMgr
import systemSetting
import mouseModule
import grp
import ui
import uiToolTip
import locale
app.SetMouseHandler(mouseModule.mouseController)
app.SetHairColorEnable(TRUE)
wndMgr.SetMouseHandler(mouseModule.mouseController)
wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
app.Create("METIN2", systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
mouseModule.mouseController.Create()
class TestGame(ui.Window):
def __init__(self):
ui.Window.__init__(self)
locale.LoadLocaleData()
self.cubeWindow = AutoBanQuizWindow()
self.cubeWindow.LoadWindow()
self.cubeWindow.Open()
def __del__(self):
ui.Window.__del__(self)
def OnUpdate(self):
app.UpdateGame()
def OnRender(self):
app.RenderGame()
grp.PopState()
grp.SetInterfaceRenderState()
game = TestGame()
game.SetSize(systemSetting.GetWidth(), systemSetting.GetHeight())
game.Show()
app.Loop()