182 lines
4.1 KiB
Python
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()
|