hello guys, i just recently installed Render Target System,
i've done everything correctly but now i'm facing this problem here:
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()