### interfaceModule.py ###
# 1) Search for: import uiScriptLocale
# 2) Make a new line and under paste this:
import uiTicket
# 1) Search for:
"""
self.dlgShop = uiShop.ShopDialog()
self.dlgShop.LoadDialog()
self.dlgShop.Hide()
"""
# on def __MakeDialogs(self):
# 2) Make a new line and under paste this:
self.wndTicket = uiTicket.TicketWindow()
self.wndTicket.Hide()
# 1) Search for:
"""
if self.dlgShop:
self.dlgShop.Destroy()
"""
# on def Close(self):
# 2) Make a new line and under paste this:
if self.wndTicket:
self.wndTicket.Destroy()
# 1) Search for: del self.wndItemSelect
# 2) Make a new line and under paste this:
del self.wndTicket
############################
############################
### constInfo.py ###
# 1) Search for: isItemDropQuestionDialog = 0
# 2) Make a new line and under paste this:
Tickets = {
'QID' : 0,
'QCMD' : '',
'MY_TICKETS' : [],
'GLOBAL_TICKETS' : [],
'ANSWERS' : {},
'PERMISIONS' : []
}
############################
############################
### game.py ###
# 1) Search for en el def __ServerCommand_Build
"""
"mall" : self.__InGameShop_Show,
"""
# 2) Make a new line and under paste this:
"TICKETS" : self.ManagerTickets,
# 1) Search for:
"""
def __InGameShop_Show(self, url):
if constInfo.IN_GAME_SHOP_ENABLE:
self.interface.OpenWebWindow(url)
"""
# 2) Make a new line and under paste this:
def ManagerTickets(self, cmd):
cmd = cmd.split('#')
if cmd[0] == 'QID':
constInfo.Tickets['QID'] = int(cmd[1])
elif cmd[0] == 'INPUT':
constInfo.INPUT_IGNORE = int(cmd[1])
elif cmd[0] == 'SEND':
net.SendQuestInputLongStringPacket(str(constInfo.Tickets['QCMD']))
constInfo.Tickets['QCMD'] = ''
elif cmd[0] == 'CLEAR_CONTENT':
constInfo.Tickets['MY_TICKETS'] = []
constInfo.Tickets['GLOBAL_TICKETS'] = []
elif cmd[0] == 'CLEAR_PERMISIONS':
constInfo.Tickets['PERMISIONS'] = []
elif cmd[0] == 'SET_TICKET':
date = cmd[4].split('[_]')
constInfo.Tickets['GLOBAL_TICKETS'].append([cmd[1], cmd[2].replace('[_]', ' '), int(cmd[3]), date[0], date[1], int(cmd[5]), cmd[6], cmd[7].replace('[_]', ' '), int(cmd[8])])
if cmd[6] == player.GetName():
constInfo.Tickets['MY_TICKETS'].append([cmd[1], cmd[2].replace('[_]', ' '), int(cmd[3]), date[0], date[1], int(cmd[5]), cmd[6], cmd[7].replace('[_]', ' '), int(cmd[8])])
elif cmd[0] == 'CREATE_ANSWER':
constInfo.Tickets['ANSWERS'][cmd[1]] = []
elif cmd[0] == 'SET_ANSWER':
date = cmd[3].split('[_]')
constInfo.Tickets['ANSWERS'][cmd[1]].append([cmd[2], date[0], date[1], cmd[4].replace('[_]', ' ')])
elif cmd[0] == 'SET_PERMISION':
constInfo.Tickets['PERMISIONS'].append([cmd[1], int(cmd[2]), int(cmd[3]), int(cmd[4])])
elif cmd[0] == 'OPEN':
self.interface.wndTicket.Open(int(cmd[1]))
elif cmd[0] == 'REFRESH_CONTENT':
self.interface.wndTicket.RefreshPage()
############################
############################
### ui.py ###
# 1) Search for:
"""
class NumberLine(window):
...
"""
# after all the class
# 2) Make a new line and under paste this:
class CoolButton(Window):
BACKGROUND_COLOR = grp.GenerateColor(0.0, 0.0, 0.0, 1.0)
DARK_COLOR = grp.GenerateColor(0.4, 0.4, 0.4, 1.0)
WHITE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.3)
HALF_WHITE_COLOR = grp.GenerateColor(1.0, 1.0, 1.0, 0.2)
def __init__(self, layer = "UI"):
Window.__init__(self, layer)
self.eventFunc = None
self.eventArgs = None
self.ButtonText = None
self.ToolTipText = None
self.EdgeColor = None
self.isOver = FALSE
self.isSelected = FALSE
self.width = 0
self.height = 0
def __del__(self):
Window.__del__(self)
self.eventFunc = None
self.eventArgs = None
def SetSize(self, width, height):
Window.SetSize(self, width, height)
self.width = width
self.height = height
def SetEvent(self, func, *args):
self.eventFunc = func
self.eventArgs = args
def SetTextColor(self, color):
if not self.ButtonText:
return
self.ButtonText.SetPackedFontColor(color)
def SetEdgeColor(self, color):
self.EdgeColor = color
def SetText(self, text):
if not self.ButtonText:
textLine = TextLine()
textLine.SetParent(self)
textLine.SetPosition(self.GetWidth()/2, self.GetHeight()/2)
textLine.SetVerticalAlignCenter()
textLine.SetHorizontalAlignCenter()
textLine.SetOutline()
textLine.Show()
self.ButtonText = textLine
self.ButtonText.SetText(text)
def SetToolTipText(self, text, x=0, y = -19):
if not self.ToolTipText:
toolTip=createToolTipWindowDict["TEXT"]()
toolTip.SetParent(self)
toolTip.SetSize(0, 0)
toolTip.SetHorizontalAlignCenter()
toolTip.SetOutline()
toolTip.Hide()
toolTip.SetPosition(x + self.GetWidth()/2, y)
self.ToolTipText=toolTip
self.ToolTipText.SetText(text)
def ShowToolTip(self):
if self.ToolTipText:
self.ToolTipText.Show()
def HideToolTip(self):
if self.ToolTipText:
self.ToolTipText.Hide()
def SetTextPosition(self, width):
self.ButtonText.SetPosition(width, self.GetHeight()/2)
self.ButtonText.SetHorizontalAlignLeft()
def Enable(self):
wndMgr.Enable(self.hWnd)
def Disable(self):
wndMgr.Disable(self.hWnd)
def OnMouseLeftButtonDown(self):
self.isSelected = TRUE
def OnMouseLeftButtonUp(self):
self.isSelected = FALSE
if self.eventFunc:
apply(self.eventFunc, self.eventArgs)
def OnUpdate(self):
if self.IsIn():
self.isOver = TRUE
self.ShowToolTip()
else:
self.isOver = FALSE
self.HideToolTip()
def OnRender(self):
xRender, yRender = self.GetGlobalPosition()
widthRender = self.width
heightRender = self.height
grp.SetColor(self.BACKGROUND_COLOR)
grp.RenderBar(xRender, yRender, widthRender, heightRender)
if self.EdgeColor:
grp.SetColor(self.EdgeColor)
else:
grp.SetColor(self.DARK_COLOR)
grp.RenderLine(xRender, yRender, widthRender, 0)
grp.RenderLine(xRender, yRender, 0, heightRender)
grp.RenderLine(xRender, yRender+heightRender, widthRender, 0)
grp.RenderLine(xRender+widthRender, yRender, 0, heightRender)
if self.isOver:
grp.SetColor(self.HALF_WHITE_COLOR)
grp.RenderBar(xRender + 2, yRender + 2, self.width - 3, heightRender - 3)
if self.isSelected:
grp.SetColor(self.WHITE_COLOR)
grp.RenderBar(xRender + 2, yRender + 2, self.width - 3, heightRender - 3)
# 1) Search for: class EditLine(TextLine):
#Inside of class EditLine(TextLine):
"""
self.eventKillFocus = None
"""
# 2) Make a new line and paste this:
self.CanClick = None
#WARNING! There are 2
#Continue in class EditLine(TextLine)
# 1) Search for:
"""
def SetTabEvent(self, event):
self.eventTab = event
"""
# under this def
# 2) Make a new line and paste this:
def CanEdit(self, flag):
self.CanClick = flag
#Continue in class EditLine(TextLine)
# 1) Search for:
"""
def OnMouseLeftButtonDown(self):
...
"""
# Below this:
"""
if FALSE == self.IsIn():
return FALSE
"""
# 2) Make a new line and paste this:
if FALSE == self.CanClick:
return
# Should be this under it: self.SetFocus()
############################
############################
# 1) To open the ticket window use this function:
def OpenTicketWindow(self):
constInfo.Tickets['QCMD'] = 'OPEN#'
event.QuestButtonClick(constInfo.Tickets['QID'])