1 mesaj
Membru Începător Membru Începător
  • Mesaje: 3
  • Reacții: 1
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    Avatar utilizator
    Membru Începător
    Membru Începător
    *Descriere:

    *Poze / Video:

    *Link download / Code:
    Code:
    import time
    import math
    
    class ExpandedTaskBar(ui.ScriptWindow):
    	BUTTON_DRAGON_SOUL = 0
    	if app.ENABLE_SPECIAL_INVENTORY_SYSTEM:
    		BUTTON_SPECIAL_INVENTORY = 1
    	if app.ENABLE_GROWTH_PET_SYSTEM:
    		BUTTON_PET_INFO = 2
    	if app.ENABLE_EXCHANGE_LOG:
    		BUTTON_EXCHANGE = 3
    	if app.ENABLE_TELEPORT_WINDOW:
    		BUTTON_TELEPORT = 4
    	if app.ENABLE_BUFF_SYSTEM:
    		BUTTON_BUFF = 5
    	if app.ENABLE_REWARD_SYSTEM:
    		BUTTON_REWARD = 6
    
    	ANIM_STATE_OFF = 0
    	ANIM_STATE_RISE = 1
    	ANIM_STATE_EXPAND = 2
    	ANIM_STATE_COLLAPSE = 3
    	ANIM_STATE_FALL = 4
    
    	RISE_FALL_DURATION = 0.25
    	EXPAND_COLLAPSE_DURATION = 0.25
    
    	def _easeInOutCubic(self, p):
    		if p < 0.5:
    			return 4 * p * p * p
    		else:
    			f = (2 * p) - 2
    			return 0.5 * f * f * f + 1
    
    	def __init__(self):
    		ui.Window.__init__(self)
    		self.SetWindowName("ExpandedTaskBar")
    		self.exclusion_list = []
    		self.animState = self.ANIM_STATE_OFF
    		self.animStartTime = 0.0
    		self.finalX, self.finalY, self.finalWidth, self.finalHeight = 0, 0, 0, 0
    		self.button_order = []
    		self.animFunc = self._easeInOutCubic
    
    	def __del__(self):
    		ui.Window.__del__(self)
    
    	def LoadWindow(self):
    		try:
    			pyScrLoader = ui.PythonScriptLoader()
    			pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "ExpandedTaskBar.py")
    		except:
    			import exception
    			exception.Abort("ExpandedTaskBar.LoadWindow.LoadObject")
    		self.expandedTaskBarBoard = self.GetChild("ExpanedTaskBar_Board")
    		self.toggleButtonDict = {}
    		
    		self.toggleButtonDict[ExpandedTaskBar.BUTTON_DRAGON_SOUL] = self.GetChild("DragonSoulButton")
    		if app.ENABLE_SPECIAL_INVENTORY_SYSTEM:
    			self.toggleButtonDict[ExpandedTaskBar.BUTTON_SPECIAL_INVENTORY] = self.GetChild("SpecialInventoryButton")
    		if app.ENABLE_GROWTH_PET_SYSTEM:
    			self.toggleButtonDict[ExpandedTaskBar.BUTTON_PET_INFO] = self.GetChild("PetInfoButton")
    		if app.ENABLE_EXCHANGE_LOG:
    			self.toggleButtonDict[ExpandedTaskBar.BUTTON_EXCHANGE] = self.GetChild("ExchangeButton")
    		if app.ENABLE_TELEPORT_WINDOW:
    			self.toggleButtonDict[ExpandedTaskBar.BUTTON_TELEPORT]=self.GetChild("TeleportButton")
    		if app.ENABLE_BUFF_SYSTEM:
    			self.toggleButtonDict[ExpandedTaskBar.BUTTON_BUFF]=self.GetChild("BuffButton")
    		if app.ENABLE_REWARD_SYSTEM:
    			self.toggleButtonDict[ExpandedTaskBar.BUTTON_REWARD] = self.GetChild("RewardButton")
    
    		for button in self.toggleButtonDict.values():
    			button.SetParent(self)
    			
    		self.RePositionButton()
    
    	def RePositionButton(self):
    		self.button_order = []
    
    		if not ExpandedTaskBar.BUTTON_DRAGON_SOUL in self.exclusion_list:
    			self.button_order.append(ExpandedTaskBar.BUTTON_DRAGON_SOUL)
    		if app.ENABLE_SPECIAL_INVENTORY_SYSTEM:
    			if not ExpandedTaskBar.BUTTON_SPECIAL_INVENTORY in self.exclusion_list:
    				self.button_order.append(ExpandedTaskBar.BUTTON_SPECIAL_INVENTORY)
    		if app.ENABLE_GROWTH_PET_SYSTEM:
    			if not ExpandedTaskBar.BUTTON_PET_INFO in self.exclusion_list:
    				self.button_order.append(ExpandedTaskBar.BUTTON_PET_INFO)
    		if app.ENABLE_EXCHANGE_LOG:
    			if not ExpandedTaskBar.BUTTON_EXCHANGE in self.exclusion_list:
    				self.button_order.append(ExpandedTaskBar.BUTTON_EXCHANGE)
    		if app.ENABLE_TELEPORT_WINDOW:
    			if not ExpandedTaskBar.BUTTON_TELEPORT in self.exclusion_list:
    				self.button_order.append(ExpandedTaskBar.BUTTON_TELEPORT)
    		if app.ENABLE_BUFF_SYSTEM:
    			if not ExpandedTaskBar.BUTTON_BUFF in self.exclusion_list:
    				self.button_order.append(ExpandedTaskBar.BUTTON_BUFF)
    		if app.ENABLE_REWARD_SYSTEM:
    			if not ExpandedTaskBar.BUTTON_REWARD in self.exclusion_list:
    				self.button_order.append(ExpandedTaskBar.BUTTON_REWARD)
    
    		total_count = len(self.button_order)
    		self.finalHeight = self.expandedTaskBarBoard.GetHeight()
    		self.finalWidth = total_count * 36
    		self.finalX = (wndMgr.GetScreenWidth() - self.finalWidth) / 2
    		self.finalY = wndMgr.GetScreenHeight() - 74
    
    	def OnUpdate(self):
    		if self.animState == self.ANIM_STATE_OFF:
    			return
    
    		elapsedTime = time.clock() - self.animStartTime
    		
    		if self.animState == self.ANIM_STATE_RISE:
    			progress = min(elapsedTime / self.RISE_FALL_DURATION, 1.0)
    			scale = self.animFunc(progress)
    			currentY = (self.finalY + self.finalHeight) - (self.finalHeight * scale)
    			self.SetPosition((wndMgr.GetScreenWidth() - 36) / 2, currentY)
    			if progress >= 1.0:
    				self.animState = self.ANIM_STATE_EXPAND
    				self.animStartTime = time.clock()
    
    		elif self.animState == self.ANIM_STATE_EXPAND or self.animState == self.ANIM_STATE_COLLAPSE:
    			progress = min(elapsedTime / self.EXPAND_COLLAPSE_DURATION, 1.0)
    			scale = self.animFunc(progress)
    			if self.animState == self.ANIM_STATE_COLLAPSE:
    				scale = 1.0 - scale
    
    			currentWidth = 36 + ((self.finalWidth - 36) * scale)
    			currentX = (wndMgr.GetScreenWidth() - currentWidth) / 2
    			self.SetPosition(currentX, self.finalY)
    			self.SetSize(currentWidth, self.finalHeight)
    			self.expandedTaskBarBoard.SetSize(currentWidth, self.finalHeight)
    			
    			start_pos = (currentWidth - 36) / 2
    			
    			for i, key in enumerate(self.button_order):
    				target_pos = i * 36
    				pos_x = start_pos + ((target_pos - start_pos) * scale)
    				if key in self.toggleButtonDict:
    					self.toggleButtonDict[key].SetPosition(pos_x, 0)
    			
    			if progress >= 1.0:
    				if self.animState == self.ANIM_STATE_EXPAND:
    					self.animState = self.ANIM_STATE_OFF
    				else:
    					self.animState = self.ANIM_STATE_FALL
    					self.animStartTime = time.clock()
    
    		elif self.animState == self.ANIM_STATE_FALL:
    			progress = min(elapsedTime / self.RISE_FALL_DURATION, 1.0)
    			scale = 1.0 - self.animFunc(progress)
    			currentY = (self.finalY + self.finalHeight) - (self.finalHeight * scale)
    			self.SetPosition((wndMgr.GetScreenWidth() - 36) / 2, currentY)
    			if progress >= 1.0:
    				self.animState = self.ANIM_STATE_OFF
    				ui.ScriptWindow.Hide(self)
    
    	def Show(self):
    		if self.IsShow() and self.animState != self.ANIM_STATE_OFF:
    			return
    		
    		self.RePositionButton()
    		self.SetSize(36, self.finalHeight)
    		self.SetPosition((wndMgr.GetScreenWidth() - 36) / 2, self.finalY + self.finalHeight)
    		
    		for key in self.toggleButtonDict:
    			self.toggleButtonDict[key].SetPosition(0, 0)
    
    		ui.ScriptWindow.Show(self)
    		self.animState = self.ANIM_STATE_RISE
    		self.animStartTime = time.clock()
    		self.SetTop()
    
    	def Close(self):
    		if not self.IsShow() or self.animState in (self.ANIM_STATE_COLLAPSE, self.ANIM_STATE_FALL):
    			return
    		self.animState = self.ANIM_STATE_COLLAPSE
    		self.animStartTime = time.clock()
    
    	def SetTop(self):
    		super(ExpandedTaskBar, self).SetTop()
    		for button in self.toggleButtonDict.values():
    			button.SetTop()
    
    	def SetToolTipText(self, eButton, text):
    		if eButton in self.toggleButtonDict:
    			self.toggleButtonDict[eButton].SetToolTipText(text)
    
    	def SetToggleButtonEvent(self, eButton, kEventFunc):
    		if eButton in self.toggleButtonDict:
    			self.toggleButtonDict[eButton].SetEvent(kEventFunc)
    
    	def OnPressEscapeKey(self):
    		self.Close()
    		return True
    Trebuie adaptat la functiile si la sistemele voastre, mai jucati va cu pozitiile daca vreti sa-l incadrati corespunzator sa iasa si sa intre fix din centru

    Nou Cum descarc de pe TeraBox?

    Afișează detalii Ascunde detalii
    • Este asemănător cu Mega.nz
    • Instalați-vă clientul lor de Download de aici
    • Faceți-vă un cont (vă puteți loga cu Facebook / Google / etc)
    • Nou Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele rapid & simplu.

    De ce folosim TeraBox?

    • Este gratuit
    • Primești 1TB de spațiu gratuit la orice cont creat!
    • Este ușor de folosit și varianta premium este foarte ieftină
    • Fișierele nu sunt șterse niciodată
    TeraBox logo

    📢 Resurse Metin2 Premium!

    Zeci de resurse Metin2 Premium - exclusive și 100% funcționale începând cu 15.99€!.

    Vezi resursele Cumpără premium
    Premium
    Premium
    Anunț

    Creează-ți un cont sau autentifică-te pentru a participa la discuție

    Trebuie să fii membru pentru a răspunde

    Creează-ți un cont

    Membrii pot crea subiecte noi și pot descărca resurse Metin2 Gratuit!


    Te poți înregistra sau conecta rapid utilizând contul tău de Discord, Github sau Google.

    Înregistrare

    Autentifică-te

    Înapoi la “Îmbunătățiri”

    Informații

    Utilizatori ce navighează pe acest forum: Andrei Soim, br34k3r și 7 vizitatori

    Discord ID copiat: