Tipologie server:
*Resursă folosită: Nu pot sa pun link:
Clasa pentru uiCommon.py
Cod: Selectaţi tot
class ItemQuestionDialog(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)
self.__CreateDialog()
self.tooltipItem = uiToolTip.ItemToolTip()
self.toolTip = uiToolTip.ToolTip()
self.window_type = 0
self.count = 0
self.dropType = 0
self.dropCount = 0
self.dropNumber = 0
def __del__(self):
ui.ScriptWindow.__del__(self)
def __CreateDialog(self):
pyScrLoader = ui.PythonScriptLoader()
pyScrLoader.LoadScriptFile(self, "QuestionDialog.py")
self.board = self.GetChild("board")
self.textLine = self.GetChild("message")
self.acceptButton = self.GetChild("accept")
self.cancelButton = self.GetChild("cancel")
self.titleBar = ui.TitleBar()
self.titleBar.SetParent(self.board)
self.titleBar.MakeTitleBar(244, "yellow")
self.titleBar.SetPosition(8, 7)
self.titleBar.Show()
self.titleName = ui.TextLine()
self.titleName.SetParent(self.titleBar)
self.titleName.SetPosition(0, 4)
self.titleName.SetWindowHorizontalAlignCenter()
self.titleName.SetHorizontalAlignCenter()
self.titleName.Show()
self.slotList = []
for i in xrange(3):
slot = ui.ImageBox()
slot.LoadImage("d:/ymir work/ui/public/slot_base.sub")
slot.SetParent(self)
slot.SetWindowHorizontalAlignCenter()
self.slotList.append(slot)
def Open(self, vnum, slot = None, price = None):
item.SelectItem(vnum)
xSlotCount, ySlotCount = item.GetItemSize()
try:
if self.window_type == "inv":
metinSlot = [player.GetItemMetinSocket(player.INVENTORY, slot, i) for i in xrange(player.METIN_SOCKET_MAX_NUM)]
elif self.window_type == "shop":
metinSlot = [shop.GetItemMetinSocket(slot, i) for i in xrange(player.METIN_SOCKET_MAX_NUM)]
except:
pass
if vnum in (50300, 70037):
self.titleName.SetText("%s %s" % (skill.GetSkillName(metinSlot[0]), item.GetItemName()))
elif vnum == 70104:
self.titleName.SetText("%s %s" % (nonplayer.GetMonsterName(metinSlot[0]), item.GetItemName()))
else:
self.titleName.SetText(item.GetItemName())
newHeight = 0
if price:
newHeight = 20
itemPrice = ui.TextLine()
itemPrice.SetPosition(0, 77 + 32*ySlotCount)
itemPrice.SetWindowHorizontalAlignCenter()
itemPrice.SetHorizontalAlignCenter()
itemPrice.SetVerticalAlignCenter()
itemPrice.SetParent(self.board)
if str(price).isdigit():
itemPrice.SetText(localeInfo.NumberToMoneyString(price))
else:
itemPrice.SetText(price)
itemPrice.Show()
self.itemPrice = itemPrice
slotGrid = ui.SlotWindow()
slotGrid.SetParent(self)
slotGrid.SetPosition(-16, 62)
slotGrid.SetWindowHorizontalAlignCenter()
slotGrid.AppendSlot(0, 0, 0, 32*xSlotCount, 32*ySlotCount)
slotGrid.AddFlag("not_pick")
slotGrid.Show()
self.slotGrid = slotGrid
if self.count > 1 and vnum != 1:
self.slotGrid.SetItemSlot(0, vnum, self.count)
else:
self.slotGrid.SetItemSlot(0, vnum)
self.SetSize(260, 110 + 32*ySlotCount + newHeight)
self.board.SetSize(260, 110 + 32*ySlotCount + newHeight)
self.textLine.SetPosition(0, 44)
for i in xrange(min(3, ySlotCount)):
self.slotList[i].SetPosition(0, 30 + ySlotCount*32 - i*32)
if vnum != 1:
self.slotList[i].OnMouseOverIn = lambda arg = slot: self.OverInItem(arg)
self.slotList[i].OnMouseOverOut = lambda arg = self.tooltipItem: self.OverOutItem(arg)
else:
self.slotList[i].OnMouseOverIn = lambda arg = localeInfo.MONETARY_UNIT0: self.OverInToolTip(arg)
self.slotList[i].OnMouseOverOut = lambda: self.OverOutToolTip()
self.slotList[i].Show()
self.GetChild("accept").SetPosition(-40, 74 + 32*ySlotCount + newHeight)
self.GetChild("cancel").SetPosition(40, 74 + 32*ySlotCount + newHeight)
self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
self.SetCenterPosition()
self.SetTop()
self.Show()
def SetCloseEvent(self, event):
self.titleBar.SetCloseEvent(event)
def SetMessage(self, text):
self.textLine.SetText(text)
def OverInToolTip(self, arg):
self.toolTip.ClearToolTip()
self.toolTip.AppendTextLine(arg, 0xffffff00)
self.toolTip.Show()
def OverOutToolTip(self):
self.toolTip.Hide()
def OverInItem(self, slot):
if self.window_type == "shop":
self.tooltipItem.SetShopItem(slot)
elif self.window_type == "inv":
self.tooltipItem.SetInventoryItem(slot)
def OverOutItem(self, tooltipItem):
if None != tooltipItem:
self.tooltipItem.HideToolTip()
self.tooltipItem.ClearToolTip()
def Close(self):
self.ClearDictionary()
self.slotList = []
self.titleBar = None
self.titleName = None
self.itemPrice = None
self.slotGrid = None
self.toolTip = None
self.tooltipItem = None
self.Hide()
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
def SetWidth(self, width):
height = self.GetHeight()
self.SetSize(width, height)
self.board.SetSize(width, height)
self.SetCenterPosition()
self.UpdateRect()
def SAFE_SetAcceptEvent(self, event):
self.acceptButton.SAFE_SetEvent(event)
def SAFE_SetCancelEvent(self, event):
self.cancelButton.SAFE_SetEvent(event)
def SetAcceptEvent(self, event):
self.acceptButton.SetEvent(event)
def SetCancelEvent(self, event):
self.cancelButton.SetEvent(event)
def SetText(self, text):
self.textLine.SetText(text)
def SetAcceptText(self, text):
self.acceptButton.SetText(text)
def SetCancelText(self, text):
self.cancelButton.SetText(text)
def OnPressEscapeKey(self):
self.Close()
return True*Syserr:
Poză:
*Detalii suplimentare:




