Advertisement
Guest User

Untitled

a guest
Apr 29th, 2021
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.74 KB | None | 0 0
  1. import net
  2. import player
  3. import item
  4. import chat
  5. import exchange
  6. import wndMgr
  7. import app
  8. import exception
  9. import ui
  10. import localeInfo
  11. import mouseModule
  12.  
  13.  
  14.  
  15. if app.WJ_ENABLE_TRADABLE_ICON:
  16. from _weakref import proxy
  17.  
  18. class DiceDialog(ui.ScriptWindow):
  19. def __init__(self):
  20. ui.ScriptWindow.__init__(self)
  21. self.tooltipItem = 0
  22. self.time_end = 0
  23. self.close = False
  24. self.closenotimer = 0
  25. if app.WJ_ENABLE_TRADABLE_ICON:
  26. self.interface = 0
  27. self.wndInventory = 0
  28. self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
  29.  
  30. def __del__(self):
  31. ui.ScriptWindow.__del__(self)
  32.  
  33. def LoadWindow(self):
  34. try:
  35. pyScrLoader = ui.PythonScriptLoader()
  36. pyScrLoader.LoadScriptFile(self, "UIScript/dicesystem.py")
  37. except:
  38. exception.Abort("DiceDialog.LoadDialog.LoadScript")
  39.  
  40. try:
  41. GetObject=self.GetChild
  42. self.Owner_Slot = GetObject("Owner_Slot")
  43. self.Owner_Slot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectOwnerEmptySlot))
  44. self.Owner_Slot.SetOverInItemEvent(ui.__mem_func__(self.OverInOwnerItem))
  45. self.Owner_Slot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  46. self.Owner_Number = GetObject("Owner_Number")
  47. self.Who_Win = GetObject("Who_Wine")
  48. self.Owner_Accept_Light = GetObject("Owner_Accept_Light")
  49. self.Owner_Accept_Light.Disable()
  50.  
  51. self.Target_Slot = GetObject("Target_Slot")
  52. self.Target_Slot.SetOverInItemEvent(ui.__mem_func__(self.OverInTargetItem))
  53. self.Target_Slot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  54. self.Target_Number = GetObject("Target_Number")
  55. self.Target_Accept_Light = GetObject("Target_Accept_Light")
  56. self.Target_Accept_Light.Disable()
  57. #self.Owner_Number_Text.SetFontName("Tahoma:22")
  58. #self.Target_Number_Text.SetFontName("Tahoma:22")
  59.  
  60. self.TitleName = self.GetChild("TitleName")
  61.  
  62. self.AcceptButton = self.GetChild("Owner_Accept_Button")
  63. self.AcceptButton.SetToggleDownEvent(ui.__mem_func__(self.AcceptExchange))
  64. self.GetChild("TitleBar").SetCloseEvent(net.SendExchangeExitPacket)
  65. except:
  66. exception.Abort("dice.LoadDialog.BindObject")
  67.  
  68. self.Show()
  69.  
  70. def Destroy(self):
  71. self.ClearDictionary()
  72. self.tooltipItem = 0
  73. self.close = False
  74. self.closenotimer = 0
  75. self.Owner_Slot = 0
  76. self.Owner_Number = 0
  77. self.Owner_Accept_Light = 0
  78. self.Target_Slot = 0
  79. self.Target_Number = 0
  80. self.Target_Accept_Light = 0
  81. self.TitleName = 0
  82. self.AcceptButton = 0
  83. if app.WJ_ENABLE_TRADABLE_ICON:
  84. self.interface = 0
  85. self.wndInventory = 0
  86. self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
  87.  
  88. def OverInOwnerItem(self, slotIndex):
  89. if 0 != self.tooltipItem:
  90. self.tooltipItem.SetExchangeOwnerItem(slotIndex)
  91.  
  92. def OverInTargetItem(self, slotIndex):
  93. if 0 != self.tooltipItem:
  94. self.tooltipItem.SetExchangeTargetItem(slotIndex)
  95.  
  96. def OverOutItem(self):
  97. if 0 != self.tooltipItem:
  98. self.tooltipItem.HideToolTip()
  99.  
  100. def AcceptExchange(self):
  101. net.SendExchangeAcceptPacket()
  102. self.AcceptButton.Disable()
  103.  
  104. def SelectOwnerEmptySlot(self, SlotIndex):
  105. if False == mouseModule.mouseController.isAttached():
  106. return
  107.  
  108. if mouseModule.mouseController.IsAttachedMoney():
  109. net.SendExchangeElkAddPacket(mouseModule.mouseController.GetAttachedMoneyAmount())
  110. else:
  111. attachedSlotType = mouseModule.mouseController.GetAttachedType()
  112. if player.SLOT_TYPE_INVENTORY == attachedSlotType:
  113.  
  114. attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
  115.  
  116. SrcSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber()
  117. DstSlotNumber = SlotIndex
  118.  
  119. itemID = player.GetItemIndex(attachedInvenType, SrcSlotNumber)
  120. item.SelectItem(itemID)
  121.  
  122. if item.IsAntiFlag(item.ANTIFLAG_GIVE):
  123. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE)
  124. mouseModule.mouseController.DeattachObject()
  125. return
  126.  
  127. net.SendExchangeItemAddPacket(attachedInvenType, SrcSlotNumber, DstSlotNumber)
  128.  
  129. mouseModule.mouseController.DeattachObject()
  130.  
  131. def RefreshOwnerSlot(self):
  132. for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM):
  133. itemIndex = exchange.GetItemVnumFromSelf(i)
  134. itemCount = exchange.GetItemCountFromSelf(i)
  135. if 1 == itemCount:
  136. itemCount = 0
  137. self.Owner_Slot.SetItemSlot(i, itemIndex, itemCount)
  138. self.Owner_Slot.RefreshSlot()
  139.  
  140. def RefreshTargetSlot(self):
  141. for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM):
  142. itemIndex = exchange.GetItemVnumFromTarget(i)
  143. itemCount = exchange.GetItemCountFromTarget(i)
  144. if 1 == itemCount:
  145. itemCount = 0
  146. self.Target_Slot.SetItemSlot(i, itemIndex, itemCount)
  147. self.Target_Slot.RefreshSlot()
  148.  
  149. def Refresh(self):
  150. self.RefreshOwnerSlot()
  151. self.RefreshTargetSlot()
  152. if app.WJ_ENABLE_TRADABLE_ICON:
  153. self.RefreshLockedSlot()
  154.  
  155. if True == exchange.GetAcceptFromSelf():
  156. self.Owner_Accept_Light.Down()
  157. else:
  158. self.AcceptButton.Enable()
  159. self.AcceptButton.SetUp()
  160. self.Owner_Accept_Light.SetUp()
  161.  
  162. if True == exchange.GetAcceptFromTarget():
  163. self.Target_Accept_Light.Down()
  164. else:
  165. self.Target_Accept_Light.SetUp()
  166.  
  167. def SetItemToolTip(self, tooltipItem):
  168. self.tooltipItem = tooltipItem
  169.  
  170. def OpenDialog(self):
  171. self.AcceptButton.Enable()
  172. self.AcceptButton.SetUp()
  173. self.closenotimer = 0
  174. self.close = False
  175. self.TitleName.SetText(localeInfo.DICE_TITLE % (exchange.GetNameFromTarget()))
  176. self.index = 0
  177. self.stop = 0
  178. self.Show()
  179. self.time = app.GetGlobalTimeStamp() + 1
  180.  
  181. def OnUpdate(self):
  182. if self.time == app.GetGlobalTimeStamp():
  183. self.index = self.index + 1
  184. if self.index > 1:
  185. self.index = 0
  186. if self.index == 0 and self.stop == 0:
  187. self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")
  188. self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")
  189. if self.index == 1 and self.stop == 0:
  190. self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")
  191. self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")
  192. self.time = app.GetGlobalTimeStamp() + 1 # 1 == secunde sa se schimbe
  193.  
  194. seconds = app.GetGlobalTimeStamp() - self.time_end
  195. if self.close and seconds > 2.0:
  196. self.close = FALSE
  197. self.Close()
  198.  
  199. def DiceAddNumber(self, myNumber, targetNumber):
  200. self.stop = 1
  201. win = 0
  202. if int(myNumber) > int(targetNumber):
  203. if int(myNumber) < 50:
  204. self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#l
  205. self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga") #w
  206. win = 0
  207. else:
  208. self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")#l
  209. self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#w
  210. win = 1
  211. if int(targetNumber) > int(myNumber):
  212. if int(targetNumber) < 50:
  213. self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")#l
  214. self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#w
  215. win = 0
  216. else:
  217. self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#l
  218. self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/1.tga")#w
  219. win = 1
  220. if int(targetNumber) == int(myNumber):
  221. self.Owner_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#e
  222. self.Target_Number.LoadImage("d:/ymir work/ui/game/dungeon_list/0.tga")#e
  223. win = 3
  224.  
  225. ## sett something.
  226. if win != 3:
  227. self.Who_Win.LoadImage("d:/ymir work/ui/game/dungeon_list/%d.tga" % (win)) #w
  228.  
  229. self.closenotimer = 3
  230.  
  231. def GetInventoryPageIndex(self):
  232. if self.wndInventory:
  233. return self.wndInventory.GetInventoryPageIndex()
  234. else:
  235. return -1
  236.  
  237.  
  238. def CloseDialog(self):
  239. wndMgr.OnceIgnoreMouseLeftButtonUpEvent()
  240.  
  241. if 0 != self.tooltipItem:
  242. self.tooltipItem.HideToolTip()
  243.  
  244. if self.closenotimer == 3:
  245. self.time_end = app.GetGlobalTimeStamp()
  246. self.close = True
  247. else:
  248. self.close = False
  249. self.Close()
  250.  
  251.  
  252. if app.WJ_ENABLE_TRADABLE_ICON:
  253. def BINARY_AddItemToExchange(self, inven_type, inven_pos, display_pos):
  254. if inven_type == player.INVENTORY:
  255. self.interface.CantTradableItemExchange(display_pos, inven_pos)
  256.  
  257. self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
  258. self.interface.SetOnTopWindow(player.ON_TOP_WND_NONE)
  259. self.interface.RefreshMarkInventoryBag()
  260.  
  261. def Close(self):
  262. #self.Owner_Number.LoadImage("")
  263. #self.Target_Number.LoadImage("")
  264. self.Hide()
  265.  
  266. if app.WJ_ENABLE_TRADABLE_ICON:
  267. for exchangePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items():
  268. if itemInvenPage == self.wndInventory.GetInventoryPage():
  269. self.wndInventory.wndItem.SetCanMouseEventSlot(itemSlotPos)
  270.  
  271. self.lockedItems = {i:(-1,-1) for i in range(exchange.EXCHANGE_ITEM_MAX_NUM)}
  272. self.interface.SetOnTopWindow(player.ON_TOP_WND_NONE)
  273. self.interface.RefreshMarkInventoryBag()
  274.  
  275. if app.WJ_ENABLE_TRADABLE_ICON:
  276. def CantTradableItem(self, destSlotIndex, srcSlotIndex):
  277. if True == exchange.GetAcceptFromTarget():
  278. return
  279.  
  280. itemInvenPage = srcSlotIndex / player.INVENTORY_PAGE_SIZE
  281. localSlotPos = srcSlotIndex - (itemInvenPage * player.INVENTORY_PAGE_SIZE)
  282. self.lockedItems[destSlotIndex] = (itemInvenPage, localSlotPos)
  283.  
  284. if self.wndInventory.GetInventoryPage() == itemInvenPage and self.IsShow():
  285. self.wndInventory.wndItem.SetCantMouseEventSlot(localSlotPos)
  286.  
  287. def RefreshLockedSlot(self):
  288. if self.wndInventory:
  289. for exchangePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items():
  290. if self.wndInventory.GetInventoryPage() == itemInvenPage:
  291. self.wndInventory.wndItem.SetCantMouseEventSlot(itemSlotPos)
  292.  
  293. self.wndInventory.wndItem.RefreshSlot()
  294.  
  295. def BindInterface(self, interface):
  296. self.interface = interface
  297.  
  298. def SetInven(self, wndInventory):
  299. self.wndInventory = proxy(wndInventory)
  300.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement