Jump to content

Recommended Posts

hello guys, i just recently installed Render Target System, 

i've done everything correctly but now i'm facing this problem here:

Qvy_TGGIT5-QLWa_Rn8pRA.png

 

every time i click to view the item, a new window appears.

how can i make it only one window?


this is the part where it creates the window:

import work as ui
import wndMgr
import renderTarget
import app
import chr
import player
import item
import constInfo

class RenderTarget(ui.ScriptWindow):
	RENDER_TARGET_INDEX = 1
	Window = None

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

		self.max_pos_x = wndMgr.GetScreenWidth()
		self.max_pos_y = wndMgr.GetScreenHeight()
		self.Initialize()
		self.Init()
		
		# if app.ENABLE_WINDOW_SLIDE_EFFECT:
			# self.EnableSlidingEffect()

	def Initialize(self):
		self.interface = None

	#3@staticmethod
	def Get():
		if RenderTarget.Window == None:
			RenderTarget.Window = RenderTarget()

		return RenderTarget.Window

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

	def DisplayUser(self, vRace=0, vItemWeapon=0, vItemArmor=0, vItemHair=0, vItemSash=0, slotIndex = -1):
		renderTarget.SetBackground(self.RENDER_TARGET_INDEX, "d:/ymir work/ui/render_target.tga")
		renderTarget.SetVisibility(self.RENDER_TARGET_INDEX, True)
		renderTarget.SelectModel(self.RENDER_TARGET_INDEX, vRace)
		renderTarget.ResetSettings(self.RENDER_TARGET_INDEX)
		# renderTarget.SetEffect(self.RENDER_TARGET_INDEX)

		if vRace > 7:
			return

		playerRace = player.GetRace()

		if vItemArmor != 0:
			renderTarget.SetArmor(self.RENDER_TARGET_INDEX, vItemArmor)
		else:
			if playerRace == vRace:
				if player.GetItemIndex(item.COSTUME_SLOT_START) == 0:
					renderTarget.SetArmor(self.RENDER_TARGET_INDEX, player.GetItemIndex(player.EQUIPMENT_SLOT_START))
				else:
					renderTarget.SetArmor(self.RENDER_TARGET_INDEX, player.GetItemIndex(item.COSTUME_SLOT_START))
			else:
				renderTarget.SetArmor(self.RENDER_TARGET_INDEX, 0)

		if vItemWeapon != 0:
			renderTarget.SetWeapon(self.RENDER_TARGET_INDEX, vItemWeapon)
		else:
			if playerRace == vRace:
				if  player.GetItemIndex(item.COSTUME_SLOT_WEAPON) == 0:
					renderTarget.SetWeapon(self.RENDER_TARGET_INDEX, player.GetItemIndex(player.EQUIPMENT_SLOT_START+4))
				else:
					renderTarget.SetWeapon(self.RENDER_TARGET_INDEX, player.GetItemIndex(item.COSTUME_SLOT_WEAPON))
			else:
				renderTarget.SetWeapon(self.RENDER_TARGET_INDEX, 0)

		if vItemHair != 0:
			renderTarget.SetHair(self.RENDER_TARGET_INDEX, vItemHair)
		else:
			if playerRace == vRace:
				renderTarget.SetHair(self.RENDER_TARGET_INDEX, chr.GetHair())
			else:
				renderTarget.SetHair(self.RENDER_TARGET_INDEX, 0)

		if vItemSash != 0:
			renderTarget.SetAcce(self.RENDER_TARGET_INDEX, vItemSash)
		else:
			if playerRace == vRace:
				renderTarget.SetAcce(self.RENDER_TARGET_INDEX, player.GetItemIndex(item.COSTUME_SLOT_START+2))
			else:
				renderTarget.SetAcce(self.RENDER_TARGET_INDEX, 0)

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

		try:
			self.titleBar = self.GetChild("TitleBar")
			self.titleBar.CloseButton("show")
			self.titleBar.SetCloseEvent(self.Close)

			self.board = self.GetChild("board")

			self.RenderTarget = self.GetChild("RenderTarget")

			self.buttons = {
				"moveUp" : self.GetChild("mvUpCmrBtn"),
				"moveDown" : self.GetChild("mvDownCmrBtn"),
				"rotateLeft" : self.GetChild("rotLeftBtn"),
				"rotateRight" : self.GetChild("rotRightBtn"),

				"moveReset" : self.GetChild("mvResetBtn"),

				"zoomIn" : self.GetChild("zumInBtn"),
				"zoomOut" : self.GetChild("zumOutBtn"),
			}

			self.buttons["moveUp"].SetEvent(ui.__mem_func__(self.__ModelUpDownCameraProgress))
			self.buttons["moveDown"].SetEvent(ui.__mem_func__(self.__ModelUpDownCameraProgress))
			self.buttons["rotateLeft"].SetEvent(ui.__mem_func__(self.__ModelRotationProgress))
			self.buttons["rotateRight"].SetEvent(ui.__mem_func__(self.__ModelRotationProgress))
			self.buttons["moveReset"].SetEvent(ui.__mem_func__(self.__ResetSettings))
			self.buttons["zoomIn"].SetEvent(ui.__mem_func__(self.__ModelZoomProgress))
			self.buttons["zoomOut"].SetEvent(ui.__mem_func__(self.__ModelZoomProgress))

			self.SetCenterPosition()

		except:
			import exception
			exception.Abort("RenderTargetWindow.LoadDialog.BindObject")

	def BindInterface(self, interface):
		self.interface = interface

	def Destroy(self):
		self.Close()
		self.Initialize()

	def Close(self):
		self.Hide()

	def Open(self):
		if self.IsShow():
			self.Hide()

		self.Show()
		self.SetTop()

	def OnPressEscapeKey(self):
		self.Close()

	def MINMAX(self, min, value, max):

		if value < min:
			return min
		elif value > max:
			return max
		else:
			return value

	def OnUpdate(self):
		self.__ModelUpDownCameraProgress()
		self.__ModelRotationProgress()
		self.__ModelZoomProgress()

		x, y = self.GetGlobalPosition()

		pos_x = self.MINMAX(0, x, self.max_pos_x)
		pos_y = self.MINMAX(0, y, self.max_pos_y)

		self.SetPosition(pos_x, pos_y)

	def __ModelUpDownCameraProgress(self):
		if self.buttons["moveUp"].IsDown():
			renderTarget.SetRenderingPosition(self.RENDER_TARGET_INDEX, False)

		if self.buttons["moveDown"].IsDown():
			renderTarget.SetRenderingPosition(self.RENDER_TARGET_INDEX, True)

	def __ModelRotationProgress(self):
		if self.buttons["rotateLeft"].IsDown():
			renderTarget.SetMove(self.RENDER_TARGET_INDEX, False)

		if self.buttons["rotateRight"].IsDown():
			renderTarget.SetMove(self.RENDER_TARGET_INDEX, True)

	def __ModelZoomProgress(self):
		if self.buttons["zoomIn"].IsDown():
			renderTarget.SetZoom(self.RENDER_TARGET_INDEX, True)

		if self.buttons["zoomOut"].IsDown():
			renderTarget.SetZoom(self.RENDER_TARGET_INDEX, False)

	def __ResetSettings(self):
		renderTarget.ResetSettings(self.RENDER_TARGET_INDEX)



