Guest User

Untitled

a guest
Oct 18th, 2017
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.05 KB | None | 0 0
  1. import player
  2. import exchange
  3. import net
  4. import localeInfo
  5. import chat
  6. import item
  7.  
  8. import ui
  9. import mouseModule
  10. import uiPickMoney
  11. import wndMgr
  12.  
  13. ###################################################################################################
  14. ## Exchange
  15. class ExchangeDialog(ui.ScriptWindow):
  16.  
  17. def __init__(self):
  18. ui.ScriptWindow.__init__(self)
  19. self.TitleName = 0
  20. self.tooltipItem = 0
  21. self.xStart = 0
  22. self.yStart = 0
  23.  
  24. def __del__(self):
  25. ui.ScriptWindow.__del__(self)
  26.  
  27. def LoadDialog(self):
  28. PythonScriptLoader = ui.PythonScriptLoader()
  29. PythonScriptLoader.LoadScriptFile(self, "UIScript/exchangedialog.py")
  30.  
  31. ## Owner
  32. self.OwnerSlot = self.GetChild("Owner_Slot")
  33. self.OwnerSlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectOwnerEmptySlot))
  34. self.OwnerSlot.SetSelectItemSlotEvent(ui.__mem_func__(self.SelectOwnerItemSlot))
  35. self.OwnerSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInOwnerItem))
  36. self.OwnerSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  37. self.OwnerMoney = self.GetChild("Owner_Money_Value")
  38. self.OwnerAcceptLight = self.GetChild("Owner_Accept_Light")
  39. self.OwnerAcceptLight.Disable()
  40. self.OwnerMoneyButton = self.GetChild("Owner_Money")
  41. self.OwnerMoneyButton.SetEvent(ui.__mem_func__(self.OpenPickMoneyDialog))
  42.  
  43. ## Target
  44. self.TargetSlot = self.GetChild("Target_Slot")
  45. self.TargetSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInTargetItem))
  46. self.TargetSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  47. self.TargetMoney = self.GetChild("Target_Money_Value")
  48. self.TargetAcceptLight = self.GetChild("Target_Accept_Light")
  49. self.TargetAcceptLight.Disable()
  50.  
  51. ## PickMoneyDialog
  52. dlgPickMoney = uiPickMoney.PickMoneyDialog()
  53. dlgPickMoney.LoadDialog()
  54. dlgPickMoney.SetAcceptEvent(ui.__mem_func__(self.OnPickMoney))
  55. dlgPickMoney.SetTitleName(localeInfo.EXCHANGE_MONEY)
  56. dlgPickMoney.SetMax(10)
  57. dlgPickMoney.Hide()
  58. self.dlgPickMoney = dlgPickMoney
  59.  
  60. ## Button
  61. self.AcceptButton = self.GetChild("Owner_Accept_Button")
  62. self.AcceptButton.SetToggleDownEvent(ui.__mem_func__(self.AcceptExchange))
  63.  
  64. self.TitleName = self.GetChild("TitleName")
  65. self.GetChild("TitleBar").SetCloseEvent(net.SendExchangeExitPacket)
  66.  
  67. def Destroy(self):
  68. print "---------------------------------------------------------------------------- DESTROY EXCHANGE"
  69. self.ClearDictionary()
  70. self.dlgPickMoney.Destroy()
  71. self.dlgPickMoney = 0
  72. self.OwnerSlot = 0
  73. self.OwnerMoney = 0
  74. self.OwnerAcceptLight = 0
  75. self.OwnerMoneyButton = 0
  76. self.TargetSlot = 0
  77. self.TargetMoney = 0
  78. self.TargetAcceptLight = 0
  79. self.TitleName = 0
  80. self.AcceptButton = 0
  81. self.tooltipItem = 0
  82.  
  83. def OpenDialog(self):
  84. self.TitleName.SetText(localeInfo.EXCHANGE_TITLE % (exchange.GetNameFromTarget()))
  85. self.AcceptButton.Enable()
  86. self.AcceptButton.SetUp()
  87. self.Show()
  88.  
  89. (self.xStart, self.yStart, z) = player.GetMainCharacterPosition()
  90.  
  91. def CloseDialog(self):
  92. wndMgr.OnceIgnoreMouseLeftButtonUpEvent()
  93.  
  94. if 0 != self.tooltipItem:
  95. self.tooltipItem.HideToolTip()
  96.  
  97. self.dlgPickMoney.Close()
  98. self.Hide()
  99.  
  100. def SetItemToolTip(self, tooltipItem):
  101. self.tooltipItem = tooltipItem
  102.  
  103. def OpenPickMoneyDialog(self):
  104.  
  105. if exchange.GetElkFromSelf() > 0:
  106. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANT_EDIT_MONEY)
  107. return
  108.  
  109. self.dlgPickMoney.Open(player.GetElk())
  110.  
  111. def OnPickMoney(self, money):
  112. net.SendExchangeElkAddPacket(money)
  113.  
  114. def AcceptExchange(self):
  115. net.SendExchangeAcceptPacket()
  116. self.AcceptButton.Disable()
  117.  
  118. def SelectOwnerEmptySlot(self, SlotIndex):
  119.  
  120. if FALSE == mouseModule.mouseController.isAttached():
  121. return
  122.  
  123. if mouseModule.mouseController.IsAttachedMoney():
  124. net.SendExchangeElkAddPacket(mouseModule.mouseController.GetAttachedMoneyAmount())
  125. else:
  126. attachedSlotType = mouseModule.mouseController.GetAttachedType()
  127. if (player.SLOT_TYPE_INVENTORY == attachedSlotType
  128. or player.SLOT_TYPE_DRAGON_SOUL_INVENTORY == attachedSlotType):
  129.  
  130. attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
  131. SrcSlotNumber = mouseModule.mouseController.GetAttachedSlotNumber()
  132. DstSlotNumber = SlotIndex
  133.  
  134. itemID = player.GetItemIndex(attachedInvenType, SrcSlotNumber)
  135. item.SelectItem(itemID)
  136.  
  137. if item.IsAntiFlag(item.ANTIFLAG_GIVE):
  138. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.EXCHANGE_CANNOT_GIVE)
  139. mouseModule.mouseController.DeattachObject()
  140. return
  141.  
  142. net.SendExchangeItemAddPacket(attachedInvenType, SrcSlotNumber, DstSlotNumber)
  143.  
  144. mouseModule.mouseController.DeattachObject()
  145.  
  146. def SelectOwnerItemSlot(self, SlotIndex):
  147.  
  148. if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex():
  149.  
  150. money = mouseModule.mouseController.GetAttachedItemCount()
  151. net.SendExchangeElkAddPacket(money)
  152.  
  153. def RefreshOwnerSlot(self):
  154. for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM):
  155. itemIndex = exchange.GetItemVnumFromSelf(i)
  156. itemCount = exchange.GetItemCountFromSelf(i)
  157. if 1 == itemCount:
  158. itemCount = 0
  159. self.OwnerSlot.SetItemSlot(i, itemIndex, itemCount)
  160. self.OwnerSlot.RefreshSlot()
  161.  
  162. def RefreshTargetSlot(self):
  163. for i in xrange(exchange.EXCHANGE_ITEM_MAX_NUM):
  164. itemIndex = exchange.GetItemVnumFromTarget(i)
  165. itemCount = exchange.GetItemCountFromTarget(i)
  166. if 1 == itemCount:
  167. itemCount = 0
  168. self.TargetSlot.SetItemSlot(i, itemIndex, itemCount)
  169. self.TargetSlot.RefreshSlot()
  170.  
  171. def Refresh(self):
  172.  
  173. self.RefreshOwnerSlot()
  174. self.RefreshTargetSlot()
  175.  
  176. #Adaugare (.) intre cifre (negot) - Inceput
  177. self.OwnerMoney.SetText(str(('.'.join([ i-3<0 and str(exchange.GetElkFromSelf())[:i] or str(exchange.GetElkFromSelf())[i-3:i] for i in range(len(str(exchange.GetElkFromSelf()))%3, len(str(exchange.GetElkFromSelf()))+1, 3) if i ]))))
  178. self.TargetMoney.SetText(str(('.'.join([ i-3<0 and str(exchange.GetElkFromTarget())[:i] or str(exchange.GetElkFromTarget())[i-3:i] for i in range(len(str(exchange.GetElkFromTarget()))%3, len(str(exchange.GetElkFromTarget()))+1, 3) if i ]))))
  179.  
  180. if TRUE == exchange.GetAcceptFromSelf():
  181. self.OwnerAcceptLight.Down()
  182. else:
  183. self.AcceptButton.Enable()
  184. self.AcceptButton.SetUp()
  185. self.OwnerAcceptLight.SetUp()
  186.  
  187. if TRUE == exchange.GetAcceptFromTarget():
  188. self.TargetAcceptLight.Down()
  189. else:
  190. self.TargetAcceptLight.SetUp()
  191.  
  192. def OverInOwnerItem(self, slotIndex):
  193.  
  194. if 0 != self.tooltipItem:
  195. self.tooltipItem.SetExchangeOwnerItem(slotIndex)
  196.  
  197. def OverInTargetItem(self, slotIndex):
  198.  
  199. if 0 != self.tooltipItem:
  200. self.tooltipItem.SetExchangeTargetItem(slotIndex)
  201.  
  202. def OverOutItem(self):
  203.  
  204. if 0 != self.tooltipItem:
  205. self.tooltipItem.HideToolTip()
  206.  
  207. def OnTop(self):
  208. self.tooltipItem.SetTop()
  209.  
  210. def OnUpdate(self):
  211.  
  212. USE_EXCHANGE_LIMIT_RANGE = 1000
  213.  
  214. (x, y, z) = player.GetMainCharacterPosition()
  215. if abs(x - self.xStart) > USE_EXCHANGE_LIMIT_RANGE or abs(y - self.yStart) > USE_EXCHANGE_LIMIT_RANGE:
  216. (self.xStart, self.yStart, z) = player.GetMainCharacterPosition()
  217. net.SendExchangeExitPacket()
Advertisement
Add Comment
Please, Sign In to add comment