farkmt2official 1
farkmt2official
Sevdamsın 1
Sevdamsın
mavzermete 1
mavzermete
xranzei 1
xranzei
Best Studio 1
Best Studio
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle

TipBoard like Misali2 #lag fix

  • Konuyu başlatan Konuyu başlatan metin2008
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 32
  • Görüntüleme Görüntüleme 6K
5.00 yıldız(lar) 1 Değerlendirme Değerlendirenler
Sunucuların ilk açılışında oyuna giriş duyurularının ekranı kastırdığı hatanın çözümüdür.
İlk ve son duyuru 5sn beklerken yeni eklenen bir duyuru varsa anında diğerine geçiş yapacak.

metin2008.gif

uitip.py
Arat:
Python:
class TipBoard(ui.Bar):
Komple değiştir:
Python:
class TipBoard(ui.Bar):

    SCROLL_WAIT_TIME = 3.0
    TIP_DURATION = 5.0
    STEP_HEIGHT = 17

    def __init__(self):
        ui.Bar.__init__(self)

        self.AddFlag("not_pick")
        self.tipList = []
        self.dstPos = 0
        self.nextScrollTime = 0

        self.width = 370     

        self.SetPosition(0, 70)
        self.SetSize(370, 20)
        self.SetColor(grp.GenerateColor(0.0, 0.0, 0.0, 0.5))
        self.SetWindowHorizontalAlignCenter()

        self.__CreateTextBar()

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

    def __CreateTextBar(self):

        x, y = self.GetGlobalPosition()

        self.textBar = TextBar(370, 300)
        self.textBar.SetParent(self)
        self.textBar.SetPosition(3, 5)     
        self.textBar.SetClipRect(0, y, wndMgr.GetScreenWidth(), y+18)
        self.textBar.Show()

    def __CleanOldTip(self):

        leaveList = []
        for tip in self.tipList:
            madeTime = tip[0]
            if app.GetTime() - madeTime > self.TIP_DURATION:
                pass
            else:
                leaveList.append(tip)

        self.tipList = leaveList

        if not leaveList:
            self.textBar.ClearBar()
            self.Hide()
            return

        self.__RefreshBoard()

    def __RefreshBoard(self):
        self.textBar.ClearBar()

        index = 0
        for tip in self.tipList:
            text = tip[1]
            self.textBar.TextOut(0, index*self.STEP_HEIGHT, text)
            index += 1

    def SetTip(self, text):

        if not app.IsVisibleNotice():
            return
          
        curTime = app.GetTime()

        self.tipList.append((curTime, text))
        self.__RefreshBoard()

        self.nextScrollTime = app.GetTime()

        if not self.IsShow():
            self.dstPos = -self.STEP_HEIGHT
            self.Show()

    def OnUpdate(self):

        if not self.tipList:
            self.Hide()
            return

        self.TIP_DURATION = (1 if len(self.tipList) > 1 else 5)

        if (app.GetTime() > (self.nextScrollTime)-1):
            self.nextScrollTime = app.GetTime()
            self.__CleanOldTip()
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst