Çözüldü Python İtem Vnum çektirme

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

xxsehabe

Üye
Üye
Selam, farklı yükseltme oranlarında ritüel taşı yaptım. (Örn %100, %50 v.s).Bu item büyülü metal ve kutsama ile aynı mantıkla diğer itemin üstüne sürüklenince çalışıyor. Src kısmını yazabildim herhangi bir problem yok ancak, python'da çok iyi olmadığım için yazamıyorum. Yükseltme oranı hala, refine protodan çektiği şekilde gözüküyor. Yazdırmak istediğim şu Yükseltme Oranı = Refine'den gelen oran + Kullanılan itemin verdiği oran şeklinde. Bunun dinamik bir yapıya sahip olması gerekmiyor. Python'dan gelen itemin kodu örneğin 25042 ise prob = 100, 25043 ise = 50 gibi çektirmek istiyorum. Nasıl itemin vnumunu çektirebilirim ? Benim yapmak istediğim mantık şu şekilde ancak kodlarda yanlışlık var sanıyorum ;
Python:
    def Open(self, targetItemPos, nextGradeItemVnum, cost, prob, type):

        isAttached = mouseModule.mouseController.isAttached()
        if isAttached:
            attachedSlotType = mouseModule.mouseController.GetAttachedType()
            attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
            mouseModule.mouseController.DeattachObject()
            attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
            itemVNum = player.GetItemIndex(attachedInvenType, attachedSlotPos)
            if itemVnum == 25042:
                prob = 100
            elif itemVnum == 25043:
                prob = 20

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

        #if app.ENABLE_TITLE_SYSTEM:
            #self.__InitializeOpen()
        #else:
            #self.__Initialize()
        self.__InitializeOpen()
        self.targetItemPos = targetItemPos
        self.vnum = nextGradeItemVnum
        self.cost = cost
        self.percentage = prob
        self.type = type

        self.Clear()

        self.probText.SetText(localeInfo.REFINE_CURRENT_PERCENTAGE % (self.percentage))
        self.costText.SetText("%s" % (localeInfo.NumberToMoneyString(self.cost)))
 
İtem vnum çektirmek için kodlar doğru gözüküyor.
mouseModule.mouseController.GetAttachedItemIndex() kodu ile itemin vid değerini alabilirsiniz. Daha sonra item.SelectItem ile eşyanın diğer özelliklerini alabilirsiniz.
 
Sürüklenen itemin vermekte. uiinventory, uitooltip içerisindeki kodları okuyabilirsiniz.
 
uirefine.py dosyasına sürüklenen itemlerin bilgisini kaynak kodundan gelen pos id ile belirleniyor.

game.py
Python:
    def OpenRefineDialog(self, targetItemPos, nextGradeItemVnum, cost, prob, type=0):
        self.interface.OpenRefineDialog(targetItemPos, nextGradeItemVnum, cost, prob, type)

uirefine.py;
Python:
    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()
 
uirefine.py dosyasına sürüklenen itemlerin bilgisini kaynak kodundan gelen pos id ile belirleniyor.

game.py
Python:
    def OpenRefineDialog(self, targetItemPos, nextGradeItemVnum, cost, prob, type=0):
        self.interface.OpenRefineDialog(targetItemPos, nextGradeItemVnum, cost, prob, type)

uirefine.py;
Python:
    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()
Adminim tekrar cevabınız için teşekkür ederim ancak yine sürüklenen itemin kodunu nasıl çekebileceğimi attığınız kodlardan anlayamadım. Sadece itemin kodunu çekebileceğim kodu atar mısınız bana ?
 
uirefine.py’de bunu kullanamazsınız. Zaten itemi demirciye filan sürüklediğiniz zaman server tarafından itemin bilgileri belirttiğim kısıma geliyor. Başka bir dosyada ise mesajınızda belirttiğiniz kodları kullanarak alabilirsiniz
 
uirefine.py’de bunu kullanamazsınız. Zaten itemi demirciye filan sürüklediğiniz zaman server tarafından itemin bilgileri belirttiğim kısıma geliyor. Başka bir dosyada ise mesajınızda belirttiğiniz kodları kullanarak alabilirsiniz
uirefinede hiç bir şekilde itemin kodunu almam mümkün değil mi ? Farklı bir yöntem ile alabilme şansım var mı ?
@Whistle Adminim yardımlarınız için teşekkür ederim. Problemi çözdüm.
 
Son düzenleme:
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri