Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import net
- import player
- import item
- import chat
- import exchange
- import wndMgr
- import app
- import exception
- import ui
- import localeInfo
- import mouseModule
- if app.WJ_ENABLE_TRADABLE_ICON:
- from _weakref import proxy
- class DiceDialog(ui.ScriptWindow):
- def __init__(self):
- ui.ScriptWindow.__init__(self)
- self.tooltipItem = 0
- self.time_end = 0
- self.close = False
- self.closenotimer = 0
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.interface = 0
- self.wndInventory = 0
- self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
- def __del__(self):
- ui.ScriptWindow.__del__(self)
- def LoadWindow(self):
- try:
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "UIScript/dicesystem.py")
- except:
- exception.Abort("DiceDialog.LoadDialog.LoadScript")
- try:
- GetObject=self.GetChild
- self.Owner_Slot = GetObject("Owner_Slot")
- self.Owner_Slot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectOwnerEmptySlot))
- self.Owner_Slot.SetOverInItemEvent(ui.__mem_func__(self.OverInOwnerItem))
- self.Owner_Slot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
- self.Owner_Number = GetObject("Owner_Number")
- self.Who_Win = GetObject("Who_Wine")
- self.Owner_Accept_Light = GetObject("Owner_Accept_Light")
- self.Owner_Accept_Light.Disable()
- self.Target_Slot = GetObject("Target_Slot")
- self.Target_Slot.SetOverInItemEvent(ui.__mem_func__(self.OverInTargetItem))
- self.Target_Slot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
- self.Target_Number = GetObject("Target_Number")
- self.Target_Accept_Light = GetObject("Target_Accept_Light")
- self.Target_Accept_Light.Disable()
- #self.Owner_Number_Text.SetFontName("Tahoma:22")
- #self.Target_Number_Text.SetFontName("Tahoma:22")
- self.TitleName = self.GetChild("TitleName")
- self.AcceptButton = self.GetChild("Owner_Accept_Button")
- self.AcceptButton.SetToggleDownEvent(ui.__mem_func__(self.AcceptExchange))
- self.GetChild("TitleBar").SetCloseEvent(net.SendExchangeExitPacket)
- except:
- exception.Abort("dice.LoadDialog.BindObject")
- self.Show()
- def Destroy(self):
- self.ClearDictionary()
- self.tooltipItem = 0
- self.close = False
- self.closenotimer = 0
- self.Owner_Slot = 0
- self.Owner_Number = 0
- self.Owner_Accept_Light = 0
- self.Target_Slot = 0
- self.Target_Number = 0
- self.Target_Accept_Light = 0
- self.TitleName = 0
- self.AcceptButton = 0
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.interface = 0
- self.wndInventory = 0
- self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
- def OverInOwnerItem(self, slotIndex):
- if 0 != self.tooltipItem:
- self.tooltipItem.SetExchangeOwnerItem(slotIndex)
- def OverInTargetItem(self, slotIndex):
- if 0 != self.tooltipItem:
- self.tooltipItem.SetExchangeTargetItem(slotIndex)
- def OverOutItem(self):
- if 0 != self.tooltipItem:
- self.tooltipItem.HideToolTip()
- def AcceptExchange(self):
- net.SendExchangeAcceptPacket()
- self.AcceptButton.Disable()
- def SelectOwnerEmptySlot(self, SlotIndex):
- if False == mouseModule.mouseController.isAttached():
- return
- if mouseModule.mouseController.IsAttachedMoney():
- net.SendExchangeElkAddPacket(mouseModule.mouseController.GetAttachedMoneyAmount())
- else:
- attachedSlotType = mouseModule.mouseController.GetAttachedType()
- if player.SLOT_TYPE_INVENTORY == attachedSlotType:
- attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
- SrcSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber()
- DstSlotNumber = SlotIndex
- itemID = player.GetItemIndex(attachedInvenType, SrcSlotNumber)
- item.SelectItem(itemID)
- if item.IsAntiFlag(item.ANTIFLAG_GIVE):
- chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE)
- mouseModule.mouseController.DeattachObject()
- return
- net.SendExchangeItemAddPacket(attachedInvenType, SrcSlotNumber, DstSlotNumber)
- mouseModule.mouseController.DeattachObject()
- def RefreshOwnerSlot(self):
- for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM):
- itemIndex = exchange.GetItemVnumFromSelf(i)
- itemCount = exchange.GetItemCountFromSelf(i)
- if 1 == itemCount:
- itemCount = 0
- self.Owner_Slot.SetItemSlot(i, itemIndex, itemCount)
- self.Owner_Slot.RefreshSlot()
- def RefreshTargetSlot(self):
- for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM):
- itemIndex = exchange.GetItemVnumFromTarget(i)
- itemCount = exchange.GetItemCountFromTarget(i)
- if 1 == itemCount:
- itemCount = 0
- self.Target_Slot.SetItemSlot(i, itemIndex, itemCount)
- self.Target_Slot.RefreshSlot()
- def Refresh(self):
- self.RefreshOwnerSlot()
- self.RefreshTargetSlot()
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.RefreshLockedSlot()
- if True == exchange.GetAcceptFromSelf():
- self.Owner_Accept_Light.Down()
- else:
- self.AcceptButton.Enable()
- self.AcceptButton.SetUp()
- self.Owner_Accept_Light.SetUp()
- if True == exchange.GetAcceptFromTarget():
- self.Target_Accept_Light.Down()
- else:
- self.Target_Accept_Light.SetUp()
- def SetItemToolTip(self, tooltipItem):
- self.tooltipItem = tooltipItem
- def OpenDialog(self):
- self.AcceptButton.Enable()
- self.AcceptButton.SetUp()
- self.closenotimer = 0
- self.close = False
- self.TitleName.SetText(localeInfo.DICE_TITLE % (exchange.GetNameFromTarget()))
- self.index = 0
- self.stop = 0
- self.Show()
- self.time = app.GetGlobalTimeStamp() + 1
- def OnUpdate(self):
- if self.time == app.GetGlobalTimeStamp():
- self.index = self.index + 1
- if self.index > 1:
- self.index = 0
- if self.index == 0 and self.stop == 0:
- self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")
- self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")
- if self.index == 1 and self.stop == 0:
- self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")
- self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")
- self.time = app.GetGlobalTimeStamp() + 1 # 1 == secunde sa se schimbe
- seconds = app.GetGlobalTimeStamp() - self.time_end
- if self.close and seconds > 2.0:
- self.close = FALSE
- self.Close()
- def DiceAddNumber(self, myNumber, targetNumber):
- self.stop = 1
- win = 0
- if int(myNumber) > int(targetNumber):
- if int(myNumber) < 50:
- self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#l
- self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga") #w
- win = 0
- else:
- self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")#l
- self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#w
- win = 1
- if int(targetNumber) > int(myNumber):
- if int(targetNumber) < 50:
- self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")#l
- self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#w
- win = 0
- else:
- self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#l
- self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")#w
- win = 1
- if int(targetNumber) == int(myNumber):
- self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#e
- self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#e
- win = 3
- ## sett something.
- if win != 3:
- self.Who_Win.LoadImage("d:/ymir work/ui/game/dungeon_list/%d.tga" % (win)) #w
- self.closenotimer = 3
- def GetInventoryPageIndex(self):
- if self.wndInventory:
- return self.wndInventory.GetInventoryPageIndex()
- else:
- return -1
- def CloseDialog(self):
- wndMgr.OnceIgnoreMouseLeftButtonUpEvent()
- if 0 != self.tooltipItem:
- self.tooltipItem.HideToolTip()
- if self.closenotimer == 3:
- self.time_end = app.GetGlobalTimeStamp()
- self.close = True
- else:
- self.close = False
- self.Close()
- if app.WJ_ENABLE_TRADABLE_ICON:
- def BINARY_AddItemToExchange(self, inven_type, inven_pos, display_pos):
- if inven_type == player.INVENTORY:
- self.interface.CantTradableItemExchange(display_pos, inven_pos)
- self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
- self.interface.SetOnTopWindow(player.ON_TOP_WND_NONE)
- self.interface.RefreshMarkInventoryBag()
- def Close(self):
- #self.Owner_Number.LoadImage("")
- #self.Target_Number.LoadImage("")
- self.Hide()
- if app.WJ_ENABLE_TRADABLE_ICON:
- for exchangePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items():
- if itemInvenPage == self.wndInventory.GetInventoryPage():
- self.wndInventory.wndItem.SetCanMouseEventSlot(itemSlotPos)
- self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
- self.interface.SetOnTopWindow(player.ON_TOP_WND_NONE)
- self.interface.RefreshMarkInventoryBag()
- if app.WJ_ENABLE_TRADABLE_ICON:
- def CantTradableItem(self, destSlotIndex, srcSlotIndex):
- if True == exchange.GetAcceptFromTarget():
- return
- itemInvenPage = srcSlotIndex / player.INVENTORY_PAGE_SIZE
- localSlotPos = srcSlotIndex - (itemInvenPage * player.INVENTORY_PAGE_SIZE)
- self.lockedItems[destSlotIndex] = (itemInvenPage, localSlotPos)
- if self.wndInventory.GetInventoryPage() == itemInvenPage and self.IsShow():
- self.wndInventory.wndItem.SetCantMouseEventSlot(localSlotPos)
- def RefreshLockedSlot(self):
- if self.wndInventory:
- for exchangePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items():
- if self.wndInventory.GetInventoryPage() == itemInvenPage:
- self.wndInventory.wndItem.SetCantMouseEventSlot(itemSlotPos)
- self.wndInventory.wndItem.RefreshSlot()
- def BindInterface(self, interface):
- self.interface = interface
- def SetInven(self, wndInventory):
- self.wndInventory = proxy(wndInventory)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement