deadx2

Untitled

Sep 6th, 2017
453
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 15.01 KB | None | 0 0
  1. import app
  2. import net
  3. import player
  4. import item
  5. import uimg
  6. import uiToolTip
  7. import mouseModule
  8. import localemg
  9. import uiCommon
  10. import constInfo
  11.  
  12. X_POS2 = [115, 115]
  13. Y_POS2 = [110, 160]
  14.  
  15. X_POS3 = [100, 135, 100]
  16. Y_POS3 = [100, 145, 100]
  17.  
  18. X_POS4 = [70, 120, 120, 70]
  19. Y_POS4 = [65, 120, 185, 245]
  20.  
  21. class RefineDialog(uimg.ScriptWindow):
  22.  
  23.     makeSocketSuccessPercentage = ( 100, 33, 20, 15, 10, 5, 0 )
  24.     upgradeStoneSuccessPercentage = ( 30, 29, 28, 27, 26, 25, 24, 23, 22 )
  25.     upgradeArmorSuccessPercentage = ( 99, 66, 33, 33, 33, 33, 33, 33, 33 )
  26.     upgradeAccessorySuccessPercentage = ( 99, 88, 77, 66, 33, 33, 33, 33, 33 )
  27.     upgradeSuccessPercentage = ( 99, 66, 33, 33, 33, 33, 33, 33, 33 )
  28.  
  29.     def __init__(self):
  30.         uimg.ScriptWindow.__init__(self)
  31.         self.__LoadScript()
  32.  
  33.         self.scrollItemPos = 0
  34.         self.targetItemPos = 0
  35.  
  36.     def __LoadScript(self):
  37.  
  38.         self.__LoadQuestionDialog()
  39.  
  40.         try:
  41.             pyScrLoader = uimg.PythonScriptLoader()
  42.             pyScrLoader.LoadScriptFile(self, "uiscript/refinedialog.py")
  43.  
  44.         except:
  45.             import exception
  46.             exception.Abort("RefineDialog.__LoadScript.LoadObject")
  47.  
  48.         try:
  49.             self.board = self.GetChild("Board")
  50.             self.titleBar = self.GetChild("TitleBar")
  51.             self.successPercentage = self.GetChild("SuccessPercentage")
  52.             self.GetChild("AcceptButton").SetEvent(self.OpenQuestionDialog)
  53.             self.GetChild("CancelButton").SetEvent(self.Close)
  54.         except:
  55.             import exception
  56.             exception.Abort("RefineDialog.__LoadScript.BindObject")
  57.         '''
  58.         toolTip = uiToolTip.ItemToolTip()
  59.         toolTip.SetParent(self)
  60.         toolTip.SetPosition(15, 38)
  61.         toolTip.SetFollow(False)
  62.         toolTip.Show()
  63.         self.toolTip = toolTip
  64.         '''
  65.  
  66.         self.titleBar.SetCloseEvent(uimg.__mem_func__(self.Close))
  67.  
  68.     def __del__(self):
  69.         uimg.ScriptWindow.__del__(self)
  70.  
  71.     def __LoadQuestionDialog(self):
  72.         self.dlgQuestion = uimg.ScriptWindow()
  73.  
  74.         try:
  75.             pyScrLoader = uimg.PythonScriptLoader()
  76.             pyScrLoader.LoadScriptFile(self.dlgQuestion, "uiscript/questiondialog2.py")
  77.         except:
  78.             import exception
  79.             exception.Abort("RefineDialog.__LoadQuestionDialog.LoadScript")
  80.  
  81.         try:
  82.             GetObject=self.dlgQuestion.GetChild
  83.             GetObject("message1").SetText(localemg.REFINE_DESTROY_WARNING)
  84.             GetObject("message2").SetText(localemg.REFINE_WARNING2)
  85.             GetObject("accept").SetEvent(uimg.__mem_func__(self.Accept))
  86.             GetObject("cancel").SetEvent(uimg.__mem_func__(self.dlgQuestion.Hide))
  87.         except:
  88.             import exception
  89.             exception.Abort("SelectCharacterWindow.__LoadQuestionDialog.BindObject")
  90.  
  91.     def Destroy(self):
  92.         self.ClearDictionary()
  93.         self.board = 0
  94.         self.successPercentage = 0
  95.         self.titleBar = 0
  96.         self.toolTip = 0
  97.         self.dlgQuestion = 0
  98.  
  99.     def GetRefineSuccessPercentage(self, scrollSlotIndex, itemSlotIndex):
  100.  
  101.         if -1 != scrollSlotIndex:
  102.             if player.IsRefineGradeScroll(scrollSlotIndex):
  103.                 curGrade = player.GetItemGrade(itemSlotIndex)
  104.                 itemIndex = player.GetItemIndex(itemSlotIndex)
  105.  
  106.                 item.SelectItem(itemIndex)
  107.                 itemType = item.GetItemType()
  108.                 itemSubType = item.GetItemSubType()
  109.  
  110.                 if item.ITEM_TYPE_METIN == itemType:
  111.  
  112.                     if curGrade >= len(self.upgradeStoneSuccessPercentage):
  113.                         return 0
  114.                     return self.upgradeStoneSuccessPercentage[curGrade]
  115.  
  116.                 elif item.ITEM_TYPE_ARMOR == itemType:
  117.  
  118.                     if item.ARMOR_BODY == itemSubType:
  119.                         if curGrade >= len(self.upgradeArmorSuccessPercentage):
  120.                             return 0
  121.                         return self.upgradeArmorSuccessPercentage[curGrade]
  122.                     else:
  123.                         if curGrade >= len(self.upgradeAccessorySuccessPercentage):
  124.                             return 0
  125.                         return self.upgradeAccessorySuccessPercentage[curGrade]
  126.  
  127.                 else:
  128.  
  129.                     if curGrade >= len(self.upgradeSuccessPercentage):
  130.                         return 0
  131.                     return self.upgradeSuccessPercentage[curGrade]
  132.  
  133.         for i in xrange(player.METIN_SOCKET_MAX_NUM+1):
  134.             if 0 == player.GetItemMetinSocket(itemSlotIndex, i):
  135.                 break
  136.  
  137.         return self.makeSocketSuccessPercentage[i]
  138.  
  139.     def Open(self, scrollItemPos, targetItemPos):
  140.         self.scrollItemPos = scrollItemPos
  141.         self.targetItemPos = targetItemPos
  142.  
  143.         percentage = self.GetRefineSuccessPercentage(scrollItemPos, targetItemPos)
  144.         if 0 == percentage:
  145.             return
  146.         self.successPercentage.SetText(localemg.REFINE_SUCCESS_PROBALITY % (percentage))
  147.  
  148.         itemIndex = player.GetItemIndex(targetItemPos)
  149.         self.toolTip.ClearToolTip()
  150.         metinSlot = []
  151.         for i in xrange(player.METIN_SOCKET_MAX_NUM):
  152.             metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))
  153.         self.toolTip.AddItemData(itemIndex, metinSlot)
  154.  
  155.         self.UpdateDialog()
  156.         self.SetTop()
  157.         self.Show()
  158.  
  159.     def UpdateDialog(self):
  160.         '''
  161.         newWidth = self.toolTip.GetWidth() + 30
  162.         newHeight = self.toolTip.GetHeight() + 98
  163.         self.board.SetSize(newWidth, newHeight)
  164.         self.titleBar.SetWidth(newWidth-15)
  165.         self.SetSize(newWidth, newHeight)
  166.         '''
  167.         (x, y) = self.GetLocalPosition()
  168.         self.SetPosition(x, y)
  169.  
  170.     def OpenQuestionDialog(self):
  171.         percentage = self.GetRefineSuccessPercentage(-1, self.targetItemPos)
  172.         if 100 == percentage:
  173.             self.Accept()
  174.             return
  175.  
  176.         self.dlgQuestion.SetTop()
  177.         self.dlgQuestion.Show()
  178.  
  179.     def Accept(self):
  180.         net.SendItemUseToItemPacket(self.scrollItemPos, self.targetItemPos)
  181.         self.Close()
  182.  
  183.     def Close(self):
  184.         self.dlgQuestion.Hide()
  185.         self.Hide()
  186.  
  187.     def OnPressEscapeKey(self):
  188.         self.Close()
  189.         return True
  190.  
  191. class RefineDialogNew(uimg.ScriptWindow):
  192.  
  193.     obrazki = []
  194.  
  195.     def __init__(self):
  196.         uimg.ScriptWindow.__init__(self)
  197.         self.__Initialize()
  198.         self.isLoaded = False
  199.  
  200.     def __Initialize(self):
  201.         self.dlgQuestion = None
  202.         self.children = []
  203.         self.vnum = 0
  204.         self.targetItemPos = 0
  205.     #   self.dialogHeight = 0
  206.         self.dialogHeight = 65
  207.         self.cost = 0
  208.         self.percentage = 0
  209.         self.ExtraChance = 0
  210.         self.type = 0
  211.        
  212.         self.SLOT_FIX = []
  213.         self.POS_FIX = 0
  214.  
  215.     def __LoadScript(self):
  216.  
  217.         try:
  218.             pyScrLoader = uimg.PythonScriptLoader()
  219.             pyScrLoader.LoadScriptFile(self, "uiscript/refinedialog.py")
  220.  
  221.         except:
  222.             import exception
  223.             exception.Abort("RefineDialog.__LoadScript.LoadObject")
  224.  
  225.         try:
  226.             self.board = self.GetChild("Board")
  227.             self.titleBar = self.GetChild("TitleBar")
  228.             self.probText = self.GetChild("SuccessPercentage")
  229.             self.costText = self.GetChild("Cost")
  230.             self.successPercentage = self.GetChild("SuccessPercentage")
  231.            
  232.             self.Tlo = self.GetChild("IlluminaBG")
  233.            
  234.             self.ExtraSlots = self.GetChild("ExtraSlots")
  235.             self.ExtraSlots.SetSelectEmptySlotEvent(uimg.__mem_func__(self.__OnSelectEmptySlot))
  236.             self.ExtraSlots.SetSelectItemSlotEvent(uimg.__mem_func__(self.__OnSelectItemSlot))
  237.            
  238.             self.GetChild("AcceptButton").SetEvent(self.OpenQuestionDialog)
  239.             self.GetChild("CancelButton").SetEvent(self.CancelRefine)
  240.         except:
  241.             import exception
  242.             exception.Abort("RefineDialog.__LoadScript.BindObject")
  243.  
  244.         ## 936 : 개량 확률 표시 안함
  245.         ##if 936 == app.GetDefaultCodePage():
  246.         #self.successPercentage.Hide()
  247.        
  248.         toolTip = uiToolTip.ItemToolTip()
  249.         toolTip.SetParent(self)
  250.     #   toolTip.SetFollow(False)
  251.     #   toolTip.SetPosition(15, 38)
  252.     #   toolTip.Show()
  253.         self.toolTip = toolTip
  254.        
  255.         '''
  256.         self.slotList = []
  257.         for i in xrange(3):
  258.             slot = self.__MakeSlot()
  259.             slot.SetParent(self)
  260.             self.slotList.append(slot)
  261.         '''
  262.            
  263.         self.toolTip = uiToolTip.ItemToolTip()
  264.  
  265.         itemImage = self.__MakeItemImage()
  266.         itemImage.SetParent(self.Tlo)
  267.         itemImage.SetPosition(40, 70)
  268.         self.itemImage = itemImage
  269.  
  270.         self.titleBar.SetCloseEvent(uimg.__mem_func__(self.CancelRefine))
  271.         self.isLoaded = True
  272.  
  273.     def __del__(self):
  274.         uimg.ScriptWindow.__del__(self)
  275.  
  276.     def __MakeSlot(self):
  277.         slot = uimg.ImageBox()
  278.         #slot.LoadImage("illumina/ulepszanie/material_slot.tga")
  279.         slot.Show()
  280.         self.children.append(slot)
  281.         return slot
  282.  
  283.     def __MakeItemImage(self):
  284.         itemImage = uimg.ImageBox()
  285.         itemImage.Show()
  286.         self.children.append(itemImage)
  287.         return itemImage
  288.  
  289.     def __MakeThinBoard(self):
  290.         thinBoard = uimg.ThinBoard()
  291.         thinBoard.SetParent(self)
  292.         thinBoard.Show()
  293.         self.children.append(thinBoard)
  294.         return thinBoard
  295.        
  296.     def __OnSelectItemSlot(self, selectedSlotPos):
  297.         if selectedSlotPos == 0:
  298.             self.ExtraChance -= 5
  299.             net.SendChatPacket("/extra_refine1 0")
  300.         if selectedSlotPos == 1:
  301.             self.ExtraChance -= 10
  302.             net.SendChatPacket("/extra_refine2 0")
  303.         if selectedSlotPos == 2:
  304.             self.ExtraChance -= 15
  305.             net.SendChatPacket("/extra_refine3 0")
  306.         self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
  307.         self.ExtraSlots.SetItemSlot(selectedSlotPos, 0, 0)
  308.            
  309.     def __OnSelectEmptySlot(self, selectedSlotPos):
  310.         isAttached = mouseModule.mouseController.isAttached()
  311.         if isAttached:
  312.             attachedSlotType = mouseModule.mouseController.GetAttachedType()
  313.             attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
  314.             mouseModule.mouseController.DeattachObject()
  315.             itemIndex = player.GetItemIndex(attachedSlotPos)
  316.             itemCount = player.GetItemCount(attachedSlotPos)
  317.             item.SelectItem(itemIndex)
  318.             itemType = item.GetItemType()
  319.             itemSubType = item.GetItemSubType()
  320.             if itemIndex == 21091:
  321.                 if selectedSlotPos == 0:
  322.                     self.ExtraSlots.SetItemSlot(selectedSlotPos, itemIndex, 1)
  323.                     self.ExtraChance += 5
  324.                     net.SendChatPacket("/extra_refine1 1")
  325.                     self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
  326.                 else:
  327.                     pass
  328.             if itemIndex == 21092:
  329.                 if selectedSlotPos == 1:
  330.                     self.ExtraSlots.SetItemSlot(selectedSlotPos, itemIndex, 1)
  331.                     self.ExtraChance += 10
  332.                     net.SendChatPacket("/extra_refine2 1")
  333.                     self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
  334.                 else:
  335.                     pass
  336.             if itemIndex == 21093:
  337.                 if selectedSlotPos == 2:
  338.                     self.ExtraSlots.SetItemSlot(selectedSlotPos, itemIndex, 1)
  339.                     self.ExtraChance += 15
  340.                     net.SendChatPacket("/extra_refine3 1")
  341.                     self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
  342.                 else:
  343.                     pass
  344.  
  345.     def Destroy(self):
  346.         self.ClearDictionary()
  347.         self.dlgQuestion = None
  348.         self.board = 0
  349.         self.probText = 0
  350.         self.costText = 0
  351.         self.titleBar = 0
  352.     #   self.toolTip = 0
  353.         self.successPercentage = None
  354.         # self.slotList = []
  355.         self.children = []
  356.        
  357.         self.SLOT_FIX = []
  358.         self.POS_FIX = 0
  359.  
  360.     def Open(self, targetItemPos, nextGradeItemVnum, cost, prob, type):
  361.  
  362.         if False == self.isLoaded:
  363.             self.__LoadScript()
  364.  
  365.         self.__Initialize()
  366.  
  367.         self.targetItemPos = targetItemPos
  368.         self.vnum = nextGradeItemVnum
  369.         self.cost = cost
  370.         self.percentage = prob
  371.         self.type = type
  372.  
  373.         self.probText.SetText(localemg.REFINE_SUCCESS_PROBALITY % (self.percentage))
  374.         self.costText.SetText(localemg.REFINE_COST % (self.cost))
  375.  
  376.     #   self.toolTip.ClearToolTip()
  377.         metinSlot = []
  378.         for i in xrange(player.METIN_SOCKET_MAX_NUM):
  379.             metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))
  380.            
  381.         self.metinSlot = metinSlot
  382.  
  383.         attrSlot = []
  384.         for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
  385.             attrSlot.append(player.GetItemAttribute(targetItemPos, i))
  386.     #   self.toolTip.AddRefineItemData(nextGradeItemVnum, metinSlot, attrSlot)
  387.        
  388.         for i in xrange(3):
  389.             self.ExtraSlots.SetItemSlot(i, 0, 0)
  390.  
  391.         self.ExtraChance = 0
  392.         self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
  393.  
  394.         item.SelectItem(nextGradeItemVnum)
  395.         self.itemImage.LoadImage(item.GetIconImageFileName())
  396.        
  397.         self.itemImage.SAFE_SetStringEvent("MOUSE_OVER_IN", self.PokazToolTip)
  398.         self.itemImage.SAFE_SetStringEvent("MOUSE_OVER_OUT", self.SchowajToolTip)
  399.        
  400.         xSlotCount, ySlotCount = item.GetItemSize()
  401.         ySlotCount = 3
  402.         '''
  403.         for slot in self.slotList:
  404.             slot.Hide()
  405.         for i in xrange(min(3, ySlotCount)):
  406.             self.slotList[i].SetPosition(92, i*32+60)
  407.             self.slotList[i].Show()
  408.         '''
  409.  
  410.     #   self.dialogHeight = self.toolTip.GetHeight() + 46
  411.         self.UpdateDialog()
  412.  
  413.         self.SetTop()
  414.         self.Show()
  415.  
  416.     def Close(self):
  417.         self.dlgQuestion = None
  418.         self.Hide()
  419.  
  420.     def AppendMaterial(self, vnum, count):
  421.         bg = uimg.ImageBox()
  422.         bg.SetParent(self)
  423.         bg.SetPosition(220, self.dialogHeight+5)
  424.         bg.LoadImage("illumina/ulepszanie/material_slot.tga")
  425.         bg.Show()
  426.    
  427.         slot = self.__MakeSlot()
  428.         slot.SetParent(bg)
  429.         slot.SetPosition(4, 4)
  430.        
  431.         self.SLOT_FIX.append(bg)
  432.  
  433.         itemImage = self.__MakeItemImage()
  434.         itemImage.SetParent(slot)
  435.         item.SelectItem(vnum)
  436.         itemImage.LoadImage(item.GetIconImageFileName())
  437.  
  438.         '''
  439.         thinBoard = self.__MakeThinBoard()
  440.         thinBoard.SetPosition(260, self.dialogHeight)
  441.         thinBoard.SetSize(191, 20)
  442.         '''
  443.  
  444.         textLine = uimg.TextLine()
  445.         textLine.SetParent(bg)
  446.         textLine.SetFontName(localemg.UI_DEF_FONT)
  447.         textLine.SetPackedFontColor(0xffdddddd)
  448.         textLine.SetText("%s x %02d" % (item.GetItemName(), count))
  449.         textLine.SetOutline()
  450.         textLine.SetFeather(False)
  451.         textLine.SetWindowVerticalAlignCenter()
  452.         textLine.SetVerticalAlignCenter()
  453.  
  454.         if localemg.IsARABIC():
  455.             (x,y) = textLine.GetTextSize()
  456.             textLine.SetPosition(x, 0)
  457.         else:
  458.             textLine.SetPosition(35, 5)
  459.            
  460.         if player.GetItemCountByVnum(vnum) >= count:
  461.             textLine.SetFontColor(0.33, 0.80, 0.46)
  462.         else:
  463.             textLine.SetFontColor(0.9, 0.4745, 0.4627)
  464.  
  465.         textLine.Show()
  466.         self.children.append(textLine)
  467.        
  468.         self.POS_FIX += 1
  469.  
  470.         self.dialogHeight += 44
  471.         self.UpdateDialog()
  472.        
  473.     def UpdateDialog(self):
  474.         if self.dialogHeight > 65:
  475.             self.GetChild("NoMaterials").Hide()
  476.         else:
  477.             self.GetChild("NoMaterials").Show()
  478.  
  479.     def PokazToolTip(self):
  480.         self.toolTip.ClearToolTip()
  481.         self.toolTip.AddItemData(self.vnum, self.metinSlot)
  482.         self.toolTip.ShowToolTip()
  483.  
  484.     def SchowajToolTip(self):
  485.         self.toolTip.HideToolTip()
  486.  
  487.     def UpdateDialog(self):
  488.         pass
  489.        
  490.     '''
  491.     def UpdateDialog(self):
  492.         newWidth = self.toolTip.GetWidth() + 60
  493.         newHeight = self.dialogHeight + 69
  494.  
  495.         ## 936 : 개량 확률 표시 안함
  496.         ##if 936 == app.GetDefaultCodePage():
  497.         newHeight -= 8
  498.  
  499.         if localemg.IsARABIC():
  500.             self.board.SetPosition( newWidth, 0 )
  501.  
  502.             (x, y) = self.titleBar.GetLocalPosition()
  503.             self.titleBar.SetPosition( newWidth - 15, y )
  504.  
  505.         self.board.SetSize(newWidth, newHeight)
  506.         self.toolTip.SetPosition(15 + 35, 38)
  507.         self.titleBar.SetWidth(newWidth-15)
  508.         self.SetSize(newWidth, newHeight)
  509.  
  510.         (x, y) = self.GetLocalPosition()
  511.         self.SetPosition(x, y)
  512.     '''
  513.  
  514.  
  515.     def OnUpdate(self):
  516.         if self.POS_FIX == 1:
  517.             self.SLOT_FIX[0].SetPosition(130, 155)
  518.  
  519.         if self.POS_FIX == 2:
  520.             for i in xrange(0, self.POS_FIX):
  521.                 self.SLOT_FIX[i].SetPosition(X_POS2[i], Y_POS2[i])
  522.  
  523.         if self.POS_FIX == 3:
  524.             for i in xrange(0, self.POS_FIX):
  525.                 self.SLOT_FIX[i].SetPosition(X_POS3[i], Y_POS3[i])
  526.  
  527.         if self.POS_FIX == 4:
  528.             for i in xrange(0, self.POS_FIX):
  529.                 self.SLOT_FIX[i].SetPosition(X_POS4[i], Y_POS4[i])
  530.  
  531.     def OpenQuestionDialog(self):
  532.  
  533.         if 100 == self.percentage:
  534.             self.Accept()
  535.             return
  536.  
  537.         if 5 == self.type: ## 무신의 축복서
  538.             self.Accept()
  539.             return
  540.  
  541.         dlgQuestion = uiCommon.QuestionDialog2()
  542.         dlgQuestion.SetText2(localemg.REFINE_WARNING2)
  543.         dlgQuestion.SetAcceptEvent(uimg.__mem_func__(self.Accept))
  544.         dlgQuestion.SetCancelEvent(uimg.__mem_func__(dlgQuestion.Close))
  545.  
  546.         if 3 == self.type: ## 현철
  547.             dlgQuestion.SetText1(localemg.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_1)
  548.             dlgQuestion.SetText2(localemg.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_2)
  549.         elif 2 == self.type: ## 축복서
  550.             dlgQuestion.SetText1(localemg.REFINE_DOWN_GRADE_WARNING)
  551.         else:
  552.             dlgQuestion.SetText1(localemg.REFINE_DESTROY_WARNING)
  553.  
  554.         dlgQuestion.Open()
  555.         self.dlgQuestion = dlgQuestion
  556.  
  557.     def Accept(self):
  558.         net.SendRefinePacket(self.targetItemPos, self.type)
  559.         self.Close()
  560.  
  561.     def CancelRefine(self):
  562.         net.SendRefinePacket(255, 255)
  563.         self.Close()
  564.  
  565.     def OnPressEscapeKey(self):
  566.         self.CancelRefine()
  567.         return True
Advertisement
Add Comment
Please, Sign In to add comment