Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import app
- import net
- import player
- import item
- import uimg
- import uiToolTip
- import mouseModule
- import localemg
- import uiCommon
- import constInfo
- import _itemdesc
- X_POS2 = [115, 115]
- Y_POS2 = [110, 175]
- X_POS3 = [100, 135, 100]
- Y_POS3 = [100, 145, 100]
- X_POS4 = [70, 120, 120, 70]
- Y_POS4 = [65, 120, 195, 245]
- def Progress(str1, str2):
- ValueTextLine = ""
- if "-" in str1:
- oval1 = int(str1.split(" - ")[0])
- oval2 = int(str1.replace(str1.split(" - ")[0]+" - ", ""))
- val1 = int(str2.split(" - ")[0])
- val2 = int(str2.replace(str2.split(" - ")[0]+" - ", ""))
- ValueTextLine = "|cffa08784" + str(oval1) + "|cffc3a777(+" + str(val1-oval1) + ") |cffa08784- " + str(oval2) + "|cffc3a777(+" + str(val2-oval2) + ")"
- elif "+" in str1:
- val1 = str1.replace("+", "")
- val1 = val1.replace("%", "")
- val2 = str2.replace("+", "")
- val2 = val2.replace("%", "")
- if "%" in str1:
- ValueTextLine = "|cffa08784+" + str(val1) + "|cffc3a777(+" + str(int(val2)-int(val1)) + ")|cffa08784%"
- else:
- ValueTextLine = "|cffa08784+" + str(val1) + "|cffc3a777(+" + str(int(val2)-int(val1)) + ")|cffa08784"
- else:
- val1 = str1.replace("%", "")
- val2 = str2.replace("%", "")
- if "%" in str1:
- ValueTextLine = "|cffa08784" + val1 + "|cffc3a777(+" + str(int(val2)-int(val1)) + ")|cffa08784%"
- else:
- ValueTextLine = "|cffa08784" + val1 + "|cffc3a777(+" + str(int(val2)-int(val1)) + ")|cffa08784"
- return ValueTextLine
- class RefineDialog(uimg.ScriptWindow):
- makeSocketSuccessPercentage = ( 100, 33, 20, 15, 10, 5, 0 )
- upgradeStoneSuccessPercentage = ( 30, 29, 28, 27, 26, 25, 24, 23, 22 )
- upgradeArmorSuccessPercentage = ( 99, 66, 33, 33, 33, 33, 33, 33, 33 )
- upgradeAccessorySuccessPercentage = ( 99, 88, 77, 66, 33, 33, 33, 33, 33 )
- upgradeSuccessPercentage = ( 99, 66, 33, 33, 33, 33, 33, 33, 33 )
- def __init__(self):
- uimg.ScriptWindow.__init__(self)
- self.__LoadScript()
- self.scrollItemPos = 0
- self.targetItemPos = 0
- def __LoadScript(self):
- self.__LoadQuestionDialog()
- try:
- pyScrLoader = uimg.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "uiscript/refinedialog.py")
- except:
- import exception
- exception.Abort("RefineDialog.__LoadScript.LoadObject")
- try:
- self.board = self.GetChild("Board")
- self.titleBar = self.GetChild("TitleBar")
- self.successPercentage = self.GetChild("SuccessPercentage")
- self.GetChild("AcceptButton").SetEvent(self.OpenQuestionDialog)
- self.GetChild("CancelButton").SetEvent(self.Close)
- except:
- import exception
- exception.Abort("RefineDialog.__LoadScript.BindObject")
- '''
- toolTip = uiToolTip.ItemToolTip()
- toolTip.SetParent(self)
- toolTip.SetPosition(15, 38)
- toolTip.SetFollow(False)
- toolTip.Show()
- self.toolTip = toolTip
- '''
- self.titleBar.SetCloseEvent(uimg.__mem_func__(self.Close))
- def __del__(self):
- uimg.ScriptWindow.__del__(self)
- def __LoadQuestionDialog(self):
- self.dlgQuestion = uimg.ScriptWindow()
- try:
- pyScrLoader = uimg.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self.dlgQuestion, "uiscript/questiondialog2.py")
- except:
- import exception
- exception.Abort("RefineDialog.__LoadQuestionDialog.LoadScript")
- try:
- GetObject=self.dlgQuestion.GetChild
- GetObject("message1").SetText(localemg.REFINE_DESTROY_WARNING)
- GetObject("message2").SetText(localemg.REFINE_WARNING2)
- GetObject("accept").SetEvent(uimg.__mem_func__(self.Accept))
- GetObject("cancel").SetEvent(uimg.__mem_func__(self.dlgQuestion.Hide))
- except:
- import exception
- exception.Abort("SelectCharacterWindow.__LoadQuestionDialog.BindObject")
- def Destroy(self):
- self.ClearDictionary()
- self.board = 0
- self.successPercentage = 0
- self.titleBar = 0
- self.toolTip = 0
- self.dlgQuestion = 0
- def GetRefineSuccessPercentage(self, scrollSlotIndex, itemSlotIndex):
- if -1 != scrollSlotIndex:
- if player.IsRefineGradeScroll(scrollSlotIndex):
- curGrade = player.GetItemGrade(itemSlotIndex)
- itemIndex = player.GetItemIndex(itemSlotIndex)
- item.SelectItem(itemIndex)
- itemType = item.GetItemType()
- itemSubType = item.GetItemSubType()
- if item.ITEM_TYPE_METIN == itemType:
- if curGrade >= len(self.upgradeStoneSuccessPercentage):
- return 0
- return self.upgradeStoneSuccessPercentage[curGrade]
- elif item.ITEM_TYPE_ARMOR == itemType:
- if item.ARMOR_BODY == itemSubType:
- if curGrade >= len(self.upgradeArmorSuccessPercentage):
- return 0
- return self.upgradeArmorSuccessPercentage[curGrade]
- else:
- if curGrade >= len(self.upgradeAccessorySuccessPercentage):
- return 0
- return self.upgradeAccessorySuccessPercentage[curGrade]
- else:
- if curGrade >= len(self.upgradeSuccessPercentage):
- return 0
- return self.upgradeSuccessPercentage[curGrade]
- for i in xrange(player.METIN_SOCKET_MAX_NUM+1):
- if 0 == player.GetItemMetinSocket(itemSlotIndex, i):
- break
- return self.makeSocketSuccessPercentage[i]
- def Open(self, scrollItemPos, targetItemPos):
- self.scrollItemPos = scrollItemPos
- self.targetItemPos = targetItemPos
- percentage = self.GetRefineSuccessPercentage(scrollItemPos, targetItemPos)
- if 0 == percentage:
- return
- self.successPercentage.SetText(localemg.REFINE_SUCCESS_PROBALITY % (percentage))
- itemIndex = player.GetItemIndex(targetItemPos)
- self.toolTip.ClearToolTip()
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))
- self.toolTip.AddItemData(itemIndex, metinSlot)
- self.UpdateDialog()
- self.SetTop()
- self.Show()
- def UpdateDialog(self):
- '''
- newWidth = self.toolTip.GetWidth() + 30
- newHeight = self.toolTip.GetHeight() + 98
- self.board.SetSize(newWidth, newHeight)
- self.titleBar.SetWidth(newWidth-15)
- self.SetSize(newWidth, newHeight)
- '''
- (x, y) = self.GetLocalPosition()
- self.SetPosition(x, y)
- def OpenQuestionDialog(self):
- percentage = self.GetRefineSuccessPercentage(-1, self.targetItemPos)
- if 100 == percentage:
- self.Accept()
- return
- self.dlgQuestion.SetTop()
- self.dlgQuestion.Show()
- def Accept(self):
- net.SendItemUseToItemPacket(self.scrollItemPos, self.targetItemPos)
- self.Close()
- def Close(self):
- self.dlgQuestion.Hide()
- self.Hide()
- def OnPressEscapeKey(self):
- self.Close()
- return True
- class RefineDialogNew(uimg.ScriptWindow):
- obrazki = []
- def __init__(self):
- uimg.ScriptWindow.__init__(self)
- self.__Initialize()
- self.isLoaded = False
- def __Initialize(self):
- self.dlgQuestion = None
- self.children = []
- self.vnum = 0
- self.targetItemPos = 0
- # self.dialogHeight = 0
- self.dialogHeight = 65
- self.cost = 0
- self.percentage = 0
- self.ExtraChance = 0
- self.type = 0
- self.Stary = 0
- self.Nowy = 0
- self.BonusName = []
- self.BonusValue = []
- self.SLOT_FIX = []
- self.POS_FIX = 0
- def __LoadScript(self):
- try:
- pyScrLoader = uimg.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "uiscript/refinedialog.py")
- except:
- import exception
- exception.Abort("RefineDialog.__LoadScript.LoadObject")
- try:
- self.board = self.GetChild("Board")
- self.titleBar = self.GetChild("TitleBar")
- self.probText = self.GetChild("SuccessPercentage")
- self.costText = self.GetChild("Cost")
- self.successPercentage = self.GetChild("SuccessPercentage")
- self.Tlo = self.GetChild("IlluminaBG")
- self.ExtraSlots = self.GetChild("ExtraSlots")
- self.ExtraSlots.SetSelectEmptySlotEvent(uimg.__mem_func__(self.__OnSelectEmptySlot))
- self.ExtraSlots.SetSelectItemSlotEvent(uimg.__mem_func__(self.__OnSelectItemSlot))
- self.GetChild("NoMaterials").Hide()
- self.GetChild("AcceptButton").SetEvent(self.OpenQuestionDialog)
- self.GetChild("CancelButton").SetEvent(self.CancelRefine)
- except:
- import exception
- exception.Abort("RefineDialog.__LoadScript.BindObject")
- toolTip = uiToolTip.ItemToolTip()
- toolTip.SetParent(self)
- # toolTip.SetFollow(False)
- # toolTip.SetPosition(15, 38)
- # toolTip.Show()
- self.toolTip = toolTip
- self.OldItemBG = uimg.ImageBox()
- self.OldItemBG.SetParent(self)
- self.OldItemBG.SetPosition(45, 118)
- self.OldItemBG.LoadImage("illumina/ulepszanie/slot.tga")
- self.OldItemBG.Show()
- self.NewItemBG = uimg.ImageBox()
- self.NewItemBG.SetParent(self)
- self.NewItemBG.SetPosition(350, 118)
- self.NewItemBG.LoadImage("illumina/ulepszanie/slot.tga")
- self.NewItemBG.Show()
- self.toolTip = uiToolTip.ItemToolTip()
- oldItemImage = self.__MakeItemImage()
- oldItemImage.SetParent(self.OldItemBG)
- oldItemImage.SetPosition(13, 0)
- self.oldItemImage = oldItemImage
- itemImage = self.__MakeItemImage()
- itemImage.SetParent(self.NewItemBG)
- itemImage.SetPosition(13, 0)
- self.itemImage = itemImage
- self.titleBar.SetCloseEvent(uimg.__mem_func__(self.CancelRefine))
- self.isLoaded = True
- def __del__(self):
- uimg.ScriptWindow.__del__(self)
- def __MakeSlot(self):
- slot = uimg.ImageBox()
- #slot.LoadImage("illumina/ulepszanie/material_slot.tga")
- slot.Show()
- self.children.append(slot)
- return slot
- def __MakeItemImage(self):
- itemImage = uimg.ImageBox()
- itemImage.Show()
- self.children.append(itemImage)
- return itemImage
- def __MakeThinBoard(self):
- thinBoard = uimg.ThinBoard()
- thinBoard.SetParent(self)
- thinBoard.Show()
- self.children.append(thinBoard)
- return thinBoard
- def __OnSelectItemSlot(self, selectedSlotPos):
- if selectedSlotPos == 0:
- self.ExtraChance -= 5
- net.SendChatPacket("/extra_refine1 0")
- if selectedSlotPos == 1:
- self.ExtraChance -= 10
- net.SendChatPacket("/extra_refine2 0")
- if selectedSlotPos == 2:
- self.ExtraChance -= 15
- net.SendChatPacket("/extra_refine3 0")
- self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
- self.ExtraSlots.SetItemSlot(selectedSlotPos, 0, 0)
- def __OnSelectEmptySlot(self, selectedSlotPos):
- isAttached = mouseModule.mouseController.isAttached()
- if isAttached:
- attachedSlotType = mouseModule.mouseController.GetAttachedType()
- attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
- mouseModule.mouseController.DeattachObject()
- itemIndex = player.GetItemIndex(attachedSlotPos)
- itemCount = player.GetItemCount(attachedSlotPos)
- item.SelectItem(itemIndex)
- itemType = item.GetItemType()
- itemSubType = item.GetItemSubType()
- if itemIndex == 21091:
- if selectedSlotPos == 0:
- self.ExtraSlots.SetItemSlot(selectedSlotPos, itemIndex, 1)
- self.ExtraChance += 5
- net.SendChatPacket("/extra_refine1 1")
- self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
- else:
- pass
- if itemIndex == 21092:
- if selectedSlotPos == 1:
- self.ExtraSlots.SetItemSlot(selectedSlotPos, itemIndex, 1)
- self.ExtraChance += 10
- net.SendChatPacket("/extra_refine2 1")
- self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
- else:
- pass
- if itemIndex == 21093:
- if selectedSlotPos == 2:
- self.ExtraSlots.SetItemSlot(selectedSlotPos, itemIndex, 1)
- self.ExtraChance += 15
- net.SendChatPacket("/extra_refine3 1")
- self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
- else:
- pass
- def Destroy(self):
- self.ClearDictionary()
- self.dlgQuestion = None
- self.board = 0
- self.probText = 0
- self.costText = 0
- self.titleBar = 0
- # self.toolTip = 0
- self.successPercentage = None
- # self.slotList = []
- self.children = []
- self.SLOT_FIX = []
- self.POS_FIX = 0
- def Open(self, targetItemPos, nextGradeItemVnum, cost, prob, type):
- if False == self.isLoaded:
- self.__LoadScript()
- self.__Initialize()
- self.Stary = player.GetItemIndex(targetItemPos)
- self.Nowy = nextGradeItemVnum
- self.targetItemPos = targetItemPos
- self.vnum = nextGradeItemVnum
- self.cost = cost
- self.percentage = prob
- self.type = type
- self.probText.SetText(localemg.REFINE_SUCCESS_PROBALITY % (self.percentage))
- self.costText.SetText(localemg.REFINE_COST % (self.cost))
- # self.toolTip.ClearToolTip()
- metinSlot = []
- for i in xrange(player.METIN_SOCKET_MAX_NUM):
- metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))
- self.metinSlot = metinSlot
- attrSlot = []
- for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
- attrSlot.append(player.GetItemAttribute(targetItemPos, i))
- # self.toolTip.AddRefineItemData(nextGradeItemVnum, metinSlot, attrSlot)
- (ItemDesc, LineCount) = _itemdesc.GetItemDesc(nextGradeItemVnum)
- (oldItemDesc, oldLineCount) = _itemdesc.GetItemDesc(self.Stary)
- #for i in xrange(LineCount):
- for i in xrange(2, LineCount):
- ValueTextLine = ""
- DescLine1 = ItemDesc[i].split(":")[0]
- DescLine2 = ItemDesc[i].replace(DescLine1+": ", "")
- oldDescLine = oldItemDesc[i].replace(oldItemDesc[i].split(":")[0]+": ", "")
- ValueTextLine = Progress(oldDescLine, DescLine2)
- bonusName = uimg.TextLine()
- bonusName.SetParent(self)
- bonusName.SetPosition(430, 100 + 35*(i-2))
- bonusName.SetPackedFontColor(0xffc3a777)
- bonusName.SetText(DescLine1+":")
- bonusName.Show()
- self.BonusName.append(bonusName)
- bonusValue = uimg.TextLine()
- bonusValue.SetParent(self)
- bonusValue.SetPosition(430, 116 + 35*(i-2))
- #bonusValue.SetPackedFontColor(0xffa08784)
- bonusValue.SetText(ValueTextLine)
- bonusValue.Show()
- self.BonusValue.append(bonusValue)
- for i in xrange(3):
- self.ExtraSlots.SetItemSlot(i, 0, 0)
- self.ExtraChance = 0
- self.GetChild("ExtraPercentage").SetText("Dodatkowa szansa: " +str(self.ExtraChance)+"%")
- item.SelectItem(self.Stary)
- self.oldItemImage.LoadImage(item.GetIconImageFileName())
- self.oldItemImage.SetWindowVerticalAlignCenter()
- item.SelectItem(nextGradeItemVnum)
- self.itemImage.LoadImage(item.GetIconImageFileName())
- self.itemImage.SetWindowVerticalAlignCenter()
- self.GetChild("NaglowekText").SetText("|cfff8d09e" + item.GetItemName())
- self.itemImage.SAFE_SetStringEvent("MOUSE_OVER_IN", self.PokazToolTip)
- self.itemImage.SAFE_SetStringEvent("MOUSE_OVER_OUT", self.SchowajToolTip)
- xSlotCount, ySlotCount = item.GetItemSize()
- ySlotCount = 3
- self.UpdateDialog()
- self.SetTop()
- self.Show()
- def Close(self):
- self.dlgQuestion = None
- self.Hide()
- def AppendMaterial(self, vnum, count):
- bg = uimg.ImageBox()
- bg.SetParent(self)
- bg.SetPosition(220, self.dialogHeight+5)
- bg.LoadImage("illumina/ulepszanie/material_slot.tga")
- bg.Show()
- slot = self.__MakeSlot()
- slot.SetParent(bg)
- slot.SetPosition(4, 4)
- self.SLOT_FIX.append(bg)
- itemImage = self.__MakeItemImage()
- itemImage.SetParent(slot)
- item.SelectItem(vnum)
- itemImage.LoadImage(item.GetIconImageFileName())
- textLine = uimg.TextLine()
- textLine.SetParent(bg)
- textLine.SetFontName(localemg.UI_DEF_FONT)
- textLine.SetPackedFontColor(0xffc3a777)
- textLine.SetText("%s x %02d" % (item.GetItemName(), count))
- textLine.SetOutline()
- textLine.SetFeather(False)
- textLine.SetWindowVerticalAlignCenter()
- textLine.SetVerticalAlignCenter()
- textLine.SetPosition(43, 2)
- itemCountText = uimg.TextLine()
- itemCountText.SetParent(bg)
- itemCountText.SetFontName(localemg.UI_DEF_FONT)
- itemCountText.SetPackedFontColor(0xffc3a777)
- itemCountText.SetText("Posiadasz: "+str(player.GetItemCountByVnum(vnum)))
- itemCountText.SetOutline()
- itemCountText.SetFeather(False)
- itemCountText.SetWindowVerticalAlignCenter()
- itemCountText.SetVerticalAlignCenter()
- itemCountText.SetPosition(40, 16)
- itemCountText.Show()
- '''
- if player.GetItemCountByVnum(vnum) >= count:
- textLine.SetFontColor(0.33, 0.80, 0.46)
- else:
- textLine.SetFontColor(0.9, 0.4745, 0.4627)
- '''
- textLine.Show()
- self.children.append(textLine)
- self.children.append(itemCountText)
- self.POS_FIX += 1
- self.dialogHeight += 44
- self.UpdateDialog()
- '''
- def UpdateDialog(self):
- if self.dialogHeight > 65:
- self.GetChild("NoMaterials").Hide()
- else:
- self.GetChild("NoMaterials").Show()
- '''
- def PokazToolTip(self):
- self.toolTip.ClearToolTip()
- self.toolTip.AddItemData(self.vnum, self.metinSlot)
- self.toolTip.ShowToolTip()
- def SchowajToolTip(self):
- self.toolTip.HideToolTip()
- def UpdateDialog(self):
- pass
- def OnUpdate(self):
- if self.POS_FIX == 1:
- self.SLOT_FIX[0].SetPosition(130, 155)
- if self.POS_FIX == 2:
- for i in xrange(0, self.POS_FIX):
- self.SLOT_FIX[i].SetPosition(X_POS2[i], Y_POS2[i])
- if self.POS_FIX == 3:
- for i in xrange(0, self.POS_FIX):
- self.SLOT_FIX[i].SetPosition(X_POS3[i], Y_POS3[i])
- if self.POS_FIX == 4:
- for i in xrange(0, self.POS_FIX):
- self.SLOT_FIX[i].SetPosition(X_POS4[i], Y_POS4[i])
- def OpenQuestionDialog(self):
- if 100 == self.percentage:
- self.Accept()
- return
- if 5 == self.type: ## 무신의 축복서
- self.Accept()
- return
- dlgQuestion = uiCommon.QuestionDialog2()
- dlgQuestion.SetText2(localemg.REFINE_WARNING2)
- dlgQuestion.SetAcceptEvent(uimg.__mem_func__(self.Accept))
- dlgQuestion.SetCancelEvent(uimg.__mem_func__(dlgQuestion.Close))
- if 3 == self.type: ## 현철
- dlgQuestion.SetText1(localemg.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_1)
- dlgQuestion.SetText2(localemg.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_2)
- elif 2 == self.type: ## 축복서
- dlgQuestion.SetText1(localemg.REFINE_DOWN_GRADE_WARNING)
- else:
- dlgQuestion.SetText1(localemg.REFINE_DESTROY_WARNING)
- dlgQuestion.Open()
- self.dlgQuestion = dlgQuestion
- def Accept(self):
- net.SendRefinePacket(self.targetItemPos, self.type)
- self.Close()
- def CancelRefine(self):
- net.SendRefinePacket(255, 255)
- self.Close()
- def OnPressEscapeKey(self):
- self.CancelRefine()
- return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement