Guest User

Uirefine.py

a guest
Jun 26th, 2019
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 18.85 KB | None | 0 0
  1. import app
  2. import net
  3. import player
  4. import item
  5. import ui
  6. import uiToolTip
  7. import mouseModule
  8. import locale
  9. import uiCommon
  10. import constInfo
  11. import snd
  12. import wndMgr
  13. import chat
  14. import localeInfo
  15.  
  16. REFINE_VNUM = [
  17.     player.REFINE_VNUM_POTION_LOW,
  18.     player.REFINE_VNUM_POTION_MEDIUM,
  19.     player.REFINE_VNUM_POTION_EXTRA
  20. ]
  21.  
  22. REFINE_PERCENTAGE = [
  23.     player.REFINE_PERCENTAGE_LOW,
  24.     player.REFINE_PERCENTAGE_MEDIUM,
  25.     player.REFINE_PERCENTAGE_EXTRA
  26. ]
  27.  
  28. REFINE_MODE = {
  29.     0 : 0,
  30.     1 : 0,
  31.     2 : 0
  32. }
  33.  
  34. REFINE_TOTAL_PERCENTAGE = {
  35.     "update" : 0
  36. }
  37.  
  38. def IS_UPGRADE_ITEM(itemVnum):
  39.     for i in xrange(3):
  40.         if itemVnum == REFINE_VNUM[i]:
  41.             return TRUE
  42.     return FALSE
  43.  
  44. class RefineDialog(ui.ScriptWindow):
  45.  
  46.     makeSocketSuccessPercentage = ( 100, 33, 20, 15, 10, 5, 0 )
  47.     upgradeStoneSuccessPercentage = ( 30, 29, 28, 27, 26, 25, 24, 23, 22 )
  48.     upgradeArmorSuccessPercentage = ( 99, 66, 33, 33, 33, 33, 33, 33, 33 )
  49.     upgradeAccessorySuccessPercentage = ( 99, 88, 77, 66, 33, 33, 33, 33, 33 )
  50.     upgradeSuccessPercentage = ( 99, 66, 33, 33, 33, 33, 33, 33, 33 )
  51.  
  52.     def __init__(self):
  53.         ui.ScriptWindow.__init__(self)
  54.         self.__LoadScript()
  55.  
  56.         self.scrollItemPos = 0
  57.         self.targetItemPos = 0
  58.  
  59.     def __LoadScript(self):
  60.  
  61.         self.__LoadQuestionDialog()
  62.  
  63.         try:
  64.             pyScrLoader = ui.PythonScriptLoader()
  65.             pyScrLoader.LoadScriptFile(self, "uiscript/refinedialog.py")
  66.  
  67.         except:
  68.             import exception
  69.             exception.Abort("RefineDialog.__LoadScript.LoadObject")
  70.  
  71.         try:
  72.             self.board = self.GetChild("Board")
  73.             self.titleBar = self.GetChild("TitleBar")
  74.             self.successPercentage = self.GetChild("SuccessPercentage")
  75.             self.GetChild("AcceptButton").SetEvent(self.OpenQuestionDialog)
  76.             self.GetChild("CancelButton").SetEvent(self.Close)
  77.         except:
  78.             import exception
  79.             exception.Abort("RefineDialog.__LoadScript.BindObject")
  80.  
  81.         toolTip = uiToolTip.ItemToolTip()
  82.         toolTip.SetParent(self)
  83.         toolTip.SetPosition(15, 38)
  84.         toolTip.SetFollow(FALSE)
  85.         toolTip.Show()
  86.         self.toolTip = toolTip
  87.  
  88.         self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
  89.  
  90.     def __del__(self):
  91.         ui.ScriptWindow.__del__(self)
  92.  
  93.     def __LoadQuestionDialog(self):
  94.         self.dlgQuestion = ui.ScriptWindow()
  95.  
  96.         try:
  97.             pyScrLoader = ui.PythonScriptLoader()
  98.             pyScrLoader.LoadScriptFile(self.dlgQuestion, "uiscript/questiondialog2.py")
  99.         except:
  100.             import exception
  101.             exception.Abort("RefineDialog.__LoadQuestionDialog.LoadScript")
  102.  
  103.         try:
  104.             GetObject=self.dlgQuestion.GetChild
  105.             GetObject("message1").SetText(localeInfo.REFINE_DESTROY_WARNING)
  106.             GetObject("message2").SetText(localeInfo.REFINE_WARNING2)
  107.             GetObject("accept").SetEvent(ui.__mem_func__(self.Accept))
  108.             GetObject("cancel").SetEvent(ui.__mem_func__(self.dlgQuestion.Hide))
  109.         except:
  110.             import exception
  111.             exception.Abort("SelectCharacterWindow.__LoadQuestionDialog.BindObject")
  112.  
  113.     def Destroy(self):
  114.         self.ClearDictionary()
  115.         self.board = 0
  116.         self.successPercentage = 0
  117.         self.titleBar = 0
  118.         self.toolTip = 0
  119.         self.dlgQuestion = 0
  120.  
  121.     def GetRefineSuccessPercentage(self, scrollSlotIndex, itemSlotIndex):
  122.  
  123.         if -1 != scrollSlotIndex:
  124.             if player.IsRefineGradeScroll(scrollSlotIndex):
  125.                 curGrade = player.GetItemGrade(itemSlotIndex)
  126.                 itemIndex = player.GetItemIndex(itemSlotIndex)
  127.  
  128.                 item.SelectItem(itemIndex)
  129.                 itemType = item.GetItemType()
  130.                 itemSubType = item.GetItemSubType()
  131.  
  132.                 if item.ITEM_TYPE_METIN == itemType:
  133.  
  134.                     if curGrade >= len(self.upgradeStoneSuccessPercentage):
  135.                         return 0
  136.                     return self.upgradeStoneSuccessPercentage[curGrade]
  137.  
  138.                 elif item.ITEM_TYPE_ARMOR == itemType:
  139.  
  140.                     if item.ARMOR_BODY == itemSubType:
  141.                         if curGrade >= len(self.upgradeArmorSuccessPercentage):
  142.                             return 0
  143.                         return self.upgradeArmorSuccessPercentage[curGrade]
  144.                     else:
  145.                         if curGrade >= len(self.upgradeAccessorySuccessPercentage):
  146.                             return 0
  147.                         return self.upgradeAccessorySuccessPercentage[curGrade]
  148.  
  149.                 else:
  150.  
  151.                     if curGrade >= len(self.upgradeSuccessPercentage):
  152.                         return 0
  153.                     return self.upgradeSuccessPercentage[curGrade]
  154.  
  155.         for i in xrange(player.METIN_SOCKET_MAX_NUM+1):
  156.             if 0 == player.GetItemMetinSocket(itemSlotIndex, i):
  157.                 break
  158.  
  159.         return self.makeSocketSuccessPercentage[i]
  160.  
  161.     def Open(self, scrollItemPos, targetItemPos):
  162.         self.scrollItemPos = scrollItemPos
  163.         self.targetItemPos = targetItemPos
  164.  
  165.         percentage = self.GetRefineSuccessPercentage(scrollItemPos, targetItemPos)
  166.         if 0 == percentage:
  167.             return
  168.         self.successPercentage.SetText(localeInfo.REFINE_SUCCESS_PROBALITY % (percentage))
  169.  
  170.         itemIndex = player.GetItemIndex(targetItemPos)
  171.         self.toolTip.ClearToolTip()
  172.         metinSlot = []
  173.         for i in xrange(player.METIN_SOCKET_MAX_NUM):
  174.             metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))
  175.         self.toolTip.AddItemData(itemIndex, metinSlot)
  176.  
  177.         self.UpdateDialog()
  178.         self.SetTop()
  179.         self.Show()
  180.  
  181.     def UpdateDialog(self):
  182.         newWidth = self.toolTip.GetWidth() + 30
  183.         newHeight = self.toolTip.GetHeight() + 98
  184.         self.board.SetSize(newWidth, newHeight)
  185.         self.titleBar.SetWidth(newWidth-15)
  186.         self.SetSize(newWidth, newHeight)
  187.  
  188.         (x, y) = self.GetLocalPosition()
  189.         self.SetPosition(x, y)
  190.  
  191.     def OpenQuestionDialog(self):
  192.         percentage = self.GetRefineSuccessPercentage(-1, self.targetItemPos)
  193.         if 100 == percentage:
  194.             self.Accept()
  195.             return
  196.  
  197.         self.dlgQuestion.SetTop()
  198.         self.dlgQuestion.Show()
  199.  
  200.     def Accept(self):
  201.         net.SendItemUseToItemPacket(self.scrollItemPos, self.targetItemPos)
  202.         self.Close()
  203.  
  204.     if app.ENABLE_REFINE_RENEWAL:  
  205.         def AutoRefine(self, checkType, autoFlag):
  206.             constInfo.IS_AUTO_REFINE = autoFlag
  207.        
  208.         def CheckRefine(self, isFail):
  209.             if constInfo.IS_AUTO_REFINE == True:
  210.                 if constInfo.AUTO_REFINE_TYPE == 1:
  211.                     if constInfo.AUTO_REFINE_DATA["ITEM"][0] != -1 and constInfo.AUTO_REFINE_DATA["ITEM"][1] != -1:
  212.                         scrollIndex = player.GetItemIndex(constInfo.AUTO_REFINE_DATA["ITEM"][0])
  213.                         itemIndex = player.GetItemIndex(constInfo.AUTO_REFINE_DATA["ITEM"][1])
  214.                        
  215.                         chat.AppendChat(chat.CHAT_TYPE_INFO, "%d %d" % (itemIndex, int(itemIndex %10)))
  216.                         if scrollIndex == 0 or (itemIndex % 10 == 8 and not isFail):
  217.                             self.Close()
  218.                         else:
  219.                             net.SendItemUseToItemPacket(constInfo.AUTO_REFINE_DATA["ITEM"][0], constInfo.AUTO_REFINE_DATA["ITEM"][1])
  220.                 elif constInfo.AUTO_REFINE_TYPE == 2:
  221.                     npcData = constInfo.AUTO_REFINE_DATA["NPC"]
  222.                     if npcData[0] != 0 and npcData[1] != -1 and npcData[2] != -1 and npcData[3] != 0:
  223.                         itemIndex = player.GetItemIndex(npcData[1], npcData[2])
  224.                         if (itemIndex % 10 == 8 and not isFail) or isFail:
  225.                             self.Close()
  226.                         else:
  227.                             net.SendGiveItemPacket(npcData[0], npcData[1], npcData[2], npcData[3])
  228.                 else:
  229.                     self.Close()
  230.             else:
  231.                 self.Close()
  232.  
  233.     def Close(self):
  234.         self.dlgQuestion.Hide()
  235.         self.Hide()
  236.  
  237.     def OnPressEscapeKey(self):
  238.         self.Close()
  239.         return TRUE
  240.  
  241. class RefineDialogNew(ui.ScriptWindow):
  242.     def __init__(self):
  243.         ui.ScriptWindow.__init__(self)
  244.         self.__Initialize()
  245.         self.isLoaded = FALSE
  246.  
  247.     def __Initialize(self):
  248.         self.dlgQuestion = None
  249.         self.children = []
  250.         self.vnum = 0
  251.         self.targetItemPos = 0
  252.         self.dialogHeight = 0
  253.         self.percentage = 0
  254.         self.total_percentage = 0
  255.         self.cost = 0
  256.         self.type = 0
  257.  
  258.     def __LoadScript(self):
  259.         try:
  260.             pyScrLoader = ui.PythonScriptLoader()
  261.             pyScrLoader.LoadScriptFile(self, "uiscript/refinedialog.py")
  262.         except:
  263.             import exception
  264.             exception.Abort("RefineDialog.__LoadScript.LoadObject")
  265.         try:
  266.             self.board = self.GetChild("Board")
  267.             self.titleBar = self.GetChild("TitleBar")
  268.             self.probText = self.GetChild("SuccessPercentage")
  269.            
  270.             self.probIncreaseText = self.GetChild("SuccessPercentageIncreased")
  271.             self.costText = self.GetChild("Cost")
  272.            
  273.             self.slot = self.GetChild("Slot")
  274.            
  275.             self.designMode = self.GetChild("DesignIncrease")
  276.            
  277.             self.button_accept = self.GetChild("AcceptButton")
  278.  
  279.             self.GetChild("AcceptButton").SetEvent(self.OpenQuestionDialog)
  280.             self.GetChild("CancelButton").SetEvent(self.CancelRefine)
  281.         except:
  282.             import exception
  283.             exception.Abort("RefineDialog.__LoadScript.BindObject")
  284.            
  285.         self.slot.SetSelectEmptySlotEvent(ui.__mem_func__(self.__OnSelectEmptySlot))
  286.         self.slot.SetUnselectItemSlotEvent(ui.__mem_func__(self.__OnSelectItemSlot))
  287.         self.slot.SetUseSlotEvent(ui.__mem_func__(self.__OnSelectItemSlot))
  288.         self.slot.SetOverInItemEvent(ui.__mem_func__(self.__OnOverInItem))
  289.         self.slot.SetOverOutItemEvent(ui.__mem_func__(self.__OnOverOutItem))
  290.  
  291.         self.toolTipNext = uiToolTip.ItemToolTip()
  292.         self.toolTipNext.HideToolTip()
  293.  
  294.         self.toolTipCur = uiToolTip.ItemToolTip()
  295.         self.toolTipCur.HideToolTip()
  296.  
  297.         self.tooltipMode = uiToolTip.ItemToolTip()
  298.         self.tooltipMode.HideToolTip()
  299.  
  300.         self.toolTipMaterial = uiToolTip.ItemToolTip()
  301.         self.toolTipMaterial.HideToolTip()
  302.  
  303.         self.slotCurrent, self.slotAfter, self.numberSlotImage, self.imgPotion = {}, {}, {}, {}
  304.         posY = 61
  305.         for i in xrange(3):
  306.             self.slotCurrent[i] = ui.MakeImageBox(self, "d:/ymir work/ui/public/Slot_Base.sub", 25*2, posY)
  307.             self.slotAfter[i] = ui.MakeImageBox(self, "d:/ymir work/ui/public/Slot_Base.sub", 105*2-20, posY)
  308.             posY += 32
  309.  
  310.         xPos = 4
  311.         name = "icon/item/potion_refine_hide_"
  312.         for i in xrange(3):
  313.             self.numberSlotImage[i] = ui.MakeImageBox(self.designMode, "d:/ymir work/ui/public/Slot_Base.sub", xPos, 25)
  314.             self.imgPotion[i] = ui.MakeImageBox(self.designMode, name + str(i+1) + ".tga", xPos + 3, 25)
  315.             xPos += 80
  316.  
  317.         self.itemImageCur = ui.MakeImageBox(self, "d:/ymir work/ui/public/Slot_Base.sub", 49, 60)
  318.         self.itemImageNext = ui.MakeImageBox(self, "d:/ymir work/ui/public/Slot_Base.sub", 105*2-20, 60)
  319.        
  320.         self.materialList = []
  321.  
  322.         self.titleBar.SetCloseEvent(ui.__mem_func__(self.CancelRefine))
  323.         if app.ENABLE_REFINE_RENEWAL:
  324.             self.checkBox = ui.CheckBox()
  325.             self.checkBox.SetParent(self)
  326.             self.checkBox.SetPosition(0, 90)
  327.             self.checkBox.SetWindowHorizontalAlignCenter()
  328.             self.checkBox.SetWindowVerticalAlignBottom()
  329.             self.checkBox.SetEvent(ui.__mem_func__(self.AutoRefine), "ON_CHECK", True)
  330.             self.checkBox.SetEvent(ui.__mem_func__(self.AutoRefine), "ON_UNCKECK", False)
  331.             self.checkBox.SetCheckStatus(constInfo.IS_AUTO_REFINE)
  332.             self.checkBox.SetTextInfo("Pastreaza fereastra deschisa")
  333.             self.checkBox.Show()
  334.         self.isLoaded = TRUE
  335.  
  336.     def __del__(self):
  337.         ui.ScriptWindow.__del__(self)
  338.  
  339.     def __MakeItemSlot(self,c):
  340.         itemslot = ui.SlotWindow()
  341.         itemslot.SetParent(self)
  342.         itemslot.SetSize(32, 32)
  343.         itemslot.SetSlotBaseImage("d:/ymir work/ui/public/Slot_Base.sub", 1.0, 1.0, 1.0, 1.0)
  344.         itemslot.AppendSlot(c, 0, 0, 32, 32)
  345.         itemslot.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
  346.         itemslot.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
  347.         itemslot.RefreshSlot()
  348.         itemslot.Show()
  349.         self.children.append(itemslot)
  350.         return itemslot
  351.  
  352.     def __MakeThinBoard(self):
  353.         thinBoard = ui.ThinBoard()
  354.         thinBoard.SetParent(self)
  355.         thinBoard.Show()
  356.         self.children.append(thinBoard)
  357.         return thinBoard
  358.  
  359.     def Destroy(self):
  360.         self.ClearDictionary()
  361.         self.dlgQuestion = None
  362.         self.board = 0
  363.         self.probText = 0
  364.         self.probIncreaseText = 0
  365.         self.costText = 0
  366.         self.titleBar = 0
  367.         self.toolTipNext = 0
  368.         self.toolTipCur = 0
  369.         self.itemImageCur = 0
  370.         self.itemImageNext = 0
  371.         self.children = []
  372.         self.materialList = []
  373.         self.toolTipMaterial = 0
  374.         self.slotCurrent = None
  375.         self.slotAfter = None
  376.         self.numberSlotImage = None
  377.         self.imgPotion = None
  378.         REFINE_TOTAL_PERCENTAGE["update"] = 0
  379.  
  380.     if app.ENABLE_REFINE_RENEWAL:
  381.         def __InitializeOpen(self):
  382.             self.children = []
  383.             self.vnum = 0
  384.             self.targetItemPos = 0
  385.             self.dialogHeight = 0
  386.             self.cost = 0
  387.             self.percentage = 0
  388.             self.type = 0
  389.             self.xRefineStart = 0
  390.             self.yRefineStart = 0  
  391.  
  392.     def Open(self, targetItemPos, nextGradeItemVnum, cost, prob, type):
  393.         if FALSE == self.isLoaded:
  394.             self.__LoadScript()
  395.  
  396.         if app.ENABLE_REFINE_RENEWAL:
  397.             self.__InitializeOpen()
  398.         else:
  399.             self.__Initialize()
  400.  
  401.         self.targetItemPos = targetItemPos
  402.         self.vnum = nextGradeItemVnum
  403.         self.cost = cost
  404.         self.percentage = prob
  405.         self.type = type
  406.  
  407.         self.Clear()
  408.  
  409.         self.probText.SetText(localeInfo.REFINE_CURRENT_PERCENTAGE % (self.percentage))
  410.         self.costText.SetText("%s" % (localeInfo.NumberToMoneyString(self.cost)))
  411.  
  412.         self.toolTipNext.ClearToolTip()
  413.         self.toolTipCur.ClearToolTip()
  414.  
  415.         metinSlot = []
  416.         for i in xrange(player.METIN_SOCKET_MAX_NUM):
  417.             metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))
  418.  
  419.         attrSlot = []
  420.         for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
  421.             attrSlot.append(player.GetItemAttribute(targetItemPos, i))
  422.  
  423.         self.toolTipCur.SetInventoryItem(targetItemPos)
  424.         self.toolTipNext.AddRefineItemData(nextGradeItemVnum, metinSlot, attrSlot)
  425.  
  426.         curItemIndex = player.GetItemIndex(targetItemPos)
  427.        
  428.         if curItemIndex != 0:
  429.             item.SelectItem(curItemIndex)
  430.  
  431.             try:
  432.                 self.itemImageCur.LoadImage(item.GetIconImageFileName())
  433.             except:
  434.                 dbg.TraceError("Refine.CurrentItem.LoadImage - Failed to find item data")
  435.  
  436.         item.SelectItem(nextGradeItemVnum)
  437.         self.itemImageNext.LoadImage(item.GetIconImageFileName())
  438.  
  439.         self.dialogHeight = 62
  440.         self.UpdateDialog()
  441.  
  442.         self.SetTop()
  443.         self.Show()
  444.        
  445.     def Clear(self):
  446.         for it in xrange(3):
  447.             REFINE_MODE[it] = 0
  448.             self.slot.ClearSlot(it)
  449.  
  450.         REFINE_TOTAL_PERCENTAGE["update"] = 0
  451.  
  452.     def Close(self):
  453.         self.dlgQuestion = None
  454.         self.Clear()
  455.         self.Hide()
  456.  
  457.     def AppendMaterial(self, vnum, count):
  458.         grid = self.__MakeItemSlot(len(self.materialList))
  459.         grid.SetPosition(293-35, self.dialogHeight)
  460.         grid.SetItemSlot(len(self.materialList), vnum, 0)
  461.  
  462.         self.materialList.append(vnum)
  463.  
  464.         thinBoard = self.__MakeThinBoard()
  465.         thinBoard.SetPosition(293, self.dialogHeight)
  466.         thinBoard.SetSize(191, 20)
  467.  
  468.         textLine = ui.TextLine()
  469.         textLine.SetParent(thinBoard)
  470.         textLine.SetFontName(localeInfo.UI_DEF_FONT)
  471.  
  472.         if player.GetItemCountByVnum(vnum) < count:
  473.             textLine.SetPackedFontColor(0xffFF0033)
  474.         else:
  475.             textLine.SetPackedFontColor(0xffdddddd)
  476.  
  477.         textLine.SetText("%s x%d  |cFFffce00(%d)" % (item.GetItemName(), count, player.GetItemCountByVnum(vnum)))
  478.         textLine.SetOutline()
  479.         textLine.SetFeather(FALSE)
  480.         textLine.SetWindowVerticalAlignCenter()
  481.         textLine.SetVerticalAlignCenter()
  482.  
  483.         if localeInfo.IsARABIC():
  484.             (x,y) = textLine.GetTextSize()
  485.             textLine.SetPosition(x, 0)
  486.         else:
  487.             textLine.SetPosition(15, 0)
  488.  
  489.         textLine.Show()
  490.         self.children.append(textLine)
  491.  
  492.         self.dialogHeight += 34
  493.         self.UpdateDialog()
  494.  
  495.     def UpdateDialog(self):
  496.         if localeInfo.IsARABIC():
  497.             self.board.SetPosition(500, 0)
  498.             (x, y) = self.titleBar.GetLocalPosition()
  499.             self.titleBar.SetPosition(500 - 15, y)
  500.  
  501.         self.board.SetSize(500, 250)
  502.         self.titleBar.SetWidth(500-15)
  503.         self.SetSize(500, 250)
  504.  
  505.         (x, y) = self.GetLocalPosition()
  506.         self.SetPosition(x, y)
  507.  
  508.     def OpenQuestionDialog(self):
  509.         totalPerc = self.percentage + REFINE_TOTAL_PERCENTAGE["update"]
  510.  
  511.         if 100 == totalPerc:
  512.             self.Accept()
  513.             return
  514.  
  515.         if 5 == self.type:
  516.             self.Accept()
  517.             return
  518.  
  519.         dlgQuestion = uiCommon.QuestionDialog2()
  520.         dlgQuestion.SetText2(localeInfo.REFINE_WARNING2)
  521.         dlgQuestion.SetAcceptEvent(ui.__mem_func__(self.Accept))
  522.         dlgQuestion.SetCancelEvent(ui.__mem_func__(dlgQuestion.Close))
  523.  
  524.         if 3 == self.type:
  525.             dlgQuestion.SetText1(localeInfo.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_1)
  526.             dlgQuestion.SetText2(localeInfo.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_2)
  527.         elif 2 == self.type:
  528.             dlgQuestion.SetText1(localeInfo.REFINE_DOWN_GRADE_WARNING)
  529.         else:
  530.             dlgQuestion.SetText1(localeInfo.REFINE_DESTROY_WARNING)
  531.  
  532.         dlgQuestion.Open()
  533.         self.dlgQuestion = dlgQuestion
  534.  
  535.     def Accept(self):
  536.         if app.ENABLE_REFINE_RENEWAL:
  537.             net.SendRefinePacket(self.targetItemPos, self.type)
  538.         else:
  539.             net.SendRefinePacket(self.targetItemPos, self.type)
  540.             self.Close()
  541.  
  542.     def OnUpdate(self):
  543.         if self.itemImageCur:
  544.             if self.itemImageCur.IsIn():
  545.                 self.toolTipCur.ShowToolTip()
  546.             else:
  547.                 self.toolTipCur.HideToolTip()
  548.  
  549.         if self.itemImageNext:
  550.             if self.itemImageNext.IsIn():
  551.                 self.toolTipNext.ShowToolTip()
  552.             else:
  553.                 self.toolTipNext.HideToolTip()
  554.  
  555.         self.probIncreaseText.SetText(localeInfo.REFINE_INCREASE_PERCENTAGE % (REFINE_TOTAL_PERCENTAGE["update"]))
  556.  
  557.     def CancelRefine(self):
  558.         net.SendRefinePacket(255, 255)
  559.         self.Close()
  560.        
  561.         if app.ENABLE_REFINE_RENEWAL:
  562.             constInfo.AUTO_REFINE_TYPE = 0
  563.             constInfo.AUTO_REFINE_DATA = {
  564.                 "ITEM" : [-1, -1],
  565.                 "NPC" : [0, -1, -1, 0]
  566.             }
  567.  
  568.     def OnPressEscapeKey(self):
  569.         self.CancelRefine()
  570.         return TRUE
  571.  
  572.     def OverInItem(self, slot):
  573.         if self.toolTipMaterial:
  574.             self.toolTipMaterial.SetItemToolTip(self.materialList[slot])
  575.  
  576.     def OverOutItem(self):
  577.         if self.toolTipMaterial:
  578.             self.toolTipMaterial.HideToolTip()
  579.  
  580.     def __OnSelectEmptySlot(self, selectedSlotPos):
  581.         isAttached = mouseModule.mouseController.isAttached()
  582.         if isAttached:
  583.             attachedSlotType = mouseModule.mouseController.GetAttachedType()
  584.             attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  585.             attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
  586.             attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
  587.  
  588.             mouseModule.mouseController.DeattachObject()
  589.  
  590.             if player.SLOT_TYPE_INVENTORY != attachedSlotType:
  591.                 return
  592.            
  593.             if IS_UPGRADE_ITEM(player.GetItemIndex(attachedSlotPos)):
  594.            
  595.                 #fix 12.01.2017
  596.                 item.SelectItem(self.vnum)
  597.                 if item.GetItemType() == item.ITEM_TYPE_METIN:
  598.                     chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_ERROR_ADD_PERC_STONES)
  599.                     return
  600.  
  601.                 if attachedItemCount > 1 or attachedItemCount <= 0:
  602.                     chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_ERROR_ITEM_COUNT)
  603.                     return
  604.  
  605.                 for it in xrange(3):
  606.                     if selectedSlotPos == it and attachedItemIndex != REFINE_VNUM[it]:
  607.                         chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_ERROR_ITEM_VNUM)
  608.                         return
  609.  
  610.                 for it in xrange(3):
  611.                     if selectedSlotPos == it:
  612.  
  613.                         if self.percentage + REFINE_TOTAL_PERCENTAGE["update"] + REFINE_PERCENTAGE[it] > 100:
  614.                             chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_ERROR_ITEM_OVERFLOW_PERCENTAGE)
  615.                             return
  616.  
  617.                         REFINE_MODE[it] = 1
  618.                         REFINE_TOTAL_PERCENTAGE["update"] += REFINE_PERCENTAGE[it]
  619.  
  620.                 self.slot.ClearSlot(selectedSlotPos)
  621.                 self.slot.SetItemSlot(selectedSlotPos, player.GetItemIndex(attachedSlotPos), player.GetItemCount(attachedSlotPos))
  622.             else:
  623.                 chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.REFINE_ERROR_ITEM_VNUM)
  624.  
  625.     def __OnSelectItemSlot(self, selectedSlotPos):
  626.         for it in xrange(3):
  627.             if selectedSlotPos == it:
  628.                 self.slot.ClearSlot(selectedSlotPos)
  629.  
  630.                 REFINE_MODE[it] = 0
  631.                 REFINE_TOTAL_PERCENTAGE["update"] -= REFINE_PERCENTAGE[it]
  632.  
  633.     def __OnOverInItem(self, slotIndex):
  634.         for it in xrange(3):
  635.             if slotIndex == it:
  636.                 self.tooltipMode.SetItemToolTip(REFINE_VNUM[it])
  637.  
  638.     def __OnOverOutItem(self):
  639.         if self.tooltipMode:
  640.             self.tooltipMode.HideToolTip()
Advertisement
Add Comment
Please, Sign In to add comment