Jump to content
  • 0

Bouton Pet Gui dans la taskbar


Jinzo

Question

Version des fichiers/ Type d'émulateur : Metin2

Domaine (Base de données, Client, Core...) : FIles et client 2016 FE

Votre niveau (Débutant, Intermédiaire, Avancé..) : intermédiaire

 

Description du problème : Bouton Pet Gui visible mais non utilisable

Comment reproduire le problème ? : Bonne question

Recherches et tests effectués : La toile

 

Screenshot du problème concerné : 181103073055463591.png

 

Bonjour la communauté , comme mentionné dans le titre , où puis-je mettre en fonctionnement le bouton Pet Gui dans les fichier .py de mon client ?

Je ne me rappelle plus où chercher. 

 

Les fonctions avec la touche "P" fonctionne, la question est de savoir où est-ce que je dois relier cette même fonction avec le bouton, le souci qui se pose est que lorsque le pointeur est sur le bouton rien ne se passe, il est visible IG mais rien de plus .

 

Merci de vos futures réponses.

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.

Link to post

Recommended Posts

  • 0

L'interface est Illumina , j'ai récuperer 27 morceaux de l'interface dans divers site d'émulation étranger , que j'ai mis bout a bout en corrigeant les erreur de script , ensuite le design du dragon soul et du Pet Gui sont de moi , et non pas de syserr . il me manque juste la fonction a mettre en place .

 

je t'invite a regarder mon post ici , il y a des screen de mon travail sur le design .

 

 

Edited by Jinzo (see edit history)
Link to post
  • 0

Ton interface est instancié (créé) dans ton game.py. Tout ce qui touche à l'interface se trouve dans (interfacemodule.py).

Normalement, tu devrais rajouter ton bouton dans le fichier interfacemodule:

		if uiTaskBar.TaskBar.IS_EXPANDED:
			self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_EXPAND, ui.__mem_func__(self.ToggleExpandedButton))
			self.wndExpandedTaskBar = uiTaskBar.ExpandedTaskBar()
			self.wndExpandedTaskBar.LoadWindow()
			self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_DRAGON_SOUL, ui.__mem_func__(self.ToggleDragonSoulWindow))


 

  • Like 1
Link to post
  • 0

Oui justement , a moins que je me trompe , voici ce que j'ai :

	def __MakeTaskBar(self):
		wndTaskBar = uiTaskBar.TaskBar()
		wndTaskBar.LoadWindow()
		self.wndTaskBar = wndTaskBar
		self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_CHARACTER, ui.__mem_func__(self.ToggleCharacterWindowStatusPage))
		self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_INVENTORY, ui.__mem_func__(self.ToggleInventoryWindow))
		self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_MESSENGER, ui.__mem_func__(self.ToggleMessenger))
		self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_SYSTEM, ui.__mem_func__(self.ToggleSystemDialog))
		if uiTaskBar.TaskBar.IS_EXPANDED:
			self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_EXPAND, ui.__mem_func__(self.ToggleExpandedButton))
			self.wndExpandedTaskBar = uiTaskBar.ExpandedTaskBar()
			self.wndExpandedTaskBar.LoadWindow()
			self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_DRAGON_SOUL, ui.__mem_func__(self.ToggleDragonSoulWindow))
			self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_PET_GUI, ui.__mem_func__(self.TogglePetMain))

		else:
			self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_CHAT, ui.__mem_func__(self.ToggleChat))
		
		self.wndEnergyBar = None
		import constinfo
		if app.ENABLE_ENERGY_SYSTEM:
			wndEnergyBar = uiTaskBar.EnergyBar()
			wndEnergyBar.LoadWindow()
			self.wndEnergyBar = wndEnergyBar

dans mon local j'ai ceci , ce qui me parait correcte :

import uiScriptLocale

ROOT = "d:/ymir work/ui/game/"

Y_ADD_POSITION = 0
window = {
	"name" : "ExpandTaskBar",

	"x" : SCREEN_WIDTH/2 - 55,
	"y" : SCREEN_HEIGHT - 84,

	"width" : 37,
	"height" : 37,

	"children" :
	(
		{
			"name" : "ExpanedTaskBar_Board",
			"type" : "window",

			"x" : 0,
			"y" : 0,

			"width" : 37,
			"height" : 37,

			"children" :
			(
				{
					"name" : "DragonSoulButton",
					"type" : "button",

					"x" : 0,
					"y" : 0,

					"width" : 37,
					"height" : 37,

					"tooltip_text" : uiScriptLocale.TASKBAR_DISABLE,
							
					"default_image" : "d:/ymir work/ui/dragonsoul/DragonSoul_Button_01.tga",
					"over_image" : "d:/ymir work/ui/dragonsoul/DragonSoul_Button_02.tga",
					"down_image" : "d:/ymir work/ui/dragonsoul/DragonSoul_Button_03.tga",
				},
				{
					"name" : "PetGuiButton",
					"type" : "button",

					"x" : 74,
					"y" : 0,

					"width" : 37,
					"height" : 37,

					"tooltip_text" : "Pet Gui",

					"default_image" : "d:/ymir work/ui/pet/taskbar_pet_button_01.tga",
					"over_image" : "d:/ymir work/ui/pet/taskbar_pet_button_02.tga",
					"down_image" : "d:/ymir work/ui/pet/taskbar_pet_button_03.tga",
				},
			),
		},		
	),
}

 

Edited by Jinzo (see edit history)
Link to post
  • 0
def TogglePetMain(self):
		if False == player.IsObserverMode():
			if False == self.wndExpandedTaskBar.IsShow():
				self.wndExpandedTaskBar.Show()
				self.wndExpandedTaskBar.SetTop()
			else:
				self.wndExpandedTaskBar.Close()
		net.SendChatPacket("/gift")

Je pense que la fonction doit être correcte car la touche "P" IG affiche bien la fenêtré

Link to post
  • 0
onClickKeyDict[app.DIK_P] = lambda : self.OpenPetMainGui()
def OpenPetMainGui(self):
		self.petmain.Show()
		self.petmain.SetTop()

C'est tout ce que je trouve pour la touche "P"

 

Mais ce qui m'inquiète c'est que je n'ai même pas le survol qui s'affiche . Et sans le survol je ne peut pas avoir d'erreur dans le syserr ...

Edited by Jinzo (see edit history)
Link to post
  • 0

Mdr bah oui tu m'étonnes que ça marche pas.

 

En gros ton bouton d'interface est paramétré pour fermer l'expansion de la taskbar (le bouton du milieu), pas pour ouvrir l'interface de pets.

Est-ce que dans ton fichier interfacemodule.py le pet GUI est initialisé ? (logiquement oui vu que ça marche avec le bouton P)

Si oui, sous quel nom ? Comme mon truc par exemple:

self.wndpetInterface = None

 

  • Like 1
Link to post
  • 0

Ok donc en gros là ton système de pet est instancié mais pas dans ton interface, il est instancié dans le game.py.

Il est préférable de l'instancier dans l'interface mais soit, c'est une question de goût pour moi.

 

Ce que tu vas faire, c'est initialiser (dans la fonction __init__ de ton interfacemodule.py) le uipetsystem:

wndPetSystem = None

Ensuite dans ta fonction MakeTaskBar là où y'a le truc du bouton DragonSoul (qu'on a vu plus haut)

Tu vas devoir modifier le bouton où y'a écrit self.TogglePetMain et mettre:

self.wndPetSystem.OpenPetMainGui()

 

Ensuite, il faut créer la fonction qui va initialiser ton interface de pet:

def __MakePetSystem(self):
	wndPetSystem = uipetsystem.PetSystemMain()
	wndPetSystem.Hide()
	self.wndPetSystem = wndPetSystem

 

Dès que t'as fait ça, il faut ensuite le rajouter dans la fonction MakeInterface(self): (toujours dans interfacemodule.py)

comme ceci:

image.png.1ba2b100b1942ddd924372cb045326c7.png

 

Ensuite, dans Close(self): il faut penser à le "supprimer":

image.png.cb2ecbf60a3d2d3774e8e634952148a1.png

 

Un peu plus bas dans la même fonction, tu dois libérer l'objet de la mémoire:

image.png.601a6fe3c53378206d281cc1b5f17d5a.png

 

Pareil dans __HideWindows(self):, mais je vais pas tout réécrire ou coller, je pense que tu vois le principe.

 

Bien sûr, tout ça en n'oubliant pas que wndPetInterface c'est le nom de mon système, pas le même que le tien,

le tien ce sera wndPetSystem comme je t'ai dit de l'initialiser);

 

Il faudra donc que tu modifies ton game.py (la fonction qu'appelle la touche "P") par:

onPressKeyDict[app.DIK_P]			= lambda : self.interface.wndPetSystem.Show()

 

Par contre je te préviens, ça ne fermera pas la fenêtre si tu rappuies sur P. Show() ne permet que de l'ouvrir.

Il faudra que tu crées une fonction dans ton fichier de système de pet (uipetsystem.py je crois ?) qui te permette

de la fermer si elle est ouverte. Ça ressemble à ça chez moi:

 

def ToggleWindow(self):
	if self.Board.IsShow():
		self.Board.Hide()
	else:
		self.Board.Show()

 

Et du coup à la touche P tu remplaces "Show()" par "ToggleWindow()".

 

Et voilà ;)

 

Edited by Kameyu (see edit history)
  • Like 2
Link to post
  • 0

Voici ce que j'ai modifier :

 

def __init__(self):
		systemSetting.SetInterfaceHandler(self)
		self.windowOpenPosition = 0
		self.dlgWhisperWithoutTarget = None
		self.inputDialog = None
		self.tipBoard = None
		self.bigBoard = None
		self.BPisLoaded = 0
		self.wndGuild2 = uiguild_new.GuildWindow()
		self.wndPetSystem = None
		
	def __MakeTaskBar(self):
		wndTaskBar = uiTaskBar.TaskBar()
		wndTaskBar.LoadWindow()
		self.wndTaskBar = wndTaskBar
		self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_CHARACTER, ui.__mem_func__(self.ToggleCharacterWindowStatusPage))
		self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_INVENTORY, ui.__mem_func__(self.ToggleInventoryWindow))
		self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_MESSENGER, ui.__mem_func__(self.ToggleMessenger))
		self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_SYSTEM, ui.__mem_func__(self.ToggleSystemDialog))
		if uiTaskBar.TaskBar.IS_EXPANDED:
			self.wndTaskBar.SetToggleButtonEvent(uiTaskBar.TaskBar.BUTTON_EXPAND, ui.__mem_func__(self.ToggleExpandedButton))
			self.wndExpandedTaskBar = uiTaskBar.ExpandedTaskBar()
			self.wndExpandedTaskBar.LoadWindow()
			self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_DRAGON_SOUL, ui.__mem_func__(self.ToggleDragonSoulWindow))
			#self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_PET_GUI, ui.__mem_func__(self.wndPetSystem.OpenPetMainGui()))
	
	def __MakePetSystem(self):
		wndPetSystem = uipetsystem.PetSystemMain()
		wndPetSystem.Hide()
		self.wndPetSystem = wndPetSystem
		
	def MakeInterface(self):
		self.__MakePetSystem()
		
	def Close(self):
		if self.wndPetSystem:
			sefl.wndPetSystem.Destroy()

		del self.wndPetSystem
		
	def __HideWindows(self):
		hideWindows = self.wndTaskBar,\
						self.wndCharacter,\
						self.wndInventory,\
						self.wndMiniMap,\
						self.wndGuild,\
						self.wndMessenger,\
						self.wndChat,\
						self.wndParty,\
						self.wndGameButton,

		if self.wndPetSystem:
			hideWindows += self.wndPetSystem,
	
##### game.py

	onClickKeyDict[app.DIK_P] = lambda : self.interface.wndPetSystem.ToggleWindow()
	
#### uipetsystem.py

class PetSystemMain(ui.ScriptWindow):
	class TextToolTip(ui.Window):
		def ToggleWindow(self):
			if self.Board.IsShow():
				self.Board.Hide()
			else:
				self.Board.Show()

mais j'ai cette erreur :

1104 01:26:17714 :: CEffectManager::RegisterEffect - LoadScript(D:/ymir work/pc/fekete.mse) Error
1104 01:26:17714 :: CInstanceBase::RegisterEffect(eEftType=268, c_szEftAttachBone=Bip01, c_szEftName=D:/ymir work/pc/fekete.mse, isCache=0) - Error
1104 01:27:24112 :: Traceback (most recent call last):

1104 01:27:24112 ::   File "networkModule.py", line 247, in SetGamePhase

1104 01:27:24112 ::   File "game.py", line 105, in __init__

1104 01:27:24112 ::   File "interfaceModule.py", line 311, in MakeInterface

1104 01:27:24112 ::   File "interfaceModule.py", line 165, in __MakePetSystem

1104 01:27:24112 :: NameError
1104 01:27:24113 :: : 
1104 01:27:24113 :: global name 'uipetsystem' is not defined
1104 01:27:24113 :: 

 

Link to post
  • 0

Le jeu ce lance hors le bouton reste toujours inaccessible, pas de survol , je ne peux pas le sélectionner 

Rien dans le syserr

EDIT :

onClickKeyDict[app.DIK_P] = lambda: self.interface.wndPetSystem.ToggleWindow()

me retourne a cette erreur :

1104 02:22:40604 :: Traceback (most recent call last):

1104 02:22:40604 ::   File "game.py", line 1244, in OnKeyUp

1104 02:22:40604 ::   File "game.py", line 438, in <lambda>

1104 02:22:40604 ::   File "uipetsystem.py", line 147, in ToggleWindow

1104 02:22:40605 :: AttributeError
1104 02:22:40605 :: : 
1104 02:22:40605 :: 'PetSystemMain' object has no attribute 'Board'

J'ai pris le bouton dragon soul pour vérifier le fonctionnement , j'ai procédé comme suit :

#self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_DRAGON_SOUL, ui.__mem_func__(self.ToggleDragonSoulWindow))
#self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_PET_GUI, ui.__mem_func__(self.wndPetSystem.ToggleWindow))
self.wndExpandedTaskBar.SetToggleButtonEvent(uiTaskBar.ExpandedTaskBar.BUTTON_DRAGON_SOUL, ui.__mem_func__(self.wndPetSystem.ToggleWindow))
			

Le syserr reste inchangé toujours l'erreur :  1104 02:53:32074 :: 'PetSystemMain' object has no attribute 'Board'

Edited by Jinzo (see edit history)
Link to post
  • 0

C'est normal, je t'ai donné une fonction d'exemple, tu dois avoir autre chose à la place d'un "Board", ou alors sous un autre nom.

Montre-moi la définition de ta classe PetSystemMain(self)

Link to post
  • 0

Bonsoir et merci de revenir a mon aide voici la class :

class PetSystemMain(ui.ScriptWindow):
	
	def ToggleWindow(self):
		if self.Board.IsShow():
			self.Board.Hide()
		else:
			self.Board.Show()
	
	class TextToolTip(ui.Window):

		def __init__(self, y):
			ui.Window.__init__(self, "TOP_MOST")

			textLine = ui.TextLine()
			textLine.SetParent(self)
			textLine.SetHorizontalAlignLeft()
			textLine.SetOutline()
			textLine.Show()
			self.y = y
			self.textLine = textLine

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

		def SetText(self, text):
			self.textLine.SetText(text)

		def OnRender(self):
			(mouseX, mouseY) = wndMgr.GetMousePosition()
			self.textLine.SetPosition(mouseX, mouseY - 60 + self.y)

	def __init__(self, vnum = 0):
		ui.ScriptWindow.__init__(self)
		self.vnum = vnum
		self.__LoadWindow()
		

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

	def Show(self):
		ui.ScriptWindow.Show(self)

	def Close(self):
		self.Hide()
		self.feedwind.Close()
	
	def __LoadWindow(self):
		try:
			pyScrLoader = ui.PythonScriptLoader()
			pyScrLoader.LoadScriptFile(self, "uiscript/PetInformationWindow.py")
		except:
			import exception
			exception.Abort("PetInformationWindow.LoadWindow.LoadObject")
			
		try:
			self.feedwind = uipetfeed.PetFeedWindow()
			self.board = self.GetChild("board")
			self.boardclose = self.GetChild("CloseButton")
			
			self.slotimgpet = self.GetChild("UpBringing_Pet_Slot")
			self.evolname = self.GetChild("EvolName")
			self.petname = self.GetChild("PetName")
			
			self.expwind = self.GetChild("UpBringing_Pet_EXP_Gauge_Board")
			self.tooltipexp = []
			for i in range(0,4):
				self.tooltipexp.append(self.TextToolTip(15*i))
				self.tooltipexp[i].Hide()
			
			self.petlifeg = self.GetChild("LifeGauge")
			
			self.petlevel = self.GetChild("LevelValue")
			self.petexpa = self.GetChild("UpBringing_Pet_EXPGauge_01")
			self.petexpb = self.GetChild("UpBringing_Pet_EXPGauge_02")
			self.petexpc = self.GetChild("UpBringing_Pet_EXPGauge_03")
			self.petexpd = self.GetChild("UpBringing_Pet_EXPGauge_04")
			self.petexpe = self.GetChild("UpBringing_Pet_EXPGauge_05")
			self.petexppages = []			
			self.petexppages.append(self.petexpa)
			self.petexppages.append(self.petexpb)
			self.petexppages.append(self.petexpc)
			self.petexppages.append(self.petexpd)
			self.petexppages.append(self.petexpe)
			
			for exp in self.petexppages:
				exp.SetSize(0, 0)
				#exp.Hide()
				
			
			
			
			
			self.petages = self.GetChild("AgeValue")
			
			self.petdur = self.GetChild("LifeTextValue")
			
			#gaugehp
			
			self.nutribtn = self.GetChild("FeedLifeTimeButton")
			self.sviluppobtn = self.GetChild("FeedEvolButton")
			self.itemexp = self.GetChild("FeedExpButton")
			
			self.pethp = self.GetChild("HpValue")
			self.petdef = self.GetChild("DefValue")
			self.petsp = self.GetChild("SpValue")
			
			self.petskill0 = self.GetChild("PetSkillSlot0")
			
			
			
			
			
			
			
			#self.petskill0.SetPetSkillSlot(0, 2, 10)
			#self.petskill0.SetPetSkillSlot(1, 11, 10)
			#self.petskill0.SetPetSkillSlot(2, 5, 10)
			self.petskill0.SetSlot(0, 2, 32, 32, petskill.GetEmptySkill())
			self.petskill0.SetSlot(1, 2, 32, 32, petskill.GetEmptySkill())
			self.petskill0.SetSlot(2, 2, 32, 32, petskill.GetEmptySkill())
			#self.petskill0.SetCoverButton(0)
			#self.petskill0.SetCoverButton(1)
			#self.petskill0.SetCoverButton(2)
			#self.petskill0.SetAlwaysRenderCoverButton(0, TRUE)
			#self.petskill0.SetAlwaysRenderCoverButton(1, TRUE)
			#self.petskill0.SetAlwaysRenderCoverButton(2, TRUE)
			self.petskill0.SetSelectItemSlotEvent(ui.__mem_func__(self.UseSkill))
			self.petskill0.SetUseSlotEvent(ui.__mem_func__(self.UseSkill))
			self.petskill0.SetOverInItemEvent(ui.__mem_func__(self.PetSkillTooltipShow))
			self.petskill0.SetOverOutItemEvent(ui.__mem_func__(self.PetSkillTooltipHide))	
			
			
			
			self.SetDefaultInfo()
			
			self.arrytooltip = [ [-1,-1], [-1,-1], [-1,-1]]
			PET_FILE_NAME = "%s/pet_skill.txt" % app.GetLocalePath()
			PET_FILE_SKILL = "%s/pet_skill_bonus.txt" % app.GetLocalePath()
			self.linespet = pack_open(PET_FILE_NAME, "r").readlines()
			self.linespetskill = pack_open(PET_FILE_SKILL, "r").readlines()
			self.SkillTooltip = uiToolTip.ToolTip(180)
			
			
			#Event
			self.boardclose.SetEvent(ui.__mem_func__(self.Close,))
			self.nutribtn.SetToggleDownEvent(lambda arg=0,arg1=1: self.OpenFeedBox(arg,arg1))
			self.nutribtn.SetToggleUpEvent(lambda arg=1,arg1=0: self.OpenFeedBox(arg,arg1))
			self.itemexp.SetToggleDownEvent(lambda arg=0,arg1=3: self.OpenFeedBox(arg,arg1))
			self.itemexp.SetToggleUpEvent(lambda arg=1,arg1=0: self.OpenFeedBox(arg,arg1))
			self.sviluppobtn.SetToggleDownEvent(lambda arg=0: self.evolution(arg))
			self.sviluppobtn.SetToggleUpEvent(lambda arg=1: self.evolution(arg))
			
			
		except:
			import exception
			exception.Abort("PetInformationWindow.LoadWindow.BindObject")
	

			
	def PetSkillTooltipShow(self, slot):
		if self.arrytooltip[slot][0] > 0:
			tokens = self.linespet[self.arrytooltip[slot][0]-1][:-1].split("\t")
			tokens2 = self.linespetskill[self.arrytooltip[slot][0]-1][:-1].split("\t")
			self.SkillTooltip.ClearToolTip()
			self.SkillTooltip.AutoAppendTextLine(tokens[1], grp.GenerateColor(0.9490, 0.9058, 0.7568, 1.0))
			self.SkillTooltip.AppendDescription(tokens[4], 26)
			self.SkillTooltip.AppendSpace(5)
			if self.arrytooltip[slot][0] != 10 and self.arrytooltip[slot][0] != 17 and self.arrytooltip[slot][0] != 18:
				self.SkillTooltip.AutoAppendTextLine(GetAffectString(int(tokens2[1]), int(tokens2[self.arrytooltip[slot][1]+1])))
			elif self.arrytooltip[slot][0] == 10:
				self.SkillTooltip.AutoAppendTextLine("PV restaurés:" + str(tokens2[self.arrytooltip[slot][1]+1]))
			elif self.arrytooltip[slot][0] == 17:
				self.SkillTooltip.AutoAppendTextLine("Temps d'immortalité:" + checkdiv(int(tokens2[self.arrytooltip[slot][1]+1])) + "s")
			
			self.SkillTooltip.AutoAppendTextLine("Cooldown: "+tokens[5]+"s", grp.GenerateColor(1.0, 0.7843, 0.0, 1.0))
			self.SkillTooltip.AlignHorizonalCenter()
			self.SkillTooltip.ShowToolTip()
		
		
	def PetSkillTooltipHide(self):
		self.SkillTooltip.HideToolTip()
		
		
	def evolution(self, mode):
		if mode == 0:
			net.SendChatPacket("/petvoincrease")
			self.sviluppobtn.Enable()
		#self.SkillTooltip.HideToolTip()
		
	def SetDefaultInfo(self):
		self.evolname.SetText("")
		self.petname.SetText("")
		
		self.petlevel.SetText("")
		self.petages.SetText("")
		self.petdur.SetText("")
		
		self.pethp.SetText("")
		self.petdef.SetText("")
		self.petsp.SetText("")
		
		self.SetDuration("0", "0")
		
		self.slotimgpet.ClearSlot(0)
		self.petskill0.ClearSlot(0)
		self.petskill0.ClearSlot(1)
		self.petskill0.ClearSlot(2)
		self.petskill0.SetSlot(0, 2, 32, 32, petskill.GetEmptySkill())
		self.petskill0.SetSlot(1, 2, 32, 32, petskill.GetEmptySkill())
		self.petskill0.SetSlot(2, 2, 32, 32, petskill.GetEmptySkill())
		
		self.SetExperience(0,0,0)
		
		self.arrytooltip = [ [-1,-1], [-1,-1], [-1,-1]]
		
		self.nutribtn.Disable()
		self.sviluppobtn.Disable()
		self.itemexp.Disable()
	
	def OpenFeedBox(self, mode, btn):
		if constInfo.FEEDWIND == btn or constInfo.FEEDWIND == 0:
			if mode == 0:
				self.feedwind.Show()
				constInfo.FEEDWIND = btn
			else:
				self.feedwind.Close()
				constInfo.FEEDWIND = 0
		else:
			self.nutribtn.Enable()
			self.sviluppobtn.Enable()
			self.itemexp.Enable()
			self.feedwind.Close()
			constInfo.FEEDWIND = 0			
	
	def SetImageSlot(self, vnum):
		self.slotimgpet.SetItemSlot(0, int(vnum), 0)
		self.slotimgpet.SetAlwaysRenderCoverButton(0, TRUE)
	
			
	def SetEvolveName(self, name):
		self.evolname.SetText(name)
	
	def SetName(self, name):
		if name != "":
			self.nutribtn.Enable()
			self.sviluppobtn.Enable()
			self.itemexp.Enable()
			
			#pet.SetTop()
		else:
			self.nutribtn.Disable()
			self.sviluppobtn.Disable()
			self.itemexp.Disable()
			
		self.petname.SetText(name)
	
	def SetLevel(self, level):
		if int(level) == 40 or int(level) == 60 or int(level) == 80:
			constInfo.EVOLUTION = int(level)
		else:
			constInfo.EVOLUTION = 0
		self.petlevel.SetText(level)
	
	def SetAges(self, ages):
		self.petages.SetText(ages)
	
	def SetDuration(self, dur, durt):
		dur1 = int(dur)/60
		durt1 = int(durt)/60
		tmpage = int((int(durt)/60 -int(dur) /60)/24)		
		if int(dur) > 0:
			self.petlifeg.SetPercentage(int(dur)*1.6, int(durt))
			self.petlifeg.Show()
		else:
			self.petlifeg.Hide()
		self.petdur.SetText(str(dur1)+"/"+str(durt1)+" Heure(s)")
		self.SetAges(str(tmpage)+"Jour(s)")
		
	def SetHp(self, hp):
		self.pethp.SetText(pointop(hp)+"%")
		
	def SetDef(self, deff):
		self.petdef.SetText(pointop(deff)+"%")
		
	def SetSp(self, sp):
		self.petsp.SetText(pointop(sp)+"%")
	
	def SetSkill(self, slot, idx, lv):
		if int(idx) != -1:
			self.petskill0.ClearSlot(int(slot))
			self.petskill0.SetPetSkillSlot(int(slot), int(idx), int(lv))
			self.petskill0.SetCoverButton(int(slot))
			self.petskill0.SetAlwaysRenderCoverButton(int(slot), TRUE)
			self.arrytooltip[int(slot)][0] = int(idx)
			self.arrytooltip[int(slot)][1] = int(lv)
			#chat.AppendChat(chat.CHAT_TYPE_INFO, "Slot:"+str(slot)+" idx: "+str(idx)+" Lv:"+str(lv))
			
	def SetExperience(self, expm, expi, exptot):
		expm = int(expm)
		expi = int(expi)
		exptot = int(exptot)
		
		if exptot > 0:	
			totalexp = exptot
			totexpm = int( float(totalexp) / 100 * 90 )
			totexpi = totalexp - totexpm
			expi = min(expi, totexpi)
			expmp =  float(expm) / totexpm * 100
			expip =  float(expi) / totexpi * 100
		else:
			totalexp = 0
			totexpm = 0
			totexpi = 0
			expmp =  0
			expip =  0
			
		
		curPoint = int(min(expm, totexpm))
		curPoint = int(max(expm, 0))
		maxPoint = int(max(totexpm, 0))
		
		curPointi = int(min(expi, totexpi))
		curPointi = int(max(expi, 0))
		maxPointi = int(max(totexpi, 0))

		quarterPoint = maxPoint / 4
		quarterPointi = maxPointi 
		FullCount = 0
		FullCounti = 0

		if 0 != quarterPoint:
			FullCount = min(4, curPoint / quarterPoint)
			
		if 0 != quarterPointi:
			FullCounti = min(1, curPointi / quarterPointi)

		for i in xrange(4):
			self.petexppages[i].Hide()
			
		self.petexppages[4].Hide()

		for i in xrange(FullCount):
			self.petexppages[i].SetRenderingRect(0.0, 0.0, 0.0, 0.0)
			self.petexppages[i].Show()
			
		for i in xrange(FullCounti):
			self.petexppages[4].SetRenderingRect(0.0, 0.0, 0.0, 0.0)
			self.petexppages[4].Show()

		if 0 != quarterPoint:
			if FullCount < 4:
				Percentage = float(curPoint % quarterPoint) / quarterPoint - 1.0
				self.petexppages[FullCount].SetRenderingRect(0.0, Percentage, 0.0, 0.0)
				self.petexppages[FullCount].Show()
				
		if 0 != quarterPointi:
			if FullCounti < 1:
				Percentage = float(curPointi % quarterPointi) / quarterPointi - 1.0
				self.petexppages[4].SetRenderingRect(0.0, Percentage, 0.0, 0.0)
				self.petexppages[4].Show()
			
		#chat.AppendChat(chat.CHAT_TYPE_INFO, str(curPoint)+"-"+str(maxPoint)+"-"+str(FullCount)+"--"+str(quarterPoint))
		#####
		self.tooltipexp[0].SetText("Expérience : %d of %d" % (expm, totexpm))
		self.tooltipexp[1].SetText("Expérience : %.2f%%" % expmp)
		self.tooltipexp[2].SetText("ExpérienceI : %d of %d" % (expi, totexpi))
		self.tooltipexp[3].SetText("ExpérienceI : %.2f%%" % expip)
	
	def UseSkill(self, slot):
		#chat.AppendChat(chat.CHAT_TYPE_INFO, "+ --> "+str(slot))
		#chat.AppendChat(chat.CHAT_TYPE_INFO, "Skill: "+ str(petskill.GetSkillbySlot(slot)))
		net.SendChatPacket("/petskills "+str(slot))
	
	def OnUpdate(self):
		if constInfo.FEEDWIND == 0:
			self.nutribtn.Enable()
			#self.sviluppobtn.Enable()
			self.itemexp.Enable()
		if TRUE == self.expwind.IsIn():
			for i in range(0,4):				
				self.tooltipexp[i].Show()
		else:
			for i in range(0,4):				
				self.tooltipexp[i].Hide()
	
