Çözüldü Fırsatı Yakala Sistemi Seçenekler Arası Geçiş

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

DarkNight

Üye
Üye
Mesaj
260
Çözümler
10
Beğeni
58
Puan
499
Ticaret Puanı
0
Fırsatı yakala sisteminde teklifler arası geçiş yapamıyorum, ilk teklifi gösteriyor pencere açıldığında. Diğer tekliflere tıkladığımda o tekliflere giremiyorum.

uisales.py doysam

uisales.py:
Genişlet Daralt Kopyala
import app
import ui
import uiScriptLocale
import uiToolTip
import constInfo
import localeInfo
import uiCommon
import net
import player
import item
import chr
import dbg
import background
from _weakref import proxy
from itertools import islice
import chat
import grid         
 
class SalesClass(ui.ScriptWindow):
    class SearchResultItem(ui.Window):

        def __init__(self, parent, index, parent2):
            ui.Window.__init__(self)
            
            self.parent = parent
            self.parent2 = parent2
            self.isLoad = True
            self.isSelected = False
            self.index = index
            self.id = 0
            
            self.SetParent(parent2)
            self.InitItem()

            
        def InitItem(self):
            startX = 18
            yPos = 3
            
            self.tabimage = ui.MakeImageBox(self, "sales/normal.tga", 3, yPos+2)
            self.tabimage.SAFE_SetStringEvent("MOUSE_LEFT_UP",self.__OnSelect)
            self.tabimage.SetTop()
            self.tabimage.Show()
            
            self.title = ui.TextLine()
            self.title.SetParent(self)
            self.title.SetPosition(startX+67-75, yPos+6)
            self.title.SetFontName("Arial:12")
            self.title.Show()
            
            
            self.timer = ui.TextLine()
            self.timer.SetParent(self)
            self.timer.SetPosition(startX+67-75, yPos+18)
            self.timer.SetFontName("Arial:12")
            self.timer.Show()
            

                        
            self.SetSize(self.tabimage.GetWidth(), self.tabimage.GetHeight())
            

            
        def SetQuestName(self, name):
            self.title.SetText(name)
            
        def SetID(self, id):
            self.id = int(id)

        def SetTimerText(self, time):
            self.timer.SetText(time)
            
                

        
        
        def __OnSelect(self):
            self.parent.OnSearchResultItemSelect(self.index)

        def Select(self):

            self.isSelected = True
            self.isLoad = True

        def UnSelect(self):
            self.isSelected = False
            self.isLoad = True
            


        def OnUpdate(self):
            sure = int(constInfo.SalesList[int(self.index)]["time"])
            tip = int(constInfo.SalesList[int(self.index)]["type"])

            sure = sure-app.GetGlobalTimeStamp()
            
            
            
            if sure > 0:
                if tip > 0:
                    self.title.SetText("Teklif "+str(self.id)+" "+ constInfo.sarirenk+" Teklif henüz başlamadı! ")
                    self.SetTimerText(constInfo.sarirenk + localeInfo.CalcTimeWithLetter(sure))
                else:
                    self.title.SetText("Teklif "+str(self.id)+" "+ constInfo.yesilrenk+" Teklif devam ediyor! ")
                    self.SetTimerText(constInfo.yesilrenk +localeInfo.CalcTimeWithLetter(sure))
            else:
                if tip > 0:
                    sure = sure+(tip*60*60)
                    if sure > 0:
                        self.title.SetText("Teklif "+str(self.id)+" "+ constInfo.yesilrenk+" Teklif devam ediyor! ")
                        self.SetTimerText(constInfo.yesilrenk +localeInfo.CalcTimeWithLetter(sure))
                    else:
                        self.title.SetText("Teklif "+str(self.id))
                        self.SetTimerText(constInfo.kirmizirenk + "Teklifin süresi doldu!")
                else:
                    self.title.SetText("Teklif "+str(self.id))
                    self.SetTimerText(constInfo.kirmizirenk + "Teklifin süresi doldu!")
            


        def OnRender(self):
            if self.isLoad:
                if self.isSelected:
                    self.tabimage.LoadImage("sales/active.tga")
                else:
                    self.tabimage.LoadImage("sales/normal.tga")
                    
                self.isLoad = False


    def __init__(self):
        ui.ScriptWindow.__init__(self)
        
        self.selectedItemIndex = -1
        self.board = None
        self.RefreshSymbol = None
        self.QuestionDialog = None
        self.secilen = -1
        self.id = -1
        self.m_pGrid = grid.PythonGrid(5, 4)                             

        self.searchResultItems = []

        self.itemDataList = []
        self.slotvnum = []
        
        self.timerdone = 0
        self.timer = 0
        self.isload = 0
        
        self.tooltipItem = uiToolTip.ItemToolTip()
        self.tooltipItem.Hide()
        
        self.LoadWindow()
        



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

    def LoadWindow(self):
        try:
            pyScrLoader = ui.PythonScriptLoader()
            pyScrLoader.LoadScriptFile(self, "uiscript/sales.py")
        except:
            import exception
            exception.Abort("SalesClass.LoadDialog.LoadScript")

        try:
            GetObject=self.GetChild
            self.board = GetObject("board")
            self.basliktext = GetObject("basliktext")
            self.reward = GetObject("reward")
            self.scroll = self.GetChild("scroll")
            self.buy = self.GetChild("buy")
            self.fiyattext = self.GetChild("fiyattext")
            self.RefreshSymbol = GetObject("RefreshSymbol")
            self.bg2 = GetObject("bg2")
            self.bg1 = GetObject("bg1")
            self.scrollstartindex = 0
            self.buy.SetEvent(ui.__mem_func__(self.BuyEvent))
            self.scroll.SetScrollEvent(ui.__mem_func__(self.OnQuestScroll))
            
            self.board.SetCloseEvent(ui.__mem_func__(self.__OnCloseButtonClick))
            # self.SetOnRunMouseWheelEvent(self.OnQuestScroll2)

        except:
            import exception
            exception.Abort("SalesClass.LoadDialog.BindObject")
            
            
        self.reward.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
        self.reward.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))

        
        
    def OverOutItem(self):
        self.tooltipItem.ClearToolTip()
        self.tooltipItem.HideToolTip()
        
        
        
    def OverInItem(self, slotIndex):
        self.tooltipItem.ClearToolTip()
        if int(self.slotvnum[slotIndex]) != 0:
            metinSlot = [0 for i in xrange(player.METIN_SOCKET_MAX_NUM)]
            self.tooltipItem.AddItemData(self.slotvnum[slotIndex],metinSlot)
            self.tooltipItem.Show()
        else:
            self.tooltipItem.HideToolTip()
            
            



    def Destroy(self):
        self.ClearDictionary()
        self.searchResultItems[:] = []
        self.itemDataList[:] = []
        self.slotvnum[:] = []
        self.titleBar = None
        self.scroll = None
        self.RefreshSymbol = None
        self.board = None
        self.scrollstartindex = None
        self.QuestionDialog = None
        self.id = -1
        self.secilen = -1
        self.selectedItemIndex = -1
        self.timerdone = 0
        self.timer = 0
        self.isload = 0
        self.m_pGrid = None             
        

        
        
    def OnQuestScroll2(self, len):
        if str(len) == "True":
            self.scroll.OnDown()
        else:
            self.scroll.OnUp()
        
    def OnQuestScroll(self):
        salecount = len(constInfo.SalesList)
        scrollLineCount = max(0, salecount - 8)
        startIndex = int(scrollLineCount * self.scroll.GetPos())

        if startIndex != self.scrollstartindex:
            self.scrollstartindex = startIndex
            self.RefreshInfo()

        
    def RefreshInfo(self):
        salecount = len(constInfo.SalesList)
        self.searchResultItems[:] = []
        
        if salecount > 8:
            self.scroll.Show()
        else:
            self.scroll.Hide()

        count = 8
        
        if len(constInfo.SalesList) < count:
            count = len(constInfo.SalesList)
        
        basePos = 5
        for i in range(0+self.scrollstartindex, count+self.scrollstartindex):
            resultItem = SalesClass.SearchResultItem(self, i, self.bg1)
            resultItem.SetPosition(5, basePos+((i-self.scrollstartindex)*36))
            resultItem.SetID(int(constInfo.SalesList[i]["id"]))
            resultItem.Show()
            
            self.searchResultItems.append(resultItem)
        
        self.Children.append(self.searchResultItems)




    def Open(self):   
        self.selectedItemIndex = -1
        if self.isload == 0:
            self.isload = 1
        else:
            net.SendChatPacket("/sales_list")
        self.timer = app.GetTime()+1
        self.timerdone = 0
        self.scroll.Hide()
        self.bg1.Hide()
        self.bg2.Hide()
        self.RefreshSymbol.Show()
        
        self.Show()
        self.SetCenterPosition()

    
    def BuyEvent(self):
        self.QuestionDialog = None
        
        QuestionDialog = uiCommon.QuestionDialog()
        QuestionDialog.SetText("Satın almak istiyor musun?")
        QuestionDialog.SetAcceptEvent(lambda arg=True: self.Answer(arg))
        QuestionDialog.SetCancelEvent(lambda arg=False: self.Answer(arg))
        QuestionDialog.Open()
        self.QuestionDialog = QuestionDialog
        
    def Answer(self, answer):

        if not self.QuestionDialog:
            return
            
        if answer == False:
            self.QuestionDialog.Close()
            self.QuestionDialog = None
            return

        net.SendChatPacket("/sales_buy "+str(self.secilen+1))

        self.QuestionDialog.Close()
        self.QuestionDialog = None
        
        
    def OnUpdate(self):
        if self.timer <= app.GetTime() and self.timerdone == 0:
            self.RefreshInfo()
            self.RefreshSymbol.Hide()
            self.bg1.Show()
            self.bg2.Show()
            self.OnSearchResultItemSelect(0+self.scrollstartindex)
            self.timerdone = 1
        else:
            if self.secilen == -1:
                return
                
            if len(constInfo.SalesList) == 0:
                return
                
            if self.secilen > len(constInfo.SalesList):
                return
            
            sure = int(constInfo.SalesList[int(self.secilen)]["time"])
            tip = int(constInfo.SalesList[int(self.secilen)]["type"])
            
            sure = sure - app.GetGlobalTimeStamp()
                
            if (sure > 0):
                if (tip > 0):
                    self.basliktext.SetText("Başlamasına Kalan Süre : "+localeInfo.CalcTime(sure))
                else:
                    self.basliktext.SetText("Kalan Süre : "+localeInfo.CalcTime(sure))
            else:
                if tip > 0:
                    sure = sure+(tip*60*60)
                    if sure > 0:
                        self.basliktext.SetText("Kalan Süre : "+localeInfo.CalcTime(sure))
                    else:
                        self.basliktext.SetText("Teklifin süresi doldu!")
                else:
                    self.basliktext.SetText("Teklifin süresi doldu!")
    
    
    def FindBlank(self, itemWidth, itemHeight):
        return self.m_pGrid.FindBlank(itemWidth, itemHeight)   
        
    def OnSearchResultItemSelect(self, index):
        if self.scrollstartindex > 0:
            self.selectedItemIndex = index - self.scrollstartindex
        else:
            self.selectedItemIndex = index
        self.secilen = index
        
        map(SalesClass.SearchResultItem.UnSelect,  self.searchResultItems)
        
        if len(constInfo.SalesList) == 0:
            return
        
        listcount = len(constInfo.SalesList[index]["items"][0])
        if listcount == 0:
            return
        
        self.searchResultItems[self.selectedItemIndex].Select()
        self.fiyattext.SetText(str(constInfo.SalesList[index]["normal_price"])+ " EP yerine " +str(constInfo.SalesList[index]["sales_price"])+ " EP")
                
        for i in range(self.reward.GetSlotCount()):
            self.reward.ClearSlot(i)
            
        self.reward.RefreshSlot()
            
        self.slotvnum = [0 for i in xrange(24)]
        
        self.m_pGrid.Clear()
        
        for i in range(self.reward.GetSlotCount()):
            if i < listcount:
                count = int(constInfo.SalesList[index]["items"][0][i]["count"])
                vnum = int(constInfo.SalesList[index]["items"][0][i]["vnum"])
                item.SelectItem(vnum)
                (iWidth, iHeight) = item.GetItemSize()
                iPos = self.FindBlank(iWidth, iHeight)
                if iPos != -1:
                    self.m_pGrid.Put(iPos, iWidth, iHeight)
                    if count == 1:
                        count = 0
                    self.reward.SetItemSlot(iPos, vnum, count)
                    self.slotvnum[iPos] = vnum
            
                
        self.reward.RefreshSlot()
        
        sure = int(constInfo.SalesList[int(self.secilen)]["time"])
        tip = int(constInfo.SalesList[int(self.secilen)]["type"])
        
        suree = sure - app.GetGlobalTimeStamp()


    def Close(self):
        map(SalesClass.SearchResultItem.Hide, self.searchResultItems)
        self.Hide()


    def __OnCloseButtonClick(self):
        map(SalesClass.SearchResultItem.Hide, self.searchResultItems)
        self.Hide()

    def OnPressEscapeKey(self):
        self.Close()
 
Son düzenleme:
Çözüm
sistemin py dosyası:
Genişlet Daralt Kopyala
#arat
self.tabimage = ui.MakeImageBox(self, "sales/normal.tga", 3, yPos+2)

#değiştir
self.tabimage = ui.MakeImageBox2(self, "sales/normal.tga", 3, yPos+2)

ui.py:
Genişlet Daralt Kopyala
#ara
def MakeImageBox(parent, name, x, y):

#üstüne ekle
def MakeImageBox2(parent, name, x, y):
    image = ImageBox2()
    image.SetParent(parent)
    image.LoadImage(name)
    image.SetPosition(x, y)
    image.Show()
    return image
sistemin py dosyası:
Genişlet Daralt Kopyala
#arat
self.tabimage = ui.MakeImageBox(self, "sales/normal.tga", 3, yPos+2)

#değiştir
self.tabimage = ui.MakeImageBox2(self, "sales/normal.tga", 3, yPos+2)

ui.py:
Genişlet Daralt Kopyala
#ara
def MakeImageBox(parent, name, x, y):

#üstüne ekle
def MakeImageBox2(parent, name, x, y):
    image = ImageBox2()
    image.SetParent(parent)
    image.LoadImage(name)
    image.SetPosition(x, y)
    image.Show()
    return image
 
Çözüm
sistemin py dosyası:
Genişlet Daralt Kopyala
#arat
self.tabimage = ui.MakeImageBox(self, "sales/normal.tga", 3, yPos+2)

#değiştir
self.tabimage = ui.MakeImageBox2(self, "sales/normal.tga", 3, yPos+2)

ui.py:
Genişlet Daralt Kopyala
#ara
def MakeImageBox(parent, name, x, y):

#üstüne ekle
def MakeImageBox2(parent, name, x, y):
    image = ImageBox2()
    image.SetParent(parent)
    image.LoadImage(name)
    image.SetPosition(x, y)
    image.Show()
    return image
Teşekkür ederim oldu <3
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst