Çözüldü Great Offline Shop Satın Alma Sorunu

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 8
  • Gösterim Gösterim 844
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ı.

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
3.958
Çözümler
381
Beğeni
4.013
Puan
1.849
Ticaret Puanı
0
Merhaba, great offline shop kullanıyorum şimdiye dek göze batan bir problem ile karşılaşmadım. Karşılaştıklarımı da hallettim ancak pazardan eşya satın alırken soru sormuyor. (Almak istiyormusun?" vb.) diye.
Sağ tıkladığımda hemen envantere çekiyor itemi. Ama "Satın al" düğmesine basıp iteme bir kere sol tıkladığımda soruyu sorup öyle çekiyor.

Bu sağ tıklamada yaşanan sormadan satın alma sorununu nasıl çözebilirim?

Hiç bir syserr kaydı yok.
 
Çözüm
Anydesk ile bağlanıp beraber baktım. Sorun şuradan kaynaklıydı. Aynı fonksiyondan iki tane eklenilmiş;
Python:
Genişlet Daralt Kopyala
def Open(self, vid, type=0):
        self.vid=int(vid)
        isPrivateShop = False
        isMainPlayerPrivateShop = False
        myshop=False
        for i in xrange(len(constInfo.MyShops)):
            if int(constInfo.MyShops[i]["vid"]) == int(self.vid):
                myshop=True
                self.vid=int(constInfo.MyShops[i]["id"])
        chr.SelectInstance(self.vid)
        if chr.GetRace() == 30000 or not chr.IsNPC(self.vid):
            isPrivateShop = True
        if player.IsMainCharacterIndex(self.vid):
            myshop=True
            self.vid=""
        if myshop == True:
            isMainPlayerPrivateShop =...
Python ile aranız nasıl bilmiyorum ama bunu rahatlıkla ekleyebilirsiniz. Örnek olması bakımından uishop.py’yi inceleyebilirsiniz
 
Python ile aranız nasıl bilmiyorum ama bunu rahatlıkla ekleyebilirsiniz. Örnek olması bakımından uishop.py’yi inceleyebilirsiniz
Nasıl yapacağıma dair net bir fikrim yok. Bir örnek gösterme şansınız var mı?
Çünkü aynı shop sistemine sahip ve bu sorunun yaşanmadığı, başka birinden aldığım uinewshop.py dosyasında da ekstradan buna dair bir ekleme göremedim.
 
PopUpWindow komutunu satınalma modülüne eklersen düzelicektir. PopUpWindow kodlarını incelersen görürsün. mouseModule'de sağ tık ile item alma içine eklersen sorunun çözülücektir.
 
PopUpWindow komutunu satınalma modülüne eklersen düzelicektir. PopUpWindow kodlarını incelersen görürsün. mouseModule'de sağ tık ile item alma içine eklersen sorunun çözülücektir.
Açıkcası mousemodule de de gerekli olan her şeyi yaptım gösterildiği gibi. Sorunsuz olan bir filesten karşılaştırdım hiç bir fark yok.
 
Açıkcası mousemodule de de gerekli olan her şeyi yaptım gösterildiği gibi. Sorunsuz olan bir filesten karşılaştırdım hiç bir fark yok.
hmm, garip gerçekten normalde buyitem modülünün çalıştığı yerin öncesine PopUpWindow çıkartıp eğer evet'e basarsa buy command yollatıp hayıra basarsa return edildiğinde olması lazım mantıken
 
hmm, garip gerçekten normalde buyitem modülünün çalıştığı yerin öncesine PopUpWindow çıkartıp eğer evet'e basarsa buy command yollatıp hayıra basarsa return edildiğinde olması lazım mantıken
uishop.py de şu komut var evet. Ama bu normal pazarda çalışıyor, offline pazar da çalışmıyor maalesef.
uinewshop.py dosyası var, onda da böyle bir blok yok. Sorunsuz dediğim fileste de yok. Gerçekten anlam veremedim.

Python:
Genişlet Daralt Kopyala
def AskBuyItem(self, slotPos):
        slotPos = self.__GetRealIndex(slotPos)
        itemIndex = shop.GetItemID(slotPos)
        itemPrice = shop.GetItemPrice(slotPos)
        if app.ENABLE_CHEQUE_SYSTEM:
            itemCheque = shop.GetItemCheque(slotPos)
        itemCount = shop.GetItemCount(slotPos)

        item.SelectItem(itemIndex)
        itemName = item.GetItemName()

        itemBuyQuestionDialog = uiCommon.QuestionDialog()
        if app.ENABLE_CHEQUE_SYSTEM:
            if itemCheque > 0 and itemPrice <=0:
                itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM_CHEQUE_SIN_YANG(itemName, itemCount, localeInfo.NumberToCheque(itemCheque)))
            elif itemCheque <= 0 and itemPrice > 0:
                itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM(itemName, itemCount, localeInfo.NumberToGoldNotText(itemPrice)))
            elif itemCheque > 0 and itemPrice > 0:
                itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM_YANG_CHEQUE(itemName, itemCount, localeInfo.NumberToGoldNotText(itemPrice),localeInfo.NumberToGoldNotText(itemCheque)))
            elif shop.GetBuyWithItem(slotPos) != 0:
                itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM(itemName, itemCount, localeInfo.NumberToWithItemString(shop.GetBuyWithItemCount(slotPos), item.GetItemName())))
        else:
            itemBuyQuestionDialog.SetText(localeInfo.DO_YOU_BUY_ITEM(itemName, itemCount, localeInfo.NumberToMoneyString(itemPrice)))
        itemBuyQuestionDialog.SetAcceptEvent(lambda arg=True: self.AnswerBuyItem(arg))
        itemBuyQuestionDialog.SetCancelEvent(lambda arg=False: self.AnswerBuyItem(arg))
        itemBuyQuestionDialog.Open()
        itemBuyQuestionDialog.pos = slotPos
        self.itemBuyQuestionDialog = itemBuyQuestionDialog
        
        constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
 
Anydesk ile bağlanıp beraber baktım. Sorun şuradan kaynaklıydı. Aynı fonksiyondan iki tane eklenilmiş;
Python:
Genişlet Daralt Kopyala
def Open(self, vid, type=0):
        self.vid=int(vid)
        isPrivateShop = False
        isMainPlayerPrivateShop = False
        myshop=False
        for i in xrange(len(constInfo.MyShops)):
            if int(constInfo.MyShops[i]["vid"]) == int(self.vid):
                myshop=True
                self.vid=int(constInfo.MyShops[i]["id"])
        chr.SelectInstance(self.vid)
        if chr.GetRace() == 30000 or not chr.IsNPC(self.vid):
            isPrivateShop = True
        if player.IsMainCharacterIndex(self.vid):
            myshop=True
            self.vid=""
        if myshop == True:
            isMainPlayerPrivateShop = True

            self.btnBuy.Hide()
            self.btnSell.Hide()
            self.btnClose.Show()

        else:

            isMainPlayerPrivateShop = False

            self.btnBuy.Show()
            self.btnSell.Show()
            self.btnClose.Hide()
        shop.Open(isPrivateShop, isMainPlayerPrivateShop)

    def Open(self, vid):

        isPrivateShop = False
        isMainPlayerPrivateShop = False

        import chr
        if chr.IsNPC(vid):
            isPrivateShop = False
        else:
            isPrivateShop = True

        if player.IsMainCharacterIndex(vid):

            isMainPlayerPrivateShop = True

            self.btnBuy.Hide()
            self.btnSell.Hide()
            self.btnClose.Show()

        else:

            isMainPlayerPrivateShop = False

            self.btnBuy.Show()
            self.btnSell.Show()
            self.btnClose.Hide()

        shop.Open(isPrivateShop, isMainPlayerPrivateShop)

        self.tabIdx = 0

        if isPrivateShop:
            self.__HideMiddleTabs()
            self.__HideSmallTabs()
        else:
            if shop.GetTabCount() == 1:
                self.__ShowBuySellButton()
                self.__HideMiddleTabs()
                self.__HideSmallTabs()
            elif shop.GetTabCount() == 2:
                self.__HideBuySellButton()
                self.__ShowMiddleTabs()
                self.__HideSmallTabs()
                self.__SetTabNames()
                self.middleRadioButtonGroup.OnClick(0)
            elif shop.GetTabCount() == 3:
                self.__HideBuySellButton()
                self.__HideMiddleTabs()
                self.__ShowSmallTabs()
                self.__SetTabNames()
                self.middleRadioButtonGroup.OnClick(1)

        self.Refresh()
        self.SetTop()
        
        self.Show()

        (self.xShopStart, self.yShopStart, z) = player.GetMainCharacterPosition()

Şu şekilde değiştirip çözdük;
Python:
Genişlet Daralt Kopyala
    def Open(self, vid, type=0):
        self.vid=int(vid)
        isPrivateShop = False
        isMainPlayerPrivateShop = False
        myshop=False
        for i in xrange(len(constInfo.MyShops)):
            if int(constInfo.MyShops[i]["vid"]) == int(self.vid):
                myshop=True
                self.vid=int(constInfo.MyShops[i]["id"])
        chr.SelectInstance(self.vid)
        if (chr.GetRace() == 30000) or not chr.IsNPC(self.vid):
            isPrivateShop = True
        if player.IsMainCharacterIndex(self.vid):
            myshop=True
            self.vid=""
        if myshop == True:
            isMainPlayerPrivateShop = True

            self.btnBuy.Hide()
            self.btnSell.Hide()
            self.btnClose.Show()

        else:

            isMainPlayerPrivateShop = False

            self.btnBuy.Show()
            self.btnSell.Show()
            self.btnClose.Hide()
        shop.Open(isPrivateShop, isMainPlayerPrivateShop)

        self.tabIdx = 0

        if isPrivateShop:
            self.__HideMiddleTabs()
            self.__HideSmallTabs()
        else:
            if shop.GetTabCount() == 1:
                self.__ShowBuySellButton()
                self.__HideMiddleTabs()
                self.__HideSmallTabs()
            elif shop.GetTabCount() == 2:
                self.__HideBuySellButton()
                self.__ShowMiddleTabs()
                self.__HideSmallTabs()
                self.__SetTabNames()
                self.middleRadioButtonGroup.OnClick(0)
            elif shop.GetTabCount() == 3:
                self.__HideBuySellButton()
                self.__HideMiddleTabs()
                self.__ShowSmallTabs()
                self.__SetTabNames()
                self.middleRadioButtonGroup.OnClick(1)

        self.Refresh()
        self.SetTop()
        
        self.Show()

        (self.xShopStart, self.yShopStart, z) = player.GetMainCharacterPosition()
 
Çözüm
@Whistle yardımlarınızdan dolayı teşekkür ediyorum, sonunda çözüldü.

Great OfflineShop Satın Alma Sorunu Çözümü Kanıt.jpg
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst