Exemple #1
0
def ReloadClientInterface(type):
	def SendParseException(object, error, type):
		dbg.TraceError('Failed to load module: #{0}#'.format(object))
		if (error):
			dbg.TraceError('Error: #{0}#'.format(error))
		import exception
		exception.Abort(type)

	sysModuleDict = {
		app.CLIENT_FROM_LOGIN_MODULE: ['introLogin', 'localeInfo', 'uiScriptLocale'],
		app.CLIENT_FROM_GAME_MODULE: ['game', 'localeInfo', 'introLoading', 'uiScriptLocale', 'uiGameButton', 'uiMapNameShower', 'uiAffectShower', 'uiPlayerGauge', 'uiHelp'],
		app.CLIENT_FROM_INTERFACE_MODULE: ['localeInfo', 'uiScriptLocale', 'interfaceModule', 'uiToolTip']
	}
	
	if (not sysModuleDict.has_key(type)):
		dbg.TraceError('Usage call syntax: ReloadClientInterface({0})'.format(sysModuleDict.keys()))
		return

	for (key, object) in enumerate(sysModuleDict[type]):
		if (sys.modules.has_key(object)):
			try:
				if (sys.modules[object] <> None):
					del sys.modules[object]
					sys.modules.pop(object)

					execfile(object, {})
					__import__(object)
					dbg.TraceError('Succes reloading module: #{0}#'.format(object))

			except IOError, err:
				SendParseException(object, err, 'IOError')
			except RuntimeError, err:
				SendParseException(object, err, 'RuntimeError')
			except:
Exemple #2
0
	def LoadDialog(self, skin):
		try:
			PythonScriptLoader = ui.PythonScriptLoader()
			PythonScriptLoader.LoadScriptFile(self, "uiscript/questdialog.py")
		except RuntimeError:
			dbg.TraceError("QuestDialog.LoadDialog")

		try:
			self.board = self.GetChild('board')
		except RuntimeError:
			dbg.TraceError("QuestDialog.BindObject")

		self.SetCenterPosition()
		if self.SKIN_CINEMA == skin:
			self.board.Hide()
Exemple #3
0
class RestartDialog(ui.ScriptWindow):

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

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

	def LoadDialog(self):
		try:
			pyScrLoader = ui.PythonScriptLoader()
			pyScrLoader.LoadScriptFile(self, "uiscript/restartdialog.py")
		except Exception, msg:
			import sys
			(type, msg, tb)=sys.exc_info()
			dbg.TraceError("RestartDialog.LoadDialog - %s:%s" % (type, msg))
			app.Abort()
			return 0

		try:
			self.restartHereButton=self.GetChild("restart_here_button")
			self.restartTownButton=self.GetChild("restart_town_button")
		except:
			import sys
			(type, msg, tb)=sys.exc_info()
			dbg.TraceError("RestartDialog.LoadDialog - %s:%s" % (type, msg))
			app.Abort()
			return 0

		self.restartHereButton.SetEvent(ui.__mem_func__(self.RestartHere))
		self.restartTownButton.SetEvent(ui.__mem_func__(self.RestartTown))

		return 1
	def __SelectRefineEmptySlot(self, selectedSlotPos):
		try:
			if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
				return
			
			if selectedSlotPos >= self.refineSlotLockStartIndex:
				return
	 
			if mouseModule.mouseController.isAttached():
				attachedSlotType = mouseModule.mouseController.GetAttachedType()
				attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
				attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
				attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
				mouseModule.mouseController.DeattachObject()

				if uiPrivateShopBuilder.IsBuildingPrivateShop():
					chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
					return

				attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)

				if player.INVENTORY == attachedInvenType and player.IsEquipmentSlot(attachedSlotPos):
					return

				if player.INVENTORY != attachedInvenType and player.DRAGON_SOUL_INVENTORY != attachedInvenType:
					return

				if TRUE == self.__SetItem((attachedInvenType, attachedSlotPos), selectedSlotPos, attachedItemCount):
					self.Refresh()

		except Exception, e:
			import dbg
			dbg.TraceError("Exception : __SelectRefineEmptySlot, %s" % e)
Exemple #5
0
 def __OnClickStatusMinusButton(self, statusKey):
     try:
         statusMinusCommand = self.statusMinusCommandDict[statusKey]
         net.SendChatPacket(statusMinusCommand)
     except KeyError, msg:
         dbg.TraceError(
             "CharacterWindow.__OnClickStatusMinusButton KeyError: %s", msg)
Exemple #6
0
    def __Refresh(self):
        self.lovePoint = max(0, self.lovePoint)
        self.lovePoint = min(100, self.lovePoint)

        if 0 == self.lovePoint:
            loveGrade = 0
        else:
            loveGrade = self.lovePoint / 25 + 1
        fileName = self.FILE_DICT.get(loveGrade, self.FILE_PATH + "00.dds")

        try:
            self.LoadImage(fileName)
        except:
            import dbg
            dbg.TraceError(
                "LovePointImage.SetLoverInfo(lovePoint=%d) - LoadError %s" %
                (self.lovePoint, fileName))

        self.SetScale(0.7, 0.7)

        self.toolTip.ClearToolTip()
        self.toolTip.SetTitle(self.loverName)
        self.toolTip.AppendTextLine(localeInfo.AFF_LOVE_POINT %
                                    (self.lovePoint))
        self.toolTip.ResizeToolTip()
Exemple #7
0
	def SelectEmptySlot(self, slotIndex):
		try:
			if (constInfo.GET_ITEM_QUESTION_DIALOG_STATUS() == 1):
				return
				
			if (mouseModule.mouseController.isAttached()):
				attachedSlotType = mouseModule.mouseController.GetAttachedType()
				attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
				mouseModule.mouseController.DeattachObject()
				
				if (player.SLOT_TYPE_INVENTORY != attachedSlotType and player.SLOT_TYPE_DRAGON_SOUL_INVENTORY != attachedSlotType):
					return
					
				attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)
				itemVnum = player.GetItemIndex(attachedInvenType, attachedSlotPos)
				item.SelectItem(itemVnum)
				
				if (item.IsAntiFlag(item.ANTIFLAG_GIVE) or item.IsAntiFlag(item.ANTIFLAG_MYSHOP)):
					chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OFFLINE_SHOP_CANNOT_SELL_ITEM)
					return
					
				priceInputBoard = uiCommon.MoneyInputDialog()
				priceInputBoard.SetTitle(item.GetItemName() + "'s price")
				priceInputBoard.SetAcceptEvent(ui.__mem_func__(self.AcceptInputPrice))
				priceInputBoard.SetCancelEvent(ui.__mem_func__(self.CancelInputPrice))
				priceInputBoard.Open()
				
				self.priceInputBoard = priceInputBoard
				self.priceInputBoard.bDisplayPos = slotIndex
				self.priceInputBoard.bPos = attachedSlotPos
		except Exception, e:
			import dbg
			dbg.TraceError("Exception : SelectEmptySlot, %s" %(e))
    def ChangeCursor(self, cursorNum):
        try:
            self.curCursorNum = cursorNum
            try:
                self.curCursorImage = self.cursorDict[cursorNum]

            except:
                self.curCursorImage = CursorImage(
                    "D:/Ymir Work/UI/Cursor/cursor.sub")

            try:

                (self.cursorPosX,
                 self.cursorPosY) = self.cursorPosDict[cursorNum]
            except:
                (self.cursorPosX, self.cursorPosY) = (0, 0)

            if FALSE == self.curCursorImage.IsImage():
                self.curCursorNum = app.NORMAL
                self.curCursorImage = self.cursorDict[app.NORMAL]

        except KeyError:
            dbg.TraceError(
                "mouseModule.MouseController.SetCursor - 잘못된 커서 번호 [%d]" %
                cursorNum)
            self.curCursorName = app.NORMAL
            self.curCursorImage = self.cursorDict[app.NORMAL]
Exemple #9
0
		def __CreateDialog(self):
			try:
				pyScrLoader = ui.PythonScriptLoader()
				pyScrLoader.LoadScriptFile(self, "uiscript/shopinputdialog.py")
	
				getObject = self.GetChild
				self.board = getObject("Board")
				self.acceptButton = getObject("AcceptButton")
				self.cancelButton = getObject("CancelButton")
				self.inputSlot = getObject("InputSlot")
				self.inputValue = getObject("InputValue")
				
				self.colorDesc = getObject("ColorDesc")
				self.colorBG = getObject("ColorBG")
				for i in range(1, 7):
					self.tabList["colorTab%d" % i] = getObject("ColorTab%d" % i)
					self.tabList["colorTab%d" % i].SetEvent(ui.__mem_func__(self.CheckButtonStatus), i, "color")
					self.tabList["colorTab%d" % i].Hide()
	
					self.tabList["sizeTab%d" % i] = getObject("SizeTab%d" % i)
					self.tabList["sizeTab%d" % i].SetEvent(ui.__mem_func__(self.CheckButtonStatus), i, "size")
								
					self.tabList["typeTab%d" % i] = getObject("TypeTab%d" % i)
					self.tabList["typeTab%d" % i].SetEvent(ui.__mem_func__(self.CheckButtonStatus), i, "type")
				self.colorDesc.Hide()
				self.colorBG.Hide()
				
			except:
				import sys
				(type, msg, tb)=sys.exc_info()
				dbg.TraceError("ShopInputDialog.__CreateDialog - %s:%s" % (type, msg))
				app.Abort()
				return 0
    def OnUpdate(self):
        if len(self.loadStepList) > 0:
            (progress, runFunc) = self.loadStepList[0]

            try:
                runFunc()
            except:
                self.errMsg.Show()
                self.loadStepList = []

                ## 이곳에서 syserr.txt 를 보낸다.

                import dbg
                dbg.TraceError(" !!! Failed to load game data : STEP [%d]" %
                               (progress))

                #import shutil
                #import os
                #shutil.copyfile("syserr.txt", "errorlog.txt")
                #os.system("errorlog.exe")

                app.Exit()

                return

            self.loadStepList.pop(0)

            self.__SetProgress(progress)
Exemple #11
0
	def OnTopImage(self, imgfile):
		imgfile = self.__GetQuestImageFileName(imgfile)

		bd = self.board
		bx, by = bd.GetLocalPosition()
		if not self.imgTop:
			self.imgTop = ui.ExpandedImageBox("TOP_MOST")
			self.imgTop.SetParent(self)
			bd.SetPosition(bx,190)
			self.imgTop.SetPosition(bx,10)

		try:
			self.imgTop.LoadImage(imgfile)
			h = self.imgTop.GetHeight()
			if h>170:
				# need adjust board size
				bd.SetPosition(bx,20+h)
				bd.SetSize(350,420-h)
				self.imgTop.SetSize(350,h)
			else:
				self.imgTop.SetSize(350,170)
				bd.SetPosition(bx,190)
				bd.SetSize(350,250)
			self.imgTop.SetOrigin(self.imgTop.GetWidth()/2,self.imgTop.GetHeight()/2)
			self.imgTop.Show()
		except RuntimeError:
			dbg.TraceError("QuestDialog.OnTopImage(%s)" % imgfile)
			self.imgTop.Hide()
    def Open(self):
        #print "OPEN EMPIRE WINDOW ----------------------------------------------------------------------------"

        self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
        self.SetWindowName("SelectEmpireWindow")
        self.Show()

        if not self.__LoadScript(uiScriptLocale.LOCALE_UISCRIPT_PATH +
                                 "New_SelectEmpireWindow.py"):
            dbg.TraceError("SelectEmpireWindow.Open - __LoadScript Error")
            return

        self.OnSelectEmpire(self.empireID)
        self.__CreateButtons()
        self.__CreateDescriptionBox()
        app.ShowCursor()

        if musicInfo.selectMusic != "":
            snd.SetMusicVolume(systemSetting.GetMusicVolume())
            snd.FadeInMusic("BGM/" + musicInfo.selectMusic)

            self.toolTip = uiToolTip.ToolTip()
            self.toolTip.ClearToolTip()

            self.ShowToolTip = False
	def __SelectRefineItemSlot(self, selectedSlotPos):
		if constInfo.GET_ITEM_DROP_QUESTION_DIALOG_STATUS() == 1:
			return

		try:
			if not selectedSlotPos in self.refineItemInfo:
				# 새로운 아이템을 강화창에 올리는 작업.
				if mouseModule.mouseController.isAttached():
					attachedSlotType = mouseModule.mouseController.GetAttachedType()
					attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
					attachedItemCount = mouseModule.mouseController.GetAttachedItemCount()
					attachedItemIndex = mouseModule.mouseController.GetAttachedItemIndex()
					mouseModule.mouseController.DeattachObject()

					if uiPrivateShopBuilder.IsBuildingPrivateShop():
						chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.MOVE_ITEM_FAILURE_PRIVATE_SHOP)
						return

					attachedInvenType = player.SlotTypeToInvenType(attachedSlotType)

					if player.INVENTORY == attachedInvenType and player.IsEquipmentSlot(attachedSlotPos):
						return

					if player.INVENTORY != attachedInvenType and player.DRAGON_SOUL_INVENTORY != attachedInvenType:
						return

					self.AutoSetItem((attachedInvenType, attachedSlotPos), 1)
				return
			elif mouseModule.mouseController.isAttached():
				return
 
			attachedInvenType, attachedSlotPos, attachedItemCount = self.refineItemInfo[selectedSlotPos]
			selectedItemVnum = player.GetItemIndex(attachedInvenType, attachedSlotPos)
				
			# 강화창에서 삭제 및 원래 인벤의 아이템 카운트 회복
			invenType, invenPos, itemCount = self.refineItemInfo[selectedSlotPos]
			remainCount = player.GetItemCount(invenType, invenPos)
			player.SetItemCount(invenType, invenPos, remainCount + itemCount)
			del self.refineItemInfo[selectedSlotPos]
				
			# 강화창이 비었다면, 초기화
			if not self.refineItemInfo:
				self.__Initialize()
			else:
				item.SelectItem(selectedItemVnum)
				# 없앤 아이템이 강화석이었다면 강화 레피시 초기화
				if (item.ITEM_TYPE_MATERIAL == item.GetItemType() \
					and (item.MATERIAL_DS_REFINE_NORMAL <= item.GetItemSubType() and item.GetItemSubType() <= item.MATERIAL_DS_REFINE_HOLLY)):
					self.currentRecipe = {}
					self.wndMoney.SetText(localeInfo.NumberToMoneyString(0))
				# 용혼석이었다면, 
				# strength강화가 아닌 경우, 강화창에 다른 용혼석이 남아있으므로, 레시피를 초기화하면 안됨.
				# strength강화의 경우, 강화 레시피는 강화석에 종속된 것이므로 다른 처리할 필요가 없음.
				else:
					pass
					
		except Exception, e:
			import dbg
			dbg.TraceError("Exception : __SelectRefineItemSlot, %s" % e)
Exemple #14
0
		def ShowImage():
			if self.GetIsSearchedVnum():
				item.SelectItem(self.main["rewards"]["vnum"])
				try:
					self.main["elements"]["slot_image"].LoadImage(item.GetIconImageFileName())
					self.main["elements"]["slot_image"].Show()
				except:
					dbg.TraceError("OxEventManager.LoadImage - Failed to find item data")
	def BINARY_ServerCommand_Run(self, line):
		try:
			print " BINARY_ServerCommand_Reserve", line
			return self.serverCommander.Run(line)
		except RuntimeError, msg:
			import dbg
			dbg.TraceError(msg)
			return 0
Exemple #16
0
    def LoadImage(self, imageName):
        try:
            self.handle = grpImage.Generate(imageName)

        except:
            import sys
            dbg.TraceError("%s %s" % (sys.exc_info()[0], sys.exc_info()[1]))
            self.handle = 0
Exemple #17
0
		def AppendItem(self, newItem):
			if newItem.GetHeight() % self.stepSize != 0:
				import dbg
				dbg.TraceError("Invalid AppendItem height %d stepSize %d" % (newItem.GetHeight(), self.stepSize))
				return

			self.maxSteps += newItem.GetHeight() / self.stepSize
			newItem.SetParent(self)
			self.itemList.append(newItem)
 def LoadDialog(self):
     try:
         pyScrLoader = ui.PythonScriptLoader()
         pyScrLoader.LoadScriptFile(self, "interfececolor.py")
     except Exception, msg:
         (type, msg, tb) = sys.exc_info()
         dbg.TraceError("kolorDialog.LoadDialog - %s:%s" % (type, msg))
         app.Abort()
         return 0
Exemple #19
0
 def LoadDialog(self):
     try:
         pyScrLoader = ui.PythonScriptLoader()
         pyScrLoader.LoadScriptFile(self, "uiscript/restartdialog.py")
     except Exception, msg:
         (type, msg, tb) = sys.exc_info()
         dbg.TraceError("RestartDialog.LoadDialog - %s:%s" % (type, msg))
         app.Abort()
         return 0
Exemple #20
0
 def __LoadWindow(self, filename):
     try:
         pyScrLoader = ui.PythonScriptLoader()
         pyScrLoader.LoadScriptFile(self, filename)
     except Exception, msg:
         import dbg
         dbg.TraceError("GameButtonWindow.LoadScript - %s" % (msg))
         app.Abort()
         return FALSE
Exemple #21
0
    def SetParent(self, parent):
        if not parent:
            dbg.TraceError(
                "Window.SetParent :: Tried to set 'None' as parent for window '%s'."
                % self.GetName())
            return

        self.__parent = parent
        wndMgr.SetParent(self.GetWindowHandle(),
                         self.__parent.GetWindowHandle())
class kolorDialog(ui.ScriptWindow):
    def __init__(self):
        ui.ScriptWindow.__init__(self)
        self.LoadDialog()

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

    def LoadDialog(self):
        try:
            pyScrLoader = ui.PythonScriptLoader()
            pyScrLoader.LoadScriptFile(self, "interfececolor.py")
        except Exception, msg:
            (type, msg, tb) = sys.exc_info()
            dbg.TraceError("kolorDialog.LoadDialog - %s:%s" % (type, msg))
            app.Abort()
            return 0

        try:
            self.zapiszn = self.GetChild("ok")
            self.domyslne = self.GetChild("no")
        except:
            import sys
            (type, msg, tb) = sys.exc_info()
            dbg.TraceError("RestartDialog.LoadDialog - %s:%s" % (type, msg))
            app.Abort()
            return 0

        self.interfacelist2 = (
            self.GetChild("board").Corners[0],
            self.GetChild("board").Corners[1],
            self.GetChild("board").Corners[2],
            self.GetChild("board").Corners[3],
            self.GetChild("board").Lines[0],
            self.GetChild("board").Lines[1],
            self.GetChild("board").Lines[2],
            self.GetChild("board").Lines[3],
            self.GetChild("board").Base,
            self.GetChild("board").titleBar.imgLeft,
            self.GetChild("board").titleBar.imgCenter,
            self.GetChild("board").titleBar.imgRight,
        )
        self.GetChild("board").SetCloseEvent(self.Close)
        self.zapiszn.SetEvent(ui.__mem_func__(self.ok))
        self.domyslne.SetEvent(ui.__mem_func__(self.Restart))
        z = open('lib/color').readlines()
        self.GetChild("r").SetSliderPos(float(z[0]))
        self.GetChild("g").SetSliderPos(float(z[1]))
        self.GetChild("b").SetSliderPos(float(z[2]))
        self.GetChild("a").SetSliderPos((float(z[3]) - 0.5) * 2)
        self.OnUpdate()

        return 1
	def ShowWhisperDialog(self, btn):
		try:
			self.__MakeWhisperDialog(btn.name)
			dlgWhisper = self.whisperDialogDict[btn.name]
			dlgWhisper.OpenWithTarget(btn.name)
			dlgWhisper.Show()
			self.__CheckGameMaster(btn.name)
		except:
			import dbg
			dbg.TraceError("interface.ShowWhisperDialog - Failed to find key")

		## 버튼 초기화
		self.__DestroyWhisperButton(btn)
Exemple #24
0
def Abort(excTitle):
    import dbg
    excText = GetExceptionString(excTitle)

    dbg.TraceError(excText)

    import app
    app.Abort()

    import sys
    sys.exit()

    return 0
	def Open(self):
		print "OPEN EMPIRE WINDOW ----------------------------------------------------------------------------"

		self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())
		self.SetWindowName("SelectEmpireWindow")
		self.Show()	

		if not self.__LoadScript(uiScriptLocale.LOCALE_UISCRIPT_PATH + "SelectEmpireWindow.py"):
			dbg.TraceError("SelectEmpireWindow.Open - __LoadScript Error")
			return

		self.OnSelectEmpire(self.empireID)
		self.__CreateButtons()
		self.__CreateDescriptionBox()
		app.ShowCursor()
Exemple #26
0
	def OnTitleImage(self, filename):
		img = ui.ImageBox("TOP_MOST")

		try:
			img.SetWindowHorizontalAlignCenter()
			img.LoadImage(filename)
			img.SetPosition(0, wndMgr.GetScreenHeight() - (75/2) - (32/2))
			img.SetAlpha(0.0)
			img.Show()
		except RuntimeError:
			dbg.TraceError("QuestDialog.OnTitleImage(%s)" % filename)
			img.Hide()

		self.imgTitle = img
		self.titleState = self.TITLE_STATE_APPEAR
		self.titleShowTime = app.GetTime()
Exemple #27
0
    def ChangeCursor(self, cursorNum):
        try:
            self.curCursorNum = cursorNum
            self.curCursorImage = self.cursorDict[cursorNum]
            (self.cursorPosX, self.cursorPosY) = self.cursorPosDict[cursorNum]

            if False == self.curCursorImage.IsImage():
                self.curCursorNum = app.NORMAL
                self.curCursorImage = self.cursorDict[app.NORMAL]

        except KeyError:
            dbg.TraceError(
                "mouseModule.MouseController.SetCursor - 잘못된 커서 번호 [%d]" %
                cursorNum)
            self.curCursorName = app.NORMAL
            self.curCursorImage = self.cursorDict[app.NORMAL]
Exemple #28
0
    def Open(self):
        if not self.__LoadBoardDialog(uiScriptLocale.LOCALE_UISCRIPT_PATH +
                                      "selectcharacterwindow.py"):
            import dbg
            dbg.TraceError("SelectCharacterWindow.Open - __LoadScript Error")
            return

        if not self.__LoadQuestionDialog("uiscript/questiondialog.py"):
            return

        playerSettingModule.LoadGameData("INIT")

        self.InitCharacterBoard()

        self.btnStart.Enable()
        self.btnCreate.Enable()
        self.btnDelete.Enable()
        self.btnExit.Enable()
        self.btnLeft.Enable()
        self.btnRight.Enable()

        self.dlgBoard.Show()
        self.SetWindowName("SelectCharacterWindow")
        self.Show()

        if self.slot >= 0:
            self.SelectSlot(self.slot)

        if musicInfo.selectMusic != "":
            snd.SetMusicVolume(systemSetting.GetMusicVolume())
            snd.FadeInMusic("BGM/" + musicInfo.selectMusic)

        app.SetCenterPosition(0.0, 0.0, 0.0)
        app.SetCamera(1550.0, 15.0, 180.0, 95.0)

        self.isLoad = 1
        self.Refresh()

        if self.stream.isAutoSelect:
            chrSlot = self.stream.GetCharacterSlot()
            self.SelectSlot(chrSlot)
            self.StartGame()

        self.HideAllFlag()
        self.SetEmpire(net.GetEmpireID())

        app.ShowCursor()
	def CloseWhisperDialog(self, name):

		if 0 == name:

			if self.dlgWhisperWithoutTarget:
				self.dlgWhisperWithoutTarget.Destroy()
				self.dlgWhisperWithoutTarget = None

			return

		try:
			dlgWhisper = self.whisperDialogDict[name]
			dlgWhisper.Destroy()
			del self.whisperDialogDict[name]
		except:
			import dbg
			dbg.TraceError("interface.CloseWhisperDialog - Failed to find key")
Exemple #30
0
    def Open(self, metinItemPos, targetItemPos):
        self.metinItemPos = metinItemPos
        self.targetItemPos = targetItemPos

        metinIndex = player.GetItemIndex(metinItemPos)
        itemIndex = player.GetItemIndex(targetItemPos)
        self.oldToolTip.ClearToolTip()
        self.newToolTip.ClearToolTip()

        item.SelectItem(metinIndex)

        ## Metin Image
        try:
            self.metinImage.LoadImage(item.GetIconImageFileName())
        except:
            dbg.TraceError(
                "AttachMetinDialog.Open.LoadImage - Failed to find item data")

        ## Old Item ToolTip
        metinSlot = []
        for i in xrange(player.METIN_SOCKET_MAX_NUM):
            metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))
        self.oldToolTip.AddItemData(itemIndex, metinSlot)

        ## New Item ToolTip
        item.SelectItem(metinIndex)
        metinSubType = item.GetItemSubType()

        metinSlot = []
        for i in xrange(player.METIN_SOCKET_MAX_NUM):
            metinSlot.append(player.GetItemMetinSocket(targetItemPos, i))
        for i in xrange(player.METIN_SOCKET_MAX_NUM):
            slotData = metinSlot[i]
            if self.CanAttachMetin(slotData, metinSubType):
                metinSlot[i] = metinIndex
                break
        self.newToolTip.AddItemData(itemIndex, metinSlot)

        self.UpdateDialog()
        self.SetTop()
        self.Show()

        if app.ENABLE_SLOT_MARKING_SYSTEM:
            self.SetCantMouseEventSlot(0, self.metinItemPos)
            self.SetCantMouseEventSlot(1, self.targetItemPos)