Guest User

offlineshop

a guest
Aug 5th, 2022
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.65 KB | None | 0 0
  1. import net
  2. import player
  3. import item
  4. import snd
  5. import shop
  6. import wndMgr
  7. import app
  8. import chat
  9. import chr
  10.  
  11. import ui
  12. import uiCommon
  13. import uiToolTip
  14. import mouseModule
  15. import localeInfo
  16. import constInfo
  17.  
  18. g_isEditingOfflineShop = False
  19.  
  20. def IsEditingOfflineShop():
  21. global g_isEditingOfflineShop
  22. if (g_isEditingOfflineShop):
  23. return True
  24. else:
  25. return False
  26.  
  27. ###################################################################################################
  28. ## Offline Shop Admin Panel
  29. class OfflineShopAdminPanelWindow(ui.ScriptWindow):
  30. def __init__(self):
  31. ui.ScriptWindow.__init__(self)
  32. self.isLoaded = 0
  33. self.wndOfflineShopAddItem = None
  34. self.wndOfflineShopRemoveItem = None
  35. self.wndOfflineShopChangePrice = None
  36. self.wndOfflineShopChangeTime = None
  37. self.wndOfflineShopMyBank = None
  38. self.wndOfflineShopGetBack = None
  39. self.closeQuestionDialog = None
  40. self.LoadWindow()
  41. self.LoadOtherWindows()
  42.  
  43. def __del__(self):
  44. ui.ScriptWindow.__del__(self)
  45.  
  46. def Show(self):
  47. self.SetTop()
  48. self.LoadWindow()
  49.  
  50. ui.ScriptWindow.Show(self)
  51.  
  52. def LoadWindow(self):
  53. if (self.isLoaded == 1):
  54. return
  55.  
  56. self.isLoaded = 1
  57. try:
  58. PythonScriptLoader = ui.PythonScriptLoader()
  59. PythonScriptLoader.LoadScriptFile(self, "UIScript/OfflineShopAdminPanel.py")
  60. except:
  61. import exception
  62. exception.Abort("OfflineShopAdminPanelWindow.LoadWindow.LoadObject")
  63.  
  64. try:
  65. self.board = self.GetChild("Board")
  66. self.openOfflineShopButton = self.GetChild("OpenOfflineShopButton")
  67. self.closeOfflineShopButton = self.GetChild("CloseOfflineShopButton")
  68. self.addItemButton = self.GetChild("AddItemButton")
  69. self.removeItemButton = self.GetChild("RemoveItemButton")
  70. self.changeTimeButton = self.GetChild("ChangeTimeButton")
  71. self.changePriceButton = self.GetChild("ChangePriceButton")
  72. self.myBankButton = self.GetChild("MyBankButton")
  73. self.btnGetBack = self.GetChild("GetBackButton")
  74. except:
  75. import exception
  76. exception.Abort("OfflineShopAdminPanelWindow.LoadWindow.BindObject")
  77.  
  78. self.board.SetCloseEvent(ui.__mem_func__(self.Close))
  79. self.openOfflineShopButton.SetEvent(ui.__mem_func__(self.ClickOpenOfflineShopButton))
  80. self.closeOfflineShopButton.SetEvent(ui.__mem_func__(self.ClickCloseOfflineShopButton))
  81. self.addItemButton.SetEvent(ui.__mem_func__(self.ClickAddItemButton))
  82. self.removeItemButton.SetEvent(ui.__mem_func__(self.ClickRemoveItemButton))
  83. self.changeTimeButton.SetEvent(ui.__mem_func__(self.ClickChangeTimeButton))
  84. self.changePriceButton.SetEvent(ui.__mem_func__(self.ClickChangePriceButton))
  85. self.myBankButton.SetEvent(ui.__mem_func__(self.ClickMyBankButton))
  86. self.btnGetBack.SetEvent(ui.__mem_func__(self.ClickGetBackButton))
  87.  
  88. net.SendRefreshOfflineShopMoney()
  89.  
  90. def LoadOtherWindows(self):
  91. # OFFLINE_SHOP_ADD_ITEM
  92. wndOfflineShopAddItem = OfflineShopAddItemWindow()
  93. self.wndOfflineShopAddItem = wndOfflineShopAddItem
  94. # END_OF_OFFLINE_SHOP_ADD_ITEM
  95.  
  96. # OFFLINE_SHOP_REMOVE_ITEM
  97. wndOfflineShopRemoveItem = OfflineShopRemoveItemWindow()
  98. self.wndOfflineShopRemoveItem = wndOfflineShopRemoveItem
  99. # END_OF_OFFLINE_SHOP_REMOVE_ITEM
  100.  
  101. # OFFLINE_SHOP_CHANGE_PRICE
  102. wndOfflineShopChangePrice = OfflineShopChangePriceWindow()
  103. self.wndOfflineShopChangePrice = wndOfflineShopChangePrice
  104. # END_OF_OFFLINE_SHOP_CHANGE_PRICE
  105.  
  106. # OFFLINE_SHOP_CHANGE_TIME
  107. wndOfflineShopChangeTime = OfflineShopChangeTimeWindow()
  108. self.wndOfflineShopChangeTime = wndOfflineShopChangeTime
  109. # END_OF_OFFLINE_SHOP_CHANGE_TIME
  110.  
  111. # OFFLINE_SHOP_MY_BANK
  112. wndOfflineShopMyBank = OfflineShopBankDialog()
  113. self.wndOfflineShopMyBank = wndOfflineShopMyBank
  114. # END_OF_OFFLINE_SHOP_MY_BANK
  115.  
  116. # OFFLINE_SHOP_GET_BACK
  117. wndOfflineShopGetBack = OfflineShopGetBackWindow()
  118. self.wndOfflineShopGetBack = wndOfflineShopGetBack
  119. # END_OF_OFFLINE_SHOP_GET_BACK
  120.  
  121. def ClickOpenOfflineShopButton(self):
  122. if (player.HasOfflineShop()):
  123. return
  124.  
  125. self.Close()
  126. net.SendChatPacket("/open_offlineshop")
  127. return True
  128.  
  129. def ClickCloseOfflineShopButton(self):
  130. if (not player.HasOfflineShop()):
  131. return
  132.  
  133. self.Close()
  134. closeQuestionDialog = uiCommon.QuestionDialog()
  135. closeQuestionDialog.SetText(localeInfo.DO_YOU_WANT_TO_CLOSE_OFFLINE_SHOP)
  136. closeQuestionDialog.SetAcceptEvent(lambda arg = True: self.AnswerCloseOfflineShop(arg))
  137. closeQuestionDialog.SetCancelEvent(lambda arg = False: self.AnswerCloseOfflineShop(arg))
  138. closeQuestionDialog.Open()
  139. self.closeQuestionDialog = closeQuestionDialog
  140.  
  141. def AnswerCloseOfflineShop(self, flag):
  142. if (flag):
  143. net.SendDestroyOfflineShop()
  144. shop.ClearOfflineShopStock()
  145. else:
  146. self.Show()
  147.  
  148. self.closeQuestionDialog = None
  149.  
  150. def ClickAddItemButton(self):
  151. if (not player.HasOfflineShop()):
  152. return
  153. self.Close()
  154. self.wndOfflineShopAddItem.SetTop()
  155. self.wndOfflineShopAddItem.Open(player.GetName() + "'s " + localeInfo.OFFLINE_SHOP)
  156. return True
  157.  
  158. def ClickRemoveItemButton(self):
  159. if (not player.HasOfflineShop()):
  160. return
  161. self.Close()
  162. self.wndOfflineShopRemoveItem.SetTop()
  163. self.wndOfflineShopRemoveItem.Open(player.GetName() + "'s " + localeInfo.OFFLINE_SHOP)
  164. return True
  165.  
  166. def ClickChangeTimeButton(self):
  167. if (not player.HasOfflineShop()):
  168. return
  169.  
  170. self.Close()
  171. self.wndOfflineShopChangeTime.SetTop()
  172. self.wndOfflineShopChangeTime.Show()
  173. return True
  174.  
  175. def ClickChangePriceButton(self):
  176. if (not player.HasOfflineShop()):
  177. return
  178.  
  179. self.Close()
  180. self.wndOfflineShopChangePrice.SetTop()
  181. self.wndOfflineShopChangePrice.Open(player.GetName() + "'s " + localeInfo.OFFLINE_SHOP)
  182. return True
  183.  
  184. def ClickMyBankButton(self):
  185. self.Close()
  186. self.wndOfflineShopMyBank.Open()
  187. return True
  188.  
  189. def ClickGetBackButton(self):
  190. if (player.HasOfflineShop()):
  191. return
  192.  
  193. self.Close()
  194. self.wndOfflineShopGetBack.SetTop()
  195. self.wndOfflineShopGetBack.Open(player.GetName() + "'s " + localeInfo.OFFLINE_SHOP)
  196. return True
  197.  
  198. def BindInterfaceClass(self, interface):
  199. self.interface = interface
  200.  
  201. def Destroy(self):
  202. self.ClearDictionary()
  203. self.interface = None
  204.  
  205. def Close(self):
  206. self.Hide()
  207.  
  208. def OnUpdate(self):
  209. net.SendOfflineShopCheck()
  210.  
  211. def OnPressEscapeKey(self):
  212. self.Close()
  213. return True
  214.  
  215. def OnPressExitKey(self):
  216. self.Close()
  217. return True
  218.  
  219. ###################################################################################################
  220. ## Offline Shop Add Item Window
  221. class OfflineShopAddItemWindow(ui.ScriptWindow):
  222. def __init__(self):
  223. ui.ScriptWindow.__init__(self)
  224. self.LoadWindow()
  225. self.tooltipItem = None
  226. self.priceInputBoard = None
  227. self.title = ""
  228.  
  229. def __del__(self):
  230. ui.ScriptWindow.__del__(self)
  231.  
  232. def Refresh(self):
  233. net.SendRefreshOfflineShop()
  234. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  235. itemCount = shop.GetOfflineShopItemCount(i)
  236. if (itemCount <= 1):
  237. itemCount
  238.  
  239. self.itemSlot.SetItemSlot(i, shop.GetOfflineShopItemID(i))
  240.  
  241. wndMgr.RefreshSlot(self.itemSlot.GetWindowHandle())
  242.  
  243. def SetItemData(self, pos, itemID, itemCount, itemPrice):
  244. shop.SetOfflineShopItemData(pos, itemID, itemCount, itemPrice)
  245.  
  246. def LoadWindow(self):
  247. try:
  248. pyScrLoader = ui.PythonScriptLoader()
  249. pyScrLoader.LoadScriptFile(self, "UIScript/OfflineShopBuilder.py")
  250. except:
  251. import exception
  252. exception.Abort("OfflineShopAddItemWindow.LoadWindow.LoadObject")
  253.  
  254. try:
  255. self.nameLine = self.GetChild("NameLine")
  256. self.itemSlot = self.GetChild("ItemSlot")
  257. self.btnOk = self.GetChild("OkButton")
  258. self.btnClose = self.GetChild("CloseButton")
  259. self.board = self.GetChild("Board")
  260. except:
  261. import exception
  262. exception.Abort("OfflineShopAddItemWindow.LoadWindow.BindObject")
  263.  
  264. self.btnOk.Hide()
  265. self.btnClose.Hide()
  266. self.board.SetCloseEvent(ui.__mem_func__(self.Close))
  267.  
  268. self.itemSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  269. self.itemSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  270. self.itemSlot.SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
  271.  
  272. # RESIZE OFFLINE SHOP ADD ITEM WINDOW
  273. self.board.SetSize(184, 326)
  274. self.SetSize(184, 326)
  275. # END OF RESIZE OFFLINE SHOP ADD ITEM WINDOW
  276.  
  277. def Destroy(self):
  278. self.ClearDictionary()
  279.  
  280. self.nameLine = None
  281. self.itemSlot = None
  282. self.btnOk = None
  283. self.btnClose = None
  284. self.board = None
  285.  
  286. def Open(self, title):
  287. self.title = title
  288.  
  289. if (len(title) > 25):
  290. self.title = title[:22] + "..."
  291.  
  292. self.tooltipItem = uiToolTip.ItemToolTip()
  293. self.tooltipItem.Hide()
  294. self.board.SetTitleName("Adauga obiecte in magazin")
  295. self.Refresh()
  296. self.SetTop()
  297. self.Show()
  298.  
  299. self.nameLine.SetText(title)
  300. global g_isEditingOfflineShop
  301. g_isEditingOfflineShop = True
  302.  
  303. def Close(self):
  304. global g_isEditingOfflineShop
  305. g_isEditingOfflineShop = False
  306.  
  307. self.title = ""
  308. self.Hide()
  309.  
  310. def OnPressEscapeKey(self):
  311. self.Close()
  312. return True
  313.  
  314. def OnPressExitKey(self):
  315. self.Close()
  316. return True
  317.  
  318. def SelectEmptySlot(self, slotIndex):
  319. try:
  320. if (constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1):
  321. return
  322.  
  323. if (mouseModule.mouseController.isAttached()):
  324. attachedSlotType = mouseModule.mouseController.GetAttachedType()
  325. attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  326. mouseModule.mouseController.DeattachObject()
  327.  
  328. if player.SLOT_TYPE_INVENTORY != attachedSlotType and player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedSlotType and\
  329. (player.SLOT_TYPE_INVENTORY != attachedSlotType and\
  330. player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedSlotType and\
  331. player.SLOT_TYPE_UPGRADE_INVENTORY != attachedSlotType and\
  332. player.SLOT_TYPE_BOOK_INVENTORY != attachedSlotType and\
  333. player.SLOT_TYPE_STONE_INVENTORY != attachedSlotType and app.ENABLE_SPECIAL_STORAGE):
  334. return
  335.  
  336. attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
  337. itemVnum = player.GetItemIndex(attachedInvenType, attachedSlotPos)
  338. item.SelectItem(itemVnum)
  339.  
  340. if (item.IsAntiFlag(item.ANTIFLAG_GIVE) or item.IsAntiFlag(item.ANTIFLAG_MYSHOP)):
  341. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OFFLINE_SHOP_CANNOT_SELL_ITEM)
  342. return
  343.  
  344. priceInputBoard = uiCommon.MoneyInputDialog()
  345. priceInputBoard.SetTitle(item.GetItemName() + "'s price")
  346. priceInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptInputPrice))
  347. priceInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputPrice))
  348. priceInputBoard.Open()
  349.  
  350. self.priceInputBoard = priceInputBoard
  351. self.priceInputBoard.bDisplayPos = slotIndex
  352. self.priceInputBoard.bPos = attachedSlotPos
  353. except Exception, e:
  354. import dbg
  355. dbg.TraceError("Exception : SelectEmptySlot, %s" %(e))
  356.  
  357. def AcceptInputPrice(self):
  358. if (not self.priceInputBoard):
  359. return True
  360.  
  361. text = self.priceInputBoard.GetText()
  362.  
  363. if (not text):
  364. return True
  365.  
  366. if (not text.isdigit()):
  367. return True
  368.  
  369. if (int(text) <= 0):
  370. return True
  371.  
  372. net.SendAddOfflineShopItem(self.priceInputBoard.bPos, self.priceInputBoard.bDisplayPos, int(self.priceInputBoard.GetText()))
  373. snd.PlaySound("sound/ui/drop.wav")
  374. self.Refresh()
  375. self.priceInputBoard = None
  376. return True
  377.  
  378. def CancelInputPrice(self):
  379. self.priceInputBoard = None
  380. return True
  381.  
  382. def SetItemToolTip(self, tooltipItem):
  383. self.tooltipItem = tooltipItem
  384.  
  385. def OverInItem(self, slotIndex):
  386. if (mouseModule.mouseController.isAttached()):
  387. return
  388.  
  389. if (self.tooltipItem != 0):
  390. self.tooltipItem.SetOfflineShopItem(slotIndex)
  391.  
  392. def OverOutItem(self):
  393. if (self.tooltipItem != 0):
  394. self.tooltipItem.HideToolTip()
  395.  
  396. def OnUpdate(self):
  397. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  398. itemCount = shop.GetOfflineShopItemCount(i)
  399. if (itemCount <= 1):
  400. itemCount
  401.  
  402. self.itemSlot.SetItemSlot(i, shop.GetOfflineShopItemID(i))
  403.  
  404. wndMgr.RefreshSlot(self.itemSlot.GetWindowHandle())
  405.  
  406.  
  407. ###################################################################################################
  408. ## Offline Shop Remove Item Window
  409. class OfflineShopRemoveItemWindow(ui.ScriptWindow):
  410. def __init__(self):
  411. ui.ScriptWindow.__init__(self)
  412. self.LoadWindow()
  413. self.tooltipItem = None
  414. self.questionDialog = None
  415. self.title = ""
  416.  
  417. def __del__(self):
  418. ui.ScriptWindow.__del__(self)
  419.  
  420. def Refresh(self):
  421. net.SendRefreshOfflineShop()
  422. iCount = 0
  423. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  424. if (shop.GetOfflineShopItemID(i) == -842150451):
  425. iCount = iCount + 1
  426.  
  427. if (iCount == shop.OFFLINE_SHOP_SLOT_COUNT):
  428. chat.AppendChat(chat.CHAT_TYPE_INFO, "Nu ai nimic in magazin in acest moment.")
  429. return
  430.  
  431. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  432. itemCount = shop.GetOfflineShopItemCount(i)
  433. if (itemCount <= 1):
  434. itemCount = 0
  435.  
  436. self.itemSlot.SetItemSlot(i, shop.GetOfflineShopItemID(i))
  437.  
  438. wndMgr.RefreshSlot(self.itemSlot.GetWindowHandle())
  439.  
  440. def SetItemData(self, pos, itemID, itemCount, itemPrice):
  441. shop.SetOfflineShopItemData(pos, itemID, itemCount, itemPrice)
  442.  
  443. def LoadWindow(self):
  444. try:
  445. pyScrLoader = ui.PythonScriptLoader()
  446. pyScrLoader.LoadScriptFile(self, "UIScript/OfflineShopBuilder.py")
  447. except:
  448. import exception
  449. exception.Abort("OfflineShopRemoveItemWindow.LoadWindow.LoadObject")
  450.  
  451. try:
  452. self.nameLine = self.GetChild("NameLine")
  453. self.itemSlot = self.GetChild("ItemSlot")
  454. self.btnOk = self.GetChild("OkButton")
  455. self.btnClose = self.GetChild("CloseButton")
  456. self.board = self.GetChild("Board")
  457. except:
  458. import exception
  459. exception.Abort("OfflineShopRemoveItemWindow.LoadWindow.BindObject")
  460.  
  461. self.btnOk.Hide()
  462. self.btnClose.Hide()
  463. self.board.SetCloseEvent(ui.__mem_func__(self.Close))
  464.  
  465. self.itemSlot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
  466. self.itemSlot.SAFE_SetButtonEvent("RIGHT", "EXIST", self.UnselectItemSlot)
  467. self.itemSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  468. self.itemSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  469.  
  470. # RESIZE OFFLINE SHOP REMOVE ITEM WINDOW
  471. self.board.SetSize(184, 326)
  472. self.SetSize(184, 326)
  473. # END OF RESIZE OFFLINE SHOP REMOVE ITEM WINDOW
  474.  
  475. def Destroy(self):
  476. self.ClearDictionary()
  477.  
  478. self.nameLine = None
  479. self.itemSlot = None
  480. self.btnOk = None
  481. self.btnClose = None
  482. self.board = None
  483.  
  484. def Open(self, title):
  485. self.title = title
  486.  
  487. if (len(title) > 25):
  488. self.title = title[:22] + "..."
  489.  
  490. self.tooltipItem = uiToolTip.ItemToolTip()
  491. self.tooltipItem.Hide()
  492. self.board.SetTitleName("Elimina obiecte din magazin")
  493. self.Refresh()
  494. self.SetTop()
  495. self.Show()
  496.  
  497. self.nameLine.SetText(title)
  498. global g_isEditingOfflineShop
  499. g_isEditingOfflineShop = True
  500.  
  501. def Close(self):
  502. global g_isEditingOfflineShop
  503. g_isEditingOfflineShop = False
  504.  
  505. if (self.questionDialog):
  506. self.questionDialog.Close()
  507. self.questionDialog = None
  508. constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)
  509.  
  510. self.title = ""
  511. self.Hide()
  512.  
  513. def OnPressEscapeKey(self):
  514. self.Close()
  515. return True
  516.  
  517. def OnPressExitKey(self):
  518. self.Close()
  519. return True
  520.  
  521. def UnselectItemSlot(self, selectedSlotPos):
  522. if (constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1):
  523. return
  524.  
  525. itemIndex = shop.GetOfflineShopItemID(selectedSlotPos)
  526. item.SelectItem(itemIndex)
  527. itemName = item.GetItemName()
  528.  
  529. questionDialog = uiCommon.QuestionDialog()
  530. questionDialog.SetText(localeInfo.DO_YOU_WANT_TO_REMOVE_ITEM % (itemName))
  531. questionDialog.SetAcceptEvent(lambda arg = True : self.AnswerRemoveItem(arg))
  532. questionDialog.SetCancelEvent(lambda arg = False : self.AnswerRemoveItem(arg))
  533. questionDialog.Open()
  534. questionDialog.pos = selectedSlotPos
  535. self.questionDialog = questionDialog
  536.  
  537. constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(1)
  538.  
  539. def AnswerRemoveItem(self, flag):
  540. if (flag):
  541. pos = self.questionDialog.pos
  542. net.SendRemoveOfflineShopItem(pos)
  543.  
  544. self.questionDialog.Close()
  545. self.questionDialog = None
  546. constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)
  547. self.Refresh()
  548.  
  549. def SetItemToolTip(self, tooltipItem):
  550. self.tooltipItem = tooltipItem
  551.  
  552. def OverInItem(self, slotIndex):
  553. if (mouseModule.mouseController.isAttached()):
  554. return
  555.  
  556. if (self.tooltipItem != 0):
  557. self.tooltipItem.SetOfflineShopItem(slotIndex)
  558.  
  559. def OverOutItem(self):
  560. if (self.tooltipItem != 0):
  561. self.tooltipItem.HideToolTip()
  562.  
  563. def OnUpdate(self):
  564. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  565. itemCount = shop.GetOfflineShopItemCount(i)
  566. if (itemCount <= 1):
  567. itemCount
  568.  
  569. self.itemSlot.SetItemSlot(i, shop.GetOfflineShopItemID(i))
  570.  
  571. wndMgr.RefreshSlot(self.itemSlot.GetWindowHandle())
  572.  
  573.  
  574. ###################################################################################################
  575. ## Offline Shop Bank Dialog
  576. class OfflineShopBankDialog(ui.ScriptWindow):
  577. def __init__(self):
  578. ui.ScriptWindow.__init__(self)
  579. self.updateTime = 0
  580. self.withdrawMoneyTime = 0
  581. self.LoadWindow()
  582.  
  583. def __del__(self):
  584. ui.ScriptWindow.__del__(self)
  585.  
  586. def LoadWindow(self):
  587. try:
  588. pyScrLoader = ui.PythonScriptLoader()
  589. pyScrLoader.LoadScriptFile(self, "UIScript/OfflineShop_BankDialog.py")
  590. except:
  591. import exception
  592. exception.Abort("OfflineShopBankDialog.LoadWindow.LoadScript")
  593.  
  594. try:
  595. self.Board = self.GetChild("Board")
  596. self.currentMoneyLine = self.GetChild("CurrentMoneyLine")
  597. self.requiredMoneyLine = self.GetChild("RequiredMoneyLine")
  598. self.WithdrawMoneyButton = self.GetChild("withdraw_button")
  599. self.CancelButton = self.GetChild("cancel_button")
  600. except:
  601. import exception
  602. exception.Abort("OfflineShopBankDialog.LoadWindow.BindObject")
  603.  
  604. self.Board.SetCloseEvent(ui.__mem_func__(self.Close))
  605. self.CancelButton.SetEvent(ui.__mem_func__(self.Close))
  606. self.WithdrawMoneyButton.SetEvent(ui.__mem_func__(self.WithdrawMoney))
  607.  
  608. def Close(self):
  609. self.currentMoneyLine.SetText("")
  610. self.requiredMoneyLine.SetText("")
  611. self.Hide()
  612.  
  613. def Open(self):
  614. self.SetTop()
  615.  
  616. self.currentMoneyLine.SetText(localeInfo.NumberToMoneyString(player.GetCurrentOfflineShopMoney()))
  617. self.requiredMoneyLine.SetText("0")
  618. self.Show()
  619.  
  620. def WithdrawMoney(self):
  621. try:
  622. currentMoney = player.GetCurrentOfflineShopMoney()
  623. requiredMoney = int(self.requiredMoneyLine.GetText())
  624.  
  625. if (requiredMoney > currentMoney):
  626. chat.AppendChat(chat.CHAT_TYPE_INFO, "Suma dorita trebuie sa fie mai mica sau egala cu suma detinuta in banca.")
  627. return
  628.  
  629. if (requiredMoney < 0):
  630. chat.AppendChat(chat.CHAT_TYPE_INFO, "Nu poti retrage acesti bani.")
  631. return
  632.  
  633. if (app.GetTime() < self.withdrawMoneyTime + 5):
  634. chat.AppendChat(chat.CHAT_TYPE_INFO, "Asteapta 5 secunde.")
  635. return
  636.  
  637. net.SendOfflineShopWithdrawMoney(requiredMoney)
  638. self.withdrawMoneyTime = app.GetTime()
  639. self.requiredMoneyLine.SetText("0")
  640. except ValueError:
  641. chat.AppendChat(chat.CHAT_TYPE_INFO, "Scrie un numar de bani.")
  642.  
  643. def OnUpdate(self):
  644. net.SendRefreshOfflineShopMoney()
  645. self.currentMoneyLine.SetText(localeInfo.NumberToMoneyString(player.GetCurrentOfflineShopMoney()))
  646.  
  647. ###################################################################################################
  648. ## Offline Shop Change Price
  649. class OfflineShopChangePriceWindow(ui.ScriptWindow):
  650. def __init__(self):
  651. ui.ScriptWindow.__init__(self)
  652. self.LoadWindow()
  653. self.tooltipItem = None
  654. self.priceInputBoard = None
  655. self.title = ""
  656.  
  657. def __del__(self):
  658. ui.ScriptWindow.__del__(self)
  659.  
  660. def Refresh(self):
  661. net.SendRefreshOfflineShop()
  662. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  663. itemCount = shop.GetOfflineShopItemCount(i)
  664. if (itemCount <= 1):
  665. itemCount = 0
  666.  
  667. self.itemSlot.SetItemSlot(i, shop.GetOfflineShopItemID(i))
  668.  
  669. wndMgr.RefreshSlot(self.itemSlot.GetWindowHandle())
  670.  
  671. def SetItemData(self, pos, itemID, itemCount, itemPrice):
  672. shop.SetOfflineShopItemData(pos, itemID, itemCount, itemPrice)
  673.  
  674. def LoadWindow(self):
  675. try:
  676. pyScrLoader = ui.PythonScriptLoader()
  677. pyScrLoader.LoadScriptFile(self, "UIScript/OfflineShopBuilder.py")
  678. except:
  679. import exception
  680. exception.Abort("OfflineShopChangePriceWindow.LoadWindow.LoadObject")
  681.  
  682. try:
  683. self.nameLine = self.GetChild("NameLine")
  684. self.itemSlot = self.GetChild("ItemSlot")
  685. self.board = self.GetChild("Board")
  686. self.btnOk = self.GetChild("OkButton")
  687. self.btnClose = self.GetChild("CloseButton")
  688. except:
  689. import exception
  690. exception.Abort("OfflineShopAddItemWindow.LoadWindow.BindObject")
  691.  
  692. self.btnOk.Hide()
  693. self.btnClose.Hide()
  694. self.itemSlot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
  695. self.itemSlot.SAFE_SetButtonEvent("RIGHT", "EXIST", self.UnselectItemSlot)
  696. self.itemSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  697. self.itemSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  698. self.board.SetCloseEvent(ui.__mem_func__(self.Close))
  699.  
  700. self.board.SetSize(184, 326)
  701. self.SetSize(184, 326)
  702.  
  703. def Destroy(self):
  704. self.ClearDictionary()
  705.  
  706. self.nameLine = None
  707. self.itemSlot = None
  708. self.board = None
  709. self.priceInputBoard = None
  710.  
  711. def Open(self, title):
  712. self.title = title
  713.  
  714. if (len(title) > 25):
  715. self.title = title[:22] + "..."
  716.  
  717. self.tooltipItem = uiToolTip.ItemToolTip()
  718. self.tooltipItem.Hide()
  719. self.board.SetTitleName("Schimba pretul")
  720. self.Refresh()
  721. self.Show()
  722.  
  723. self.nameLine.SetText(title)
  724. global g_isEditingOfflineShop
  725. g_isEditingOfflineShop = True
  726.  
  727. def Close(self):
  728. global g_isEditingOfflineShop
  729. g_isEditingOfflineShop = False
  730.  
  731. self.title = ""
  732. self.Hide()
  733.  
  734. def OnPressEscapeKey(self):
  735. self.Close()
  736. return True
  737.  
  738. def OnPressExitKey(self):
  739. self.Close()
  740. return True
  741.  
  742. def SetItemToolTip(self, tooltipItem):
  743. self.tooltipItem = tooltipItem
  744.  
  745. def UnselectItemSlot(self, selectedSlotPos):
  746. if (constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1):
  747. return
  748.  
  749. itemIndex = shop.GetOfflineShopItemID(selectedSlotPos)
  750. item.SelectItem(itemIndex)
  751. itemName = item.GetItemName()
  752.  
  753. priceInputBoard = uiCommon.MoneyInputDialog()
  754. priceInputBoard.SetTitle(itemName + "'s pret nou")
  755. priceInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptInputPrice))
  756. priceInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputPrice))
  757. priceInputBoard.Open()
  758. self.priceInputBoard = priceInputBoard
  759. self.priceInputBoard.pos = selectedSlotPos
  760.  
  761. def AcceptInputPrice(self):
  762. if (not self.priceInputBoard):
  763. return True
  764.  
  765. text = self.priceInputBoard.GetText()
  766. if (not text):
  767. return True
  768.  
  769. if (not text.isdigit()):
  770. return True
  771.  
  772. if (int(text) <= 0):
  773. return True
  774.  
  775. pos = self.priceInputBoard.pos
  776. price = int(self.priceInputBoard.GetText())
  777. net.SendChangePriceOfflineShopItem(pos, price)
  778. net.SendRefreshOfflineShop()
  779. self.priceInputBoard = None
  780. return True
  781.  
  782. def CancelInputPrice(self):
  783. self.priceInputBoard = None
  784. return True
  785.  
  786. def OverInItem(self, slotIndex):
  787. if (mouseModule.mouseController.isAttached()):
  788. return
  789.  
  790. if (self.tooltipItem != 0):
  791. self.tooltipItem.SetOfflineShopItem(slotIndex)
  792.  
  793. def OverOutItem(self):
  794. if (self.tooltipItem != 0):
  795. self.tooltipItem.HideToolTip()
  796.  
  797. def OnUpdate(self):
  798. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  799. itemCount = shop.GetOfflineShopItemCount(i)
  800. if (itemCount <= 1):
  801. itemCount
  802.  
  803. self.itemSlot.SetItemSlot(i, shop.GetOfflineShopItemID(i))
  804.  
  805. wndMgr.RefreshSlot(self.itemSlot.GetWindowHandle())
  806.  
  807.  
  808. ###################################################################################################
  809. ## Offline Shop Input
  810. class OfflineShopInputDialog(ui.ScriptWindow):
  811. def __init__(self):
  812. ui.ScriptWindow.__init__(self)
  813. self.hour = -1
  814. self.LoadWindow()
  815.  
  816. def __del__(self):
  817. ui.ScriptWindow.__del__(self)
  818.  
  819. def LoadWindow(self):
  820. try:
  821. PythonScriptLoader = ui.PythonScriptLoader()
  822. PythonScriptLoader.LoadScriptFile(self, "UIScript/OfflineShopInputDialog.py")
  823. except:
  824. import exception
  825. exception.Abort("OfflineShopInputDialog.LoadWindow.LoadObject")
  826.  
  827. try:
  828. self.acceptButton = self.GetChild("AgreeButton")
  829. self.cancelButton = self.GetChild("CancelButton")
  830. self.inputSlot = self.GetChild("InputSlot")
  831. self.inputValue = self.GetChild("InputValue")
  832.  
  833. self.hourDict = {
  834. 0 : self.GetChild("oneHour"),
  835. 1 : self.GetChild("twoHours"),
  836. 2 : self.GetChild("fourHours"),
  837. 3 : self.GetChild("unlimited"),
  838. }
  839. except:
  840. import exception
  841. exception.Abort("OfflineShopInputDialog.LoadWindow.BindObject")
  842.  
  843. for (tabKey, tabButton) in self.hourDict.items():
  844. tabButton.SetEvent(ui.__mem_func__(self.SelectHour), tabKey)
  845.  
  846. def Open(self):
  847. self.inputValue.SetFocus()
  848. self.SetTop()
  849. self.Show()
  850.  
  851. def Close(self):
  852. self.ClearDictionary()
  853. self.acceptButton = None
  854. self.cancelButton = None
  855. self.inputSlot = None
  856. self.inputValue = None
  857. self.Hide()
  858.  
  859. def SelectHour(self, hour):
  860. if (self.hour == hour):
  861. return
  862.  
  863. self.hour = hour
  864. for (tabKey, tabButton) in self.hourDict.items():
  865. if (tabKey != hour):
  866. tabButton.SetUp()
  867.  
  868. self.hourDict[self.hour].Down()
  869.  
  870. def SetAcceptEvent(self, event):
  871. self.acceptButton.SetEvent(event)
  872. self.inputValue.OnIMEReturn = event
  873.  
  874. def SetCancelEvent(self, event):
  875. self.cancelButton.SetEvent(event)
  876. self.inputValue.OnPressEscapeKey = event
  877.  
  878. def GetTitle(self):
  879. return self.inputValue.GetText()
  880.  
  881. def GetTime(self):
  882. return self.hour + 1
  883.  
  884. ###################################################################################################
  885. ## Offline Shop Change Time
  886. class OfflineShopChangeTimeWindow(ui.ScriptWindow):
  887. def __init__(self):
  888. ui.ScriptWindow.__init__(self)
  889. self.hour = -1
  890. self.isLoaded = 0
  891. self.LoadWindow()
  892.  
  893. def __del__(self):
  894. ui.ScriptWindow.__del__(self)
  895.  
  896. def LoadWindow(self):
  897. if (self.isLoaded == 1):
  898. return
  899.  
  900. self.isLoaded = 1
  901. try:
  902. PythonScriptLoader = ui.PythonScriptLoader()
  903. PythonScriptLoader.LoadScriptFile(self, "UIScript/OfflineShopChangeTimeDialog.py")
  904. except:
  905. import exception
  906. exception.Abort("OfflineShopChangeTimeWindow.LoadWindow.LoadObject")
  907.  
  908. try:
  909. self.board = self.GetChild("Board")
  910. self.agreeButton = self.GetChild("AgreeButton")
  911. self.cancelButton = self.GetChild("CancelButton")
  912. self.hourDict = {
  913. 1 : self.GetChild("oneHour"),
  914. 2 : self.GetChild("twoHours"),
  915. 3 : self.GetChild("fourHours"),
  916. 4 : self.GetChild("unlimited"),
  917. }
  918. except:
  919. import exception
  920. exception.Abort("OfflineShopChangeTimeWindow.LoadWindow.BindObject")
  921.  
  922. self.board.SetCloseEvent(ui.__mem_func__(self.Close))
  923. self.cancelButton.SetEvent(ui.__mem_func__(self.Close))
  924. self.agreeButton.SetEvent(ui.__mem_func__(self.ClickAgree))
  925. for (tabKey, tabButton) in self.hourDict.items():
  926. tabButton.SetEvent(ui.__mem_func__(self.SelectHour), tabKey)
  927.  
  928. # Default hour for offline shop.
  929. self.SelectHour(1)
  930.  
  931. def Destroy(self):
  932. self.ClearDictionary()
  933. self.hourDict = {}
  934. self.hour = -1
  935.  
  936. def Close(self):
  937. self.Hide()
  938.  
  939. def OnPressEscapeKey(self):
  940. self.Close()
  941. return True
  942.  
  943. def OnPressExitKey(self):
  944. self.Close()
  945. return True
  946.  
  947. def SelectHour(self, hour):
  948. self.hour = hour
  949. for (tabKey, tabButton) in self.hourDict.items():
  950. if (tabKey != hour):
  951. tabButton.SetUp()
  952.  
  953. self.hourDict[self.hour].Down()
  954.  
  955. def ClickAgree(self):
  956. if (self.hour < 0):
  957. return True
  958.  
  959. self.Close()
  960. net.SendChangeOfflineShopTime(self.hour)
  961.  
  962. ###################################################################################################
  963. ## Offline Shop
  964. class OfflineShopDialog(ui.ScriptWindow):
  965. def __init__(self):
  966. ui.ScriptWindow.__init__(self)
  967. self.tooltipItem = 0
  968. self.xShopStart = 0
  969. self.yShopStart = 0
  970. self.questionDialog = None
  971. self.popup = None
  972. self.itemBuyQuestionDialog = None
  973.  
  974. def __del__(self):
  975. ui.ScriptWindow.__del__(self)
  976.  
  977. def Refresh(self):
  978. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  979. itemCount = shop.GetOfflineShopItemCount(i)
  980. if (itemCount <= 1):
  981. itemCount = 0
  982. self.itemSlotWindow.SetItemSlot(i, shop.GetOfflineShopItemID(i), itemCount)
  983.  
  984. wndMgr.RefreshSlot(self.itemSlotWindow.GetWindowHandle())
  985.  
  986. def LoadDialog(self):
  987. try:
  988. pyScrLoader = ui.PythonScriptLoader()
  989. pyScrLoader.LoadScriptFile(self, "UIScript/OfflineShopDialog.py")
  990. except:
  991. import exception
  992. exception.Abort("OfflineShopDialog.LoadDialog.LoadObject")
  993.  
  994. try:
  995. self.itemSlotWindow = self.GetChild("ItemSlot")
  996. self.btnBuy = self.GetChild("BuyButton")
  997. self.titleBar = self.GetChild("TitleBar")
  998. self.titleName = self.GetChild("TitleName")
  999. except:
  1000. import exception
  1001. exception.Abort("OfflineShopDialog.LoadDialog.BindObject")
  1002.  
  1003. self.itemSlotWindow.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
  1004. self.itemSlotWindow.SAFE_SetButtonEvent("LEFT", "EXIST", self.SelectItemSlot)
  1005. self.itemSlotWindow.SAFE_SetButtonEvent("RIGHT", "EXIST", self.UnselectItemSlot)
  1006.  
  1007. self.itemSlotWindow.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  1008. self.itemSlotWindow.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  1009.  
  1010. self.btnBuy.SetToggleUpEvent(ui.__mem_func__(self.CancelShopping))
  1011. self.btnBuy.SetToggleDownEvent(ui.__mem_func__(self.OnBuy))
  1012.  
  1013. self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
  1014.  
  1015. def Destroy(self):
  1016. self.Close()
  1017. self.ClearDictionary()
  1018.  
  1019. self.tooltipItem = 0
  1020. self.itemSlotWindow = 0
  1021. self.btnBuy = 0
  1022. self.titleBar = 0
  1023. self.questionDialog = None
  1024. self.popup = None
  1025.  
  1026. def Open(self, vid):
  1027. self.Refresh()
  1028. self.SetTop()
  1029. self.Show()
  1030.  
  1031. # Set Title Name
  1032. self.titleName.SetText(chr.GetNameByVID(vid))
  1033.  
  1034. (self.xShopStart, self.yShopStart, z) = player.GetMainCharacterPosition()
  1035.  
  1036. def Close(self):
  1037. if (self.itemBuyQuestionDialog):
  1038. self.itemBuyQuestionDialog.Close()
  1039. self.itemBuyQuestionDialog = None
  1040. constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)
  1041.  
  1042. if (self.questionDialog):
  1043. self.OnCloseQuestionDialog()
  1044.  
  1045. shop.Close()
  1046. net.SendOfflineShopEndPacket()
  1047. self.CancelShopping()
  1048. self.tooltipItem.HideToolTip()
  1049. self.Hide()
  1050.  
  1051. def OnPressEscapeKey(self):
  1052. self.Close()
  1053. return True
  1054.  
  1055. def OnPressExitKey(self):
  1056. self.Close()
  1057. return True
  1058.  
  1059. def OnBuy(self):
  1060. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OFFLINE_SHOP_WARNING1)
  1061. chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OFFLINE_SHOP_WARNING2)
  1062. app.SetCursor(app.BUY)
  1063.  
  1064. def CancelShopping(self):
  1065. self.btnBuy.SetUp()
  1066. app.SetCursor(app.NORMAL)
  1067.  
  1068. def OnCloseQuestionDialog(self):
  1069. if (not self.questionDialog):
  1070. return
  1071.  
  1072. self.questionDialog.Close()
  1073. self.questionDialog = None
  1074. constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)
  1075.  
  1076. def UnselectItemSlot(self, selectedSlotPos):
  1077. if (constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1):
  1078. return
  1079.  
  1080. self.AskBuyItem(selectedSlotPos)
  1081.  
  1082. def SelectItemSlot(self, selectedSlotPos):
  1083. if (constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1):
  1084. return
  1085.  
  1086. isAttached = mouseModule.mouseController.isAttached()
  1087. if (not isAttached):
  1088. curCursorNum = app.GetCursor()
  1089. if (app.BUY == curCursorNum):
  1090. net.SendOfflineShopBuyPacket(selectedSlotPos)
  1091. else:
  1092. selectedItemID = shop.GetOfflineShopItemID(selectedSlotPos)
  1093. itemCount = shop.GetOfflineShopItemCount(selectedSlotPos)
  1094.  
  1095. type = player.SLOT_TYPE_OFFLINE_SHOP
  1096. mouseModule.mouseController.AttachObject(self, type, selectedSlotPos, selectedItemID, itemCount)
  1097. mouseModule.mouseController.SetCallBack("INVENTORY", ui.__mem_func__(self.DropToInventory))
  1098. snd.PlaySound("sound/ui/pick.wav")
  1099.  
  1100. def DropToInventory(self):
  1101. attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  1102. self.AskBuyItem(attachedSlotPos)
  1103.  
  1104. def AskBuyItem(self, slotPos):
  1105. itemIndex = shop.GetOfflineShopItemID(slotPos)
  1106. itemPrice = shop.GetOfflineShopItemPrice(slotPos)
  1107. itemCount = shop.GetOfflineShopItemCount(slotPos)
  1108.  
  1109. item.SelectItem(itemIndex)
  1110. itemName = item.GetItemName()
  1111.  
  1112. itemBuyQuestionDialog = uiCommon.QuestionDialog()
  1113. itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM(itemName, itemCount, localeInfo.NumberToMoneyString(itemPrice)))
  1114. itemBuyQuestionDialog.SetAcceptEvent(lambda arg=True: self.AnswerBuyItem(arg))
  1115. itemBuyQuestionDialog.SetCancelEvent(lambda arg=False: self.AnswerBuyItem(arg))
  1116. itemBuyQuestionDialog.Open()
  1117. itemBuyQuestionDialog.pos = slotPos
  1118. self.itemBuyQuestionDialog = itemBuyQuestionDialog
  1119.  
  1120. constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(1)
  1121.  
  1122. def AnswerBuyItem(self, flag):
  1123. if (flag):
  1124. pos = self.itemBuyQuestionDialog.pos
  1125. net.SendOfflineShopBuyPacket(pos)
  1126.  
  1127. self.itemBuyQuestionDialog.Close()
  1128. self.itemBuyQuestionDialog = None
  1129.  
  1130. constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)
  1131.  
  1132. def SetItemToolTip(self, tooltipItem):
  1133. self.tooltipItem = tooltipItem
  1134.  
  1135. def OverInItem(self, slotIndex):
  1136. if (mouseModule.mouseController.isAttached()):
  1137. return
  1138.  
  1139. if (self.tooltipItem != 0):
  1140. self.tooltipItem.SetOfflineShopItem(slotIndex)
  1141.  
  1142. def OverOutItem(self):
  1143. if (self.tooltipItem != 0):
  1144. self.tooltipItem.HideToolTip()
  1145.  
  1146. def OnUpdate(self):
  1147. USE_SHOP_LIMIT_RANGE = 1500
  1148. (x, y, z) = player.GetMainCharacterPosition()
  1149. if abs(x - self.xShopStart) > USE_SHOP_LIMIT_RANGE or abs(y - self.yShopStart) > USE_SHOP_LIMIT_RANGE:
  1150. self.Close()
  1151.  
  1152.  
  1153. ###################################################################################################
  1154. ## Offline Shop Remove Item Window
  1155. class OfflineShopGetBackWindow(ui.ScriptWindow):
  1156. def __init__(self):
  1157. ui.ScriptWindow.__init__(self)
  1158. self.LoadWindow()
  1159. self.tooltipItem = None
  1160. self.questionDialog = None
  1161. self.title = ""
  1162.  
  1163. def __del__(self):
  1164. ui.ScriptWindow.__del__(self)
  1165.  
  1166. def Refresh(self):
  1167. net.SendRefreshUnsoldItems()
  1168. iCount = 0
  1169. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  1170. if (shop.GetOfflineShopItemID(i) == -842150451):
  1171. iCount = iCount + 1
  1172.  
  1173. if (iCount == shop.OFFLINE_SHOP_SLOT_COUNT):
  1174. chat.AppendChat(chat.CHAT_TYPE_INFO, "Nu ai nimic in magazin in acest moment.")
  1175. return
  1176.  
  1177. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  1178. itemCount = shop.GetOfflineShopItemCount(i)
  1179. if (itemCount <= 1):
  1180. itemCount = 0
  1181.  
  1182. self.itemSlot.SetItemSlot(i, shop.GetOfflineShopItemID(i))
  1183.  
  1184. wndMgr.RefreshSlot(self.itemSlot.GetWindowHandle())
  1185.  
  1186. def SetItemData(self, pos, itemID, itemCount, itemPrice):
  1187. shop.SetOfflineShopItemData(pos, itemID, itemCount, itemPrice)
  1188.  
  1189. def LoadWindow(self):
  1190. try:
  1191. pyScrLoader = ui.PythonScriptLoader()
  1192. pyScrLoader.LoadScriptFile(self, "UIScript/OfflineShopBuilder.py")
  1193. except:
  1194. import exception
  1195. exception.Abort("OfflineShopRemoveItemWindow.LoadWindow.LoadObject")
  1196.  
  1197. try:
  1198. self.nameLine = self.GetChild("NameLine")
  1199. self.itemSlot = self.GetChild("ItemSlot")
  1200. self.btnOk = self.GetChild("OkButton")
  1201. self.btnClose = self.GetChild("CloseButton")
  1202. self.board = self.GetChild("Board")
  1203. except:
  1204. import exception
  1205. exception.Abort("OfflineShopRemoveItemWindow.LoadWindow.BindObject")
  1206.  
  1207. self.btnOk.Hide()
  1208. self.btnClose.Hide()
  1209. self.board.SetCloseEvent(ui.__mem_func__(self.Close))
  1210.  
  1211. self.itemSlot.SetSlotStyle(wndMgr.SLOT_STYLE_NONE)
  1212. self.itemSlot.SAFE_SetButtonEvent("RIGHT", "EXIST", self.UnselectItemSlot)
  1213. self.itemSlot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  1214. self.itemSlot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  1215.  
  1216. # RESIZE OFFLINE SHOP REMOVE ITEM WINDOW
  1217. self.board.SetSize(184, 326)
  1218. self.SetSize(184, 326)
  1219. # END OF RESIZE OFFLINE SHOP REMOVE ITEM WINDOW
  1220.  
  1221. def Destroy(self):
  1222. self.ClearDictionary()
  1223.  
  1224. self.nameLine = None
  1225. self.itemSlot = None
  1226. self.btnOk = None
  1227. self.btnClose = None
  1228. self.board = None
  1229.  
  1230. def Open(self, title):
  1231. self.title = title
  1232.  
  1233. if (len(title) > 25):
  1234. self.title = title[:22] + "..."
  1235.  
  1236. self.tooltipItem = uiToolTip.ItemToolTip()
  1237. self.tooltipItem.Hide()
  1238. self.board.SetTitleName("Obiecte nevandute")
  1239. self.Refresh()
  1240. self.SetTop()
  1241. self.Show()
  1242.  
  1243. self.nameLine.SetText(title)
  1244. global g_isEditingOfflineShop
  1245. g_isEditingOfflineShop = True
  1246.  
  1247. def Close(self):
  1248. global g_isEditingOfflineShop
  1249. g_isEditingOfflineShop = False
  1250.  
  1251. if (self.questionDialog):
  1252. self.questionDialog.Close()
  1253. self.questionDialog = None
  1254. constInfo.SET_ITEM_DROP_QUESTION_DIALOG_STATUS(0)
  1255.  
  1256. self.title = ""
  1257. self.Hide()
  1258.  
  1259. def OnPressEscapeKey(self):
  1260. self.Close()
  1261. return True
  1262.  
  1263. def OnPressExitKey(self):
  1264. self.Close()
  1265. return True
  1266.  
  1267. def UnselectItemSlot(self, selectedSlotPos):
  1268. if (constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1):
  1269. return
  1270.  
  1271. net.SendOfflineShopTakeItem(selectedSlotPos)
  1272. net.SendRefreshUnsoldItems();
  1273.  
  1274. def SetItemToolTip(self, tooltipItem):
  1275. self.tooltipItem = tooltipItem
  1276.  
  1277. def OverInItem(self, slotIndex):
  1278. if (mouseModule.mouseController.isAttached()):
  1279. return
  1280.  
  1281. if (self.tooltipItem != 0):
  1282. self.tooltipItem.SetOfflineShopItem(slotIndex)
  1283.  
  1284. def OverOutItem(self):
  1285. if (self.tooltipItem != 0):
  1286. self.tooltipItem.HideToolTip()
  1287.  
  1288. def OnUpdate(self):
  1289. for i in xrange(shop.OFFLINE_SHOP_SLOT_COUNT):
  1290. itemCount = shop.GetOfflineShopItemCount(i)
  1291. if (itemCount <= 1):
  1292. itemCount
  1293.  
  1294. self.itemSlot.SetItemSlot(i, shop.GetOfflineShopItemID(i))
  1295.  
  1296. wndMgr.RefreshSlot(self.itemSlot.GetWindowHandle())
  1297.  
  1298.  
Add Comment
Please, Sign In to add comment