and this is the part when i click to view an item:

 

if app.ENABLE_RENDER_TARGET:
		def ModelPreviewFull(self, itemVnum, slotIndex = -1):
			#import chat
			#chat.AppendChat(2, str(itemVnum))
			
			item.SelectItem(itemVnum)
			itemType = item.GetItemType()
			itemSubType = item.GetItemSubType()

			IsPets = (itemVnum >= 53001 and itemVnum <= 53100)
			IsMounts = (itemVnum >= 52001 and itemVnum <= 52100)

			IsArmor = (itemType == item.ITEM_TYPE_ARMOR and itemSubType == item.ARMOR_BODY)
			IsWeapon = (itemType == item.ITEM_TYPE_WEAPON)

			IsCostumeBody = (itemType == item.ITEM_TYPE_COSTUME and itemSubType == item.COSTUME_TYPE_BODY)
			IsCostumeHair = (itemType == item.ITEM_TYPE_COSTUME and itemSubType == item.COSTUME_TYPE_HAIR)
			IsCostumeWeapon = (itemType == item.ITEM_TYPE_COSTUME and itemSubType == item.COSTUME_TYPE_WEAPON)
			IsCostumeSash = (itemType == item.ITEM_TYPE_COSTUME and itemSubType == item.COSTUME_TYPE_ACCE)

			self.wndTargetRender = uiRenderTarget.RenderTarget()
			
			#if self.interface:
			#chat.AppendChat(2, "Not null")
			#if self.interface.wndTargetRender:
			if IsWeapon or IsCostumeWeapon:
				self.wndTargetRender.DisplayUser(self.ItemGetRace(itemVnum), itemVnum, 0, 0, 0, slotIndex)
				self.wndTargetRender.Open()
			elif IsArmor or IsCostumeBody:
				self.wndTargetRender.DisplayUser(self.ItemGetRace(itemVnum), 0, itemVnum, 0, 0, slotIndex)
				self.wndTargetRender.Open()
			elif IsCostumeHair:
				self.wndTargetRender.DisplayUser(self.ItemGetRace(itemVnum), 0, 0, item.GetValue(3), 0, slotIndex)
				self.wndTargetRender.Open()
			elif IsCostumeSash:
				self.wndTargetRender.DisplayUser(self.ItemGetRace(itemVnum), 0, 0, 0, itemVnum, slotIndex)
				self.wndTargetRender.Open()
			elif IsPets or IsMounts:
				mobVnum = item.GetValue(1)
			
				if mobVnum != 0:
					self.interface.wndTargetRender.DisplayUser(mobVnum, 0, 0, 0, 0, slotIndex)
					self.interface.wndTargetRender.Open()

 

  • Metin2 Dev 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • 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.