Welcome to Darkmmo

Şimdi bize katılın ve tüm özelliklerimize erişim sağlayın. Kayıt olup giriş yaptıktan sonra, yeni konular oluşturabilir, mevcut konulara yanıtlar yazabilir, kendi özel mesajlaşma sisteminize sahip olabilir ve çok daha fazlasını yapabilirsiniz. Ayrıca hızlı ve tamamen ücretsizdir, öyleyse ne bekliyorsunuz?

+Basarken Yükseltme Oranını Gösterme

FarquesFarques doğrulanmış üye.

~ Everything has an end
Admin
Developer
VİP Üye
Katılım
Tem 11, 2024
Mesajlar
214
Tepkime puanı
135
Konum
ANKARA
W0rzQY.png
root/uirefine.py
Python:
import app
import net
import player
import item
import ui
import uiToolTip
import mouseModule
import localeInfo
import uiCommon
import constInfo

class RefineDialog(ui.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):
 ui.ScriptWindow.__init__(self)
 self.__LoadScript()

 self.scrollItemPos = 0
 self.targetItemPos = 0

 def __LoadScript(self):

 self.__LoadQuestionDialog()

 try:
 pyScrLoader = ui.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")

 ## 936 : 개량 확률 표시 안함
 ##if 936 == app.GetDefaultCodePage():
 self.successPercentage.Show()

 toolTip = uiToolTip.ItemToolTip()
 toolTip.SetParent(self)
 toolTip.SetPosition(15, 38)
 toolTip.SetFollow(FALSE)
 toolTip.Show()
 self.toolTip = toolTip

 self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))

 def __del__(self):
 ui.ScriptWindow.__del__(self)

 def __LoadQuestionDialog(self):
 self.dlgQuestion = ui.ScriptWindow()

 try:
 pyScrLoader = ui.PythonScriptLoader()
 pyScrLoader.LoadScriptFile(self.dlgQuestion, "uiscript/questiondialog2.py")
 except:
 import exception
 exception.Abort("RefineDialog.__LoadQuestionDialog.LoadScript")

 try:
 GetObject=self.dlgQuestion.GetChild
 GetObject("message1").SetText(localeInfo.REFINE_DESTROY_WARNING)
 GetObject("message2").SetText(localeInfo.REFINE_WARNING2)
 GetObject("accept").SetEvent(ui.__mem_func__(self.Accept))
 GetObject("cancel").SetEvent(ui.__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(localeInfo.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(ui.ScriptWindow):

 def __init__(self):
 ui.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.cost = 0
 self.percentage = 0
 self.type = 0

 def __LoadScript(self):

 try:
 pyScrLoader = ui.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.GetChild("AcceptButton").SetEvent(self.OpenQuestionDialog)
 self.GetChild("CancelButton").SetEvent(self.CancelRefine)
 except:
 import exception
 exception.Abort("RefineDialog.__LoadScript.BindObject")

 ## 936 : 개량 확률 표시 안함
 ##if 936 == app.GetDefaultCodePage():
 self.successPercentage.Show()

 toolTip = uiToolTip.ItemToolTip()
 toolTip.SetParent(self)
 toolTip.SetFollow(FALSE)
 toolTip.SetPosition(15, 38)
 toolTip.Show()
 self.toolTip = toolTip

 self.slotList = []
 for i in xrange(3):
 slot = self.__MakeSlot()
 slot.SetParent(toolTip)
 slot.SetWindowVerticalAlignCenter()
 self.slotList.append(slot)

 itemImage = self.__MakeItemImage()
 itemImage.SetParent(toolTip)
 itemImage.SetWindowVerticalAlignCenter()
 itemImage.SetPosition(-35, 0)
 self.itemImage = itemImage

 self.titleBar.SetCloseEvent(ui.__mem_func__(self.CancelRefine))
 self.isLoaded = TRUE

 def __del__(self):
 ui.ScriptWindow.__del__(self)

 def __MakeSlot(self):
 slot = ui.ImageBox()
 slot.LoadImage("d:/ymir work/ui/public/slot_base.sub")
 slot.Show()
 self.children.append(slot)
 return slot

 def __MakeItemImage(self):
 itemImage = ui.ImageBox()
 itemImage.Show()
 self.children.append(itemImage)
 return itemImage

 def __MakeThinBoard(self):
 thinBoard = ui.ThinBoard()
 thinBoard.SetParent(self)
 thinBoard.Show()
 self.children.append(thinBoard)
 return thinBoard

 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 = []

 def Open(self, targetItemPos, nextGradeItemVnum, cost, prob, type):

 if FALSE == self.isLoaded:
 self.__LoadScript()

 self.__Initialize()

 self.targetItemPos = targetItemPos
 self.vnum = nextGradeItemVnum
 self.cost = cost
 self.percentage = prob
 self.type = type

 self.probText.SetText(localeInfo.REFINE_SUCCESS_PROBALITY % (self.percentage))
 self.costText.SetText(localeInfo.REFINE_COST % (self.cost))

 self.toolTip.ClearToolTip()
 metinSlot = []
 for i in xrange(player.METIN_SOCKET_MAX_NUM):
 metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))

 attrSlot = []
 for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
 attrSlot.append(player.GetItemAttribute(targetItemPos, i))
 self.toolTip.AddRefineItemData(nextGradeItemVnum, metinSlot, attrSlot)

 item.SelectItem(nextGradeItemVnum)
 self.itemImage.LoadImage(item.GetIconImageFileName())
 xSlotCount, ySlotCount = item.GetItemSize()
 for slot in self.slotList:
 slot.Hide()
 for i in xrange(min(3, ySlotCount)):
 self.slotList[i].SetPosition(-35, i*32 - (ySlotCount-1)*16)
 self.slotList[i].Show()

 self.dialogHeight = self.toolTip.GetHeight() + 46
 self.UpdateDialog()

 self.SetTop()
 self.Show()

 def Close(self):
 self.dlgQuestion = None
 self.Hide()

 def AppendMaterial(self, vnum, count):
 slot = self.__MakeSlot()
 slot.SetParent(self)
 slot.SetPosition(15, self.dialogHeight)

 itemImage = self.__MakeItemImage()
 itemImage.SetParent(slot)
 item.SelectItem(vnum)
 itemImage.LoadImage(item.GetIconImageFileName())

 thinBoard = self.__MakeThinBoard()
 thinBoard.SetPosition(50, self.dialogHeight)
 thinBoard.SetSize(191, 20)

 textLine = ui.TextLine()
 textLine.SetParent(thinBoard)
 textLine.SetFontName(localeInfo.UI_DEF_FONT)
 textLine.SetPackedFontColor(0xffdddddd)
 textLine.SetText("%s x %02d" % (item.GetItemName(), count))
 textLine.SetOutline()
 textLine.SetFeather(FALSE)
 textLine.SetWindowVerticalAlignCenter()
 textLine.SetVerticalAlignCenter()

 if localeInfo.IsARABIC():
 (x,y) = textLine.GetTextSize()
 textLine.SetPosition(x, 0)
 else:
 textLine.SetPosition(15, 0)

 textLine.Show()
 self.children.append(textLine)

 self.dialogHeight += 34
 self.UpdateDialog()

 def UpdateDialog(self):
 newWidth = self.toolTip.GetWidth() + 60
 newHeight = self.dialogHeight + 69

 ## 936 : 개량 확률 표시 안함
 ##if 936 == app.GetDefaultCodePage():
 newHeight -= 8

 if localeInfo.IsARABIC():
 self.board.SetPosition( newWidth, 0 )

 (x, y) = self.titleBar.GetLocalPosition()
 self.titleBar.SetPosition( newWidth - 15, y )

 self.board.SetSize(newWidth, newHeight)
 self.toolTip.SetPosition(15 + 35, 38)
 self.titleBar.SetWidth(newWidth-15)
 self.SetSize(newWidth, newHeight)

 (x, y) = self.GetLocalPosition()
 self.SetPosition(x, y)

 def OpenQuestionDialog(self):

 if 100 == self.percentage:
 self.Accept()
 return

 if 5 == self.type: ## 무신의 축복서
 self.Accept()
 return

 dlgQuestion = uiCommon.QuestionDialog2()
 dlgQuestion.SetText2(localeInfo.REFINE_WARNING2)
 dlgQuestion.SetAcceptEvent(ui.__mem_func__(self.Accept))
 dlgQuestion.SetCancelEvent(ui.__mem_func__(dlgQuestion.Close))

 if 3 == self.type: ## 현철
 dlgQuestion.SetText1(localeInfo.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_1)
 dlgQuestion.SetText2(localeInfo.REFINE_DESTROY_WARNING_WITH_BONUS_PERCENT_2)
 elif 2 == self.type: ## 축복서
 dlgQuestion.SetText1(localeInfo.REFINE_DOWN_GRADE_WARNING)
 else:
 dlgQuestion.SetText1(localeInfo.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
uiscript/refine.py
Python:
import uiScriptLocale

window = {
 "name" : "RefineDialog",
 "style" : ("movable", "float",),

 "x" : SCREEN_WIDTH - 400,
 "y" : 70 * 800 / SCREEN_HEIGHT,

 "width" : 0,
 "height" : 0 + 31,

 "children" :
 (
 {
 "name" : "Board",
 "type" : "board",
 "style" : ("attach",),

 "x" : 0,
 "y" : 0,

 "width" : 0,
 "height" : 0 + 31,

 "children" :
 (
 {
 "name" : "TitleBar",
 "type" : "titlebar",
 "style" : ("attach",),

 "x" : 8,
 "y" : 8,

 "width" : 0,
 "color" : "red",

 "children" :
 (
 {
 "name" : "TitleName",
 "type" : "text",
 "text" : uiScriptLocale.REFINE_TTILE,
 "horizontal_align" : "center",
 "text_horizontal_align" : "center",
 "x" : 0,
 "y" : 3,
 },
 ),
 },
 {
 "name" : "SuccessPercentage",
 "type" : "text",
 "text" : uiScriptLocale.REFINE_INFO,
 "horizontal_align" : "center",
 "vertical_align" : "bottom",
 "text_horizontal_align" : "center",
 "x" : 0,
 "y" : 60,
 },
 {
 "name" : "Cost",
 "type" : "text",
 "text" : uiScriptLocale.REFINE_COST,
 "horizontal_align" : "center",
 "vertical_align" : "bottom",
 "text_horizontal_align" : "center",
 "x" : 0,
 "y" : 47,
 },
 {
 "name" : "AcceptButton",
 "type" : "button",

 "x" : -35,
 "y" : 30,

 # "text" : uiScriptLocale.OK,
 "horizontal_align" : "center",
 "vertical_align" : "bottom",

 "default_image" : "d:/ymir work/ui/new/ok1.sub",
 "over_image" : "d:/ymir work/ui/new/ok2.sub",
 "down_image" : "d:/ymir work/ui/new/ok3.sub",
 },
 {
 "name" : "CancelButton",
 "type" : "button",

 "x" : 35,
 "y" : 30,

 # "text" : uiScriptLocale.CANCEL,
 "horizontal_align" : "center",
 "vertical_align" : "bottom",

 "default_image" : "d:/ymir work/ui/new/no1.sub",
 "over_image" : "d:/ymir work/ui/new/no2.sub",
 "down_image" : "d:/ymir work/ui/new/no3.sub",
 },
 ),
 },
 ),
}
 
143Konular
278Mesajlar
100Kullanıcılar
PixelArtSon üye
Üst