class PetSystemMini(ui.ScriptWindow):
	class TextToolTip(ui.Window):
		def __init__(self, y):
			ui.Window.__init__(self, "TOP_MOST")

			textLine = ui.TextLine()
			textLine.SetParent(self)
			textLine.SetHorizontalAlignLeft()
			textLine.SetOutline()
			textLine.Show()
			self.y = y
			self.textLine = textLine

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

		def SetText(self, text):
			self.textLine.SetText(text)

		def OnRender(self):
			(mouseX, mouseY) = wndMgr.GetMousePosition()
			self.textLine.SetPosition(mouseX, mouseY - 60 + self.y)

	def __init__(self, vnum = 0):
		ui.ScriptWindow.__init__(self)
		self.vnum = vnum
		self.__LoadWindow()
		

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

	def Show(self):
		ui.ScriptWindow.Show(self)

	def Close(self):
		self.Hide()
	
	def __LoadWindow(self):
		try:
			pyScrLoader = ui.PythonScriptLoader()
			pyScrLoader.LoadScriptFile(self, "uiscript/PetMiniInformationWindow.py")
		except:
			import exception
			exception.Abort("PetMiniInformationWindow.LoadWindow.LoadObject")
			
		try:
			
			self.expwind = self.GetChild("pet_mini_info_exp_gauge_board")
			self.mainbg = self.GetChild("main_bg")
			self.mainicon = self.GetChild("main_slot_img")
			self.main_slot_img = self.GetChild("pet_icon_slot")
			self.tooltipexp = []
			for i in range(0,4):
				self.tooltipexp.append(self.TextToolTip(15*i))
				self.tooltipexp[i].Hide()
			self.pet_icon_slot_ani_img = self.GetChild("pet_icon_slot_ani_img")
			self.pet_mini_exp_01 = self.GetChild("pet_mini_EXPGauge_01")
			self.pet_mini_exp_02 = self.GetChild("pet_mini_EXPGauge_02")
			self.pet_mini_exp_03 = self.GetChild("pet_mini_EXPGauge_03")
			self.pet_mini_exp_04 = self.GetChild("pet_mini_EXPGauge_04")
			self.pet_mini_exp_05 = self.GetChild("pet_mini_EXPGauge_05")
			self.petmini_exp = []
			self.petmini_exp.append(self.pet_mini_exp_01)
			self.petmini_exp.append(self.pet_mini_exp_02)
			self.petmini_exp.append(self.pet_mini_exp_03)
			self.petmini_exp.append(self.pet_mini_exp_04)
			self.petmini_exp.append(self.pet_mini_exp_05)
			self.petlifeg = self.GetChild("LifeGauge")
			
			
			
			self.skillslot = self.GetChild("mini_skill_slot0")
			#self.skillslot.SetSlotScale(0, 2, 16, 16, petskill.GetEmptySkill(), 0.5, 0.5)
			#self.skillslot.SetSlotScale(1, 2, 16, 16, petskill.GetEmptySkill(), 0.5, 0.5)
			#self.skillslot.SetSlotScale(2, 2, 16, 16, petskill.GetEmptySkill(), 0.5, 0.5)
			
			self.skillslot.SetSelectItemSlotEvent(ui.__mem_func__(self.UseSkill))
			self.skillslot.SetUseSlotEvent(ui.__mem_func__(self.UseSkill))
			
			
			
			
			
			
			self.SetDefaultInfo()
			
			
			
			#self.mainbg.Show()
			
		except:
			import exception
			exception.Abort("PetMiniInformationWindow.LoadWindow.BindObject")
			
		
		
	def SetDefaultInfo(self):		
		
		self.SetDuration("0", "0")
		
		self.main_slot_img.ClearSlot(0)
		self.skillslot.ClearSlot(0)
		self.skillslot.ClearSlot(1)
		self.skillslot.ClearSlot(2)
		#self.skillslot.SetSlotScale(0, 2, 16, 16, petskill.GetEmptySkill(), 0.5, 0.5)
		#self.skillslot.SetSlotScale(1, 2, 16, 16, petskill.GetEmptySkill(), 0.5, 0.5)
		#self.skillslot.SetSlotScale(2, 2, 16, 16, petskill.GetEmptySkill(), 0.5, 0.5)
		
		self.SetExperience(0,0,0)
		
		
		
	
	def SetImageSlot(self, vnum):
		self.main_slot_img.SetItemSlot(0, int(vnum), 0)
		self.main_slot_img.SetAlwaysRenderCoverButton(0, TRUE)
	
			
	def SetDuration(self, dur, durt):
		tmpage = int((int(durt)/60 -int(dur) /60)/24)		
		if int(dur) > 0:
			self.petlifeg.SetPercentage(int(dur), int(durt))
			self.petlifeg.Show()
		else:
			self.petlifeg.Hide()
		
	def SetSkill(self, slot, idx, lv):
		if int(idx) != -1:
			self.skillslot.ClearSlot(int(slot))
			self.skillslot.SetPetSkillSlot(int(slot), int(idx), int(lv), 0.5, 0.5)
			self.skillslot.SetCoverButton(int(slot), "d:/ymir work/ui/pet/mini_window/pet_slot_corvermini.sub", "d:/ymir work/ui/pet/mini_window/pet_slot_corvermini.sub", "d:/ymir work/ui/pet/mini_window/pet_slot_corvermini.sub" , "d:/ymir work/ui/pet/mini_window/pet_slot_corvermini.sub")
			self.skillslot.SetAlwaysRenderCoverButton(int(slot), TRUE)
			
			
	def SetExperience(self, expm, expi, exptot):
		expm = int(expm)
		expi = int(expi)
		exptot = int(exptot)
		
		if exptot > 0:	
			totalexp = exptot
			totexpm = int( float(totalexp) / 100 * 90 )
			totexpi = totalexp - totexpm
			expi = min(expi, totexpi)
			expmp =  float(expm) / totexpm * 100
			expip =  float(expi) / totexpi * 100
		else:
			totalexp = 0
			totexpm = 0
			totexpi = 0
			expmp =  0
			expip =  0
			
		
		curPoint = int(min(expm, totexpm))
		curPoint = int(max(expm, 0))
		maxPoint = int(max(totexpm, 0))
		
		curPointi = int(min(expi, totexpi))
		curPointi = int(max(expi, 0))
		maxPointi = int(max(totexpi, 0))

		quarterPoint = maxPoint / 4
		quarterPointi = maxPointi 
		FullCount = 0
		FullCounti = 0

		if 0 != quarterPoint:
			FullCount = min(4, curPoint / quarterPoint)
			
		if 0 != quarterPointi:
			FullCounti = min(1, curPointi / quarterPointi)

		for i in xrange(4):
			self.petmini_exp[i].Hide()
			
		self.petmini_exp[4].Hide()

		for i in xrange(FullCount):
			self.petmini_exp[i].SetRenderingRect(0.0, 0.0, 0.0, 0.0)
			self.petmini_exp[i].Show()
			
		for i in xrange(FullCounti):
			self.petmini_exp[4].SetRenderingRect(0.0, 0.0, 0.0, 0.0)
			self.petmini_exp[4].Show()

		if 0 != quarterPoint:
			if FullCount < 4:
				Percentage = float(curPoint % quarterPoint) / quarterPoint - 1.0
				self.petmini_exp[FullCount].SetRenderingRect(0.0, Percentage, 0.0, 0.0)
				self.petmini_exp[FullCount].Show()
				
		if 0 != quarterPointi:
			if FullCounti < 1:
				Percentage = float(curPointi % quarterPointi) / quarterPointi - 1.0
				self.petmini_exp[4].SetRenderingRect(0.0, Percentage, 0.0, 0.0)
				self.petmini_exp[4].Show()
			
		
		#####
		self.tooltipexp[0].SetText("Expérience : %d of %d" % (expm, totexpm))
		self.tooltipexp[1].SetText("Expérience : %.2f%%" % expmp)
		self.tooltipexp[2].SetText("ExpérienceI : %d of %d" % (expi, totexpi))
		self.tooltipexp[3].SetText("ExpérienceI : %.2f%%" % expip)
	
	def UseSkill(self, slot):
		#chat.AppendChat(chat.CHAT_TYPE_INFO, "+ --> "+str(slot))
		#chat.AppendChat(chat.CHAT_TYPE_INFO, "Skill: "+ str(petskill.GetSkillbySlot(slot)))
		net.SendChatPacket("/petskills "+str(slot))

	def OnUpdate(self):
		if TRUE == self.expwind.IsIn():
			for i in range(0,4):				
				self.tooltipexp[i].Show()
		else:
			for i in range(0,4):				
				self.tooltipexp[i].Hide()

J'ai chercher de mon coté hors je n'ai pas trouvé la solution , peut être un peu quand même en mettant un "feedwind" qui m'ouvre bien une fenêtre mais pas la bonne .

Edited by Jinzo (see edit history)
Link to post
Guest
This topic is now closed to further replies.


  • Flux d'Activité

    1. 0

      [Installation] d'un serveur Web Complet sous Linux

    2. 0

      Source Dofus Rétro

    3. 2

      Stump 2.51 SauriiK V2.5

    4. 0

      Ereziah 1.29+ - PvP/PvM

    5. 1

      Demetra2 International: Eternal guild wars

    6. 12

      im looking for old clients or old weapons n armors and stuff

    7. 6

      PyLangGetter

    8. 6

      PyLangGetter

  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.