Jump to content

.Stefan

Inactive Member
  • Posts

    32
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by .Stefan

  1. Sure, but i checked it already.

    PS: I'm willing to give some money for a solution

     

    Spoiler
    
    import ui
    import uiScriptLocale
    import wndMgr
    import player
    import miniMap
    import localeInfo
    import net
    import app
    import colorInfo
    import constInfo
    import background
    import apollo_interface
    # import time
    
    class MapTextToolTip(ui.Window):
    	def __init__(self):			
    		ui.Window.__init__(self)
    
    		textLine = ui.TextLine()
    		textLine.SetParent(self)
    		textLine.SetHorizontalAlignCenter()
    		textLine.SetOutline()
    		textLine.SetHorizontalAlignRight()
    		textLine.Show()
    		self.textLine = textLine
    
    	def __del__(self):			
    		ui.Window.__del__(self)
    
    	def SetText(self, text):
    		self.textLine.SetText(text)
    
    	def SetTooltipPosition(self, PosX, PosY):
    		if localeInfo.IsARABIC():
    			w, h = self.textLine.GetTextSize()
    			self.textLine.SetPosition(PosX - w - 5, PosY)
    		else:
    			self.textLine.SetPosition(PosX - 5, PosY)
    
    	def SetTextColor(self, TextColor):
    		self.textLine.SetPackedFontColor(TextColor)
    
    	def GetTextSize(self):
    		return self.textLine.GetTextSize()
    
    class AtlasWindow(ui.ScriptWindow):
    
    	class AtlasRenderer(ui.Window):
    		def __init__(self):
    			ui.Window.__init__(self)
    			self.AddFlag("not_pick")
    
    		def OnUpdate(self):
    			miniMap.UpdateAtlas()
    
    		def OnRender(self):
    			(x, y) = self.GetGlobalPosition()
    			fx = float(x)
    			fy = float(y)
    			miniMap.RenderAtlas(fx, fy)
    
    		def HideAtlas(self):
    			miniMap.HideAtlas()
    
    		def ShowAtlas(self):
    			miniMap.ShowAtlas()
    
    	def __init__(self):
    		self.tooltipInfo = MapTextToolTip()
    		self.tooltipInfo.Hide()
    		self.infoGuildMark = ui.MarkBox()
    		self.infoGuildMark.Hide()
    		self.AtlasMainWindow = None
    		self.mapName = ""
    		self.board = 0
    
    		ui.ScriptWindow.__init__(self)
    
    	def __del__(self):
    		ui.ScriptWindow.__del__(self)
    
    	def SetMapName(self, mapName):
    		if 949==app.GetDefaultCodePage():
    			try:
    				self.board.SetTitleName(localeInfo.MINIMAP_ZONE_NAME_DICT[mapName])
    			except:
    				pass
    
    	def LoadWindow(self):
    		try:
    			pyScrLoader = ui.PythonScriptLoader()
    			pyScrLoader.LoadScriptFile(self, "UIScript/AtlasWindow.py")
    		except:
    			import exception
    			exception.Abort("AtlasWindow.LoadWindow.LoadScript")
    
    		try:
    			self.board = self.GetChild("board")
    
    		except:
    			import exception
    			exception.Abort("AtlasWindow.LoadWindow.BindObject")
    
    		self.AtlasMainWindow = self.AtlasRenderer()
    		self.board.SetCloseEvent(self.Hide)
    		self.AtlasMainWindow.SetParent(self.board)
    		self.AtlasMainWindow.SetPosition(13, 38)
    		self.tooltipInfo.SetParent(self.board)
    		self.infoGuildMark.SetParent(self.board)
    		self.SetPosition(wndMgr.GetScreenWidth() - 136 - 256 - 10, 0)
    		self.Hide()
    
    		miniMap.RegisterAtlasWindow(self)
    
    	def Destroy(self):
    		miniMap.UnregisterAtlasWindow()
    		self.ClearDictionary()
    		self.AtlasMainWindow = None
    		self.tooltipAtlasClose = 0
    		self.tooltipInfo = None
    		self.infoGuildMark = None
    		self.board = None
    
    	def OnUpdate(self):
    
    		if not self.tooltipInfo:
    			return
    
    		if not self.infoGuildMark:
    			return
    
    		self.infoGuildMark.Hide()
    		self.tooltipInfo.Hide()
    
    		if FALSE == self.board.IsIn():
    			return
    
    		(mouseX, mouseY) = wndMgr.GetMousePosition()
    		(bFind, sName, iPosX, iPosY, dwTextColor, dwGuildID) = miniMap.GetAtlasInfo(mouseX, mouseY)
    
    		if FALSE == bFind:
    			return
    
    		if "empty_guild_area" == sName:
    			sName = localeInfo.GUILD_EMPTY_AREA
    
    		if localeInfo.IsARABIC() and sName[-1].isalnum():
    			self.tooltipInfo.SetText("(%s)%d, %d" % (sName, iPosX, iPosY))						
    		else:
    			self.tooltipInfo.SetText("%s(%d, %d)" % (sName, iPosX, iPosY))
    			
    		(x, y) = self.GetGlobalPosition()
    		self.tooltipInfo.SetTooltipPosition(mouseX - x, mouseY - y)
    		self.tooltipInfo.SetTextColor(dwTextColor)
    		self.tooltipInfo.Show()
    		self.tooltipInfo.SetTop()
    
    		if 0 != dwGuildID:
    			textWidth, textHeight = self.tooltipInfo.GetTextSize()
    			self.infoGuildMark.SetIndex(dwGuildID)
    			self.infoGuildMark.SetPosition(mouseX - x - textWidth - 18 - 5, mouseY - y)
    			self.infoGuildMark.Show()
    
    	def Hide(self):
    		if self.AtlasMainWindow:
    			self.AtlasMainWindow.HideAtlas()
    			self.AtlasMainWindow.Hide()
    		ui.ScriptWindow.Hide(self)
    
    	def Show(self):
    		if self.AtlasMainWindow:
    			(bGet, iSizeX, iSizeY) = miniMap.GetAtlasSize()
    			if bGet:
    				self.SetSize(iSizeX + 25, iSizeY + 50)
    
    				if localeInfo.IsARABIC():
    					self.board.SetPosition(iSizeX+20, 0)
    
    				self.board.SetSize(iSizeX + 25, iSizeY + 50)
    				#self.AtlasMainWindow.SetSize(iSizeX, iSizeY)
    				self.AtlasMainWindow.ShowAtlas()
    				self.AtlasMainWindow.Show()
    		ui.ScriptWindow.Show(self)
    
    	def SetCenterPositionAdjust(self, x, y):
    		self.SetPosition((wndMgr.GetScreenWidth() - self.GetWidth()) / 2 + x, (wndMgr.GetScreenHeight() - self.GetHeight()) / 2 + y)
    
    	def OnPressEscapeKey(self):
    		self.Hide()
    		return TRUE
    
    def __RegisterMiniMapColor(type, rgb):
    	miniMap.RegisterColor(type, rgb[0], rgb[1], rgb[2])
    
    class MiniMap(ui.ScriptWindow):
    
    
    	CANNOT_SEE_INFO_MAP_DICT = {
    		"metin2_map_monkeydungeon" : FALSE,
    		"metin2_map_monkeydungeon_02" : FALSE,
    		"metin2_map_monkeydungeon_03" : FALSE,
    		"metin2_map_devilsCatacomb" : FALSE,
    		"metin2_map_miniera" : FALSE,
    	}
    
    	
    	def __init__(self):
    		ui.ScriptWindow.__init__(self)
    
    		self.__Initialize()
    
    		miniMap.Create()
    		miniMap.SetScale(2.0)
    
    		self.AtlasWindow = AtlasWindow()
    		self.AtlasWindow.LoadWindow()
    		self.AtlasWindow.Hide()
    
    		# self.tooltipMiniMapOpen = MapTextToolTip()
    		# self.tooltipMiniMapOpen.SetText(localeInfo.MINIMAP)
    		# self.tooltipMiniMapOpen.Show()
    		# self.tooltipMiniMapClose = MapTextToolTip()
    		# self.tooltipMiniMapClose.SetText(localeInfo.UI_CLOSE)
    		# self.tooltipMiniMapClose.Show()
    		# self.tooltipScaleUp = MapTextToolTip()
    		# self.tooltipScaleUp.SetText(localeInfo.MINIMAP_INC_SCALE)
    		# self.tooltipScaleUp.Show()
    		# self.tooltipScaleDown = MapTextToolTip()
    		# self.tooltipScaleDown.SetText(localeInfo.MINIMAP_DEC_SCALE)
    		# self.tooltipScaleDown.Show()
    		# self.tooltipAtlasOpen = MapTextToolTip()
    		# self.tooltipAtlasOpen.SetText(localeInfo.MINIMAP_SHOW_AREAMAP)
    		# self.tooltipAtlasOpen.Show()
    		self.tooltipInfo = MapTextToolTip()
    		self.tooltipInfo.Show()
    
    		# if miniMap.IsAtlas():
    			# self.tooltipAtlasOpen.SetText(localeInfo.MINIMAP_SHOW_AREAMAP)
    		# else:
    			# self.tooltipAtlasOpen.SetText(localeInfo.MINIMAP_CAN_NOT_SHOW_AREAMAP)
    
    		self.tooltipInfo = MapTextToolTip()
    		self.tooltipInfo.Show()
    
    		self.mapName = ""
    
    		self.isLoaded = 0
    		self.canSeeInfo = TRUE
    		
    		# AUTOBAN
    		self.imprisonmentDuration = 0
    		self.imprisonmentEndTime = 0
    		self.imprisonmentEndTimeText = ""
    		# END_OF_AUTOBAN
    
    	def __del__(self):
    		miniMap.Destroy()
    		ui.ScriptWindow.__del__(self)
    
    	def __Initialize(self):
    		# self.positionInfo = 0
    		self.observerCount = 0
    
    		self.OpenWindow = 0
    		self.CloseWindow = 0
    		self.ScaleUpButton = 0
    		self.ScaleDownButton = 0
    		self.MiniMapHideButton = 0
    		self.MiniMapShowButton = 0
    		self.AtlasShowButton = 0
    
    		self.tooltipMiniMapOpen = 0
    		self.tooltipMiniMapClose = 0
    		self.tooltipScaleUp = 0
    		self.tooltipScaleDown = 0
    		self.tooltipAtlasOpen = 0
    		self.tooltipInfo = None
    		self.serverInfo = None
    		# self.toggleButtonDict = {}
    		
    	def SetMapName(self, mapName):
    		self.mapName=mapName
    		self.AtlasWindow.SetMapName(mapName)
    
    		if self.CANNOT_SEE_INFO_MAP_DICT.has_key(mapName):
    			self.canSeeInfo = FALSE
    			self.HideMiniMap()
    			# self.tooltipMiniMapOpen.SetText(localeInfo.MINIMAP_CANNOT_SEE)
    		else:
    			self.canSeeInfo = TRUE
    			self.ShowMiniMap()
    			# self.tooltipMiniMapOpen.SetText(localeInfo.MINIMAP)
    			
    	# AUTOBAN
    	def SetImprisonmentDuration(self, duration):
    		self.imprisonmentDuration = duration
    		self.imprisonmentEndTime = app.GetGlobalTimeStamp() + duration				
    		
    		self.__UpdateImprisonmentDurationText()
    		
    	def __UpdateImprisonmentDurationText(self):
    		restTime = max(self.imprisonmentEndTime - app.GetGlobalTimeStamp(), 0)
    		
    		imprisonmentEndTimeText = localeInfo.SecondToDHM(restTime)
    		if imprisonmentEndTimeText != self.imprisonmentEndTimeText:
    			self.imprisonmentEndTimeText = imprisonmentEndTimeText
    			self.serverInfo.SetText("%s: %s" % (uiScriptLocale.AUTOBAN_QUIZ_REST_TIME, self.imprisonmentEndTimeText))
    	# END_OF_AUTOBAN	
    
    	def Show(self):
    		self.LoadWindow()
    
    		ui.ScriptWindow.Show(self)
    
    	def LoadWindow(self):
    		if self.isLoaded == 1:
    			return
    
    		self.isLoaded = 1
    
    		try:
    			pyScrLoader = ui.PythonScriptLoader()
    			if localeInfo.IsARABIC():
    				pyScrLoader.LoadScriptFile(self, "apollo_scripts/Minimap.py")
    			else:
    				pyScrLoader.LoadScriptFile(self, "apollo_scripts/Minimap.py")
    		except:
    			import exception
    			exception.Abort("MiniMap.LoadWindow.LoadScript")
    
    		try:
    			self.OpenWindow = self.GetChild("OpenWindow")
    			self.MiniMapWindow = self.GetChild("MiniMapWindow")
    			self.ScaleUpButton = self.GetChild("ScaleUpButton")
    			self.ScaleDownButton = self.GetChild("ScaleDownButton")
    			self.MiniMapHideButton = self.GetChild("MiniMapHideButton")
    			self.AtlasShowButton = self.GetChild("AtlasShowButton")
    			self.CloseWindow = self.GetChild("CloseWindow")
    			self.MiniMapShowButton = self.GetChild("MiniMapShowButton")
    			# self.positionInfo = self.GetChild("PositionInfo")
    			self.observerCount = self.GetChild("ObserverCount")
    			self.achievement = self.GetChild("Achievement")
    			self.achievement.SetEvent(lambda : self.OpenAchievementsystemWindow())
    			# self.serverInfo = self.GetChild("ServerInfo")
    			# self.Time = self.GetChild("Time")
    			# self.online = self.GetChild("online")
    		except:
    			import exception
    			exception.Abort("MiniMap.LoadWindow.Bind")
    
    		# if constInfo.MINIMAP_POSITIONINFO_ENABLE==0:
    			# self.positionInfo.Hide()
    		
    		self.serverInfo = ui.TextLine()
    		self.serverInfo.SetParent(self.observerCount)
    		self.serverInfo.SetPosition(-170,-180+3)
    		self.serverInfo.SetFontName('Tahoma:15')
    		self.serverInfo.SetText(net.GetServerInfo())
    		self.serverInfo.SetPackedFontColor(0xffa07970)
    		self.serverInfo.Show()
    		
    		self.Time = ui.TextLine()
    		self.Time.SetParent(self.observerCount)
    		self.Time.SetPosition(-135,-167+4)
    		self.Time.SetFontName('Tahoma:15')
    		self.Time.SetText('0')
    		self.Time.SetPackedFontColor(0xffd8af75)
    		self.Time.Show()
    		
    		self.Time2 = ui.TextLine()
    		self.Time2.SetParent(self.observerCount)
    		self.Time2.SetPosition(-152,-154+4)
    		self.Time2.SetFontName('Tahoma:14')
    		self.Time2.SetText('0')
    		self.Time2.SetPackedFontColor(0xffa33437)
    		self.Time2.Show()
    		
    		self.ScaleUpButton.SetEvent(ui.__mem_func__(self.ScaleUp))
    		self.ScaleDownButton.SetEvent(ui.__mem_func__(self.ScaleDown))
    		self.MiniMapHideButton.SetEvent(ui.__mem_func__(self.HideMiniMap))
    		self.MiniMapShowButton.SetEvent(ui.__mem_func__(self.ShowMiniMap))
    
    		if miniMap.IsAtlas():
    			self.AtlasShowButton.SetEvent(ui.__mem_func__(self.ShowAtlas))
    
    		# (ButtonPosX, ButtonPosY) = self.MiniMapShowButton.GetGlobalPosition()
    		# self.tooltipMiniMapOpen.SetTooltipPosition(ButtonPosX, ButtonPosY)
    
    		# (ButtonPosX, ButtonPosY) = self.MiniMapHideButton.GetGlobalPosition()
    		# self.tooltipMiniMapClose.SetTooltipPosition(ButtonPosX, ButtonPosY)
    
    		# (ButtonPosX, ButtonPosY) = self.ScaleUpButton.GetGlobalPosition()
    		# self.tooltipScaleUp.SetTooltipPosition(ButtonPosX, ButtonPosY)
    
    		# (ButtonPosX, ButtonPosY) = self.ScaleDownButton.GetGlobalPosition()
    		# self.tooltipScaleDown.SetTooltipPosition(ButtonPosX, ButtonPosY)
    
    		# (ButtonPosX, ButtonPosY) = self.AtlasShowButton.GetGlobalPosition()
    		# self.tooltipAtlasOpen.SetTooltipPosition(ButtonPosX, ButtonPosY)
    
    		self.ShowMiniMap()
    
    	def OpenAchievementsystemWindow(self):
    		import uiachievementsystem
    		uiachievementsystem.wnd.OpenRequest()
    
    	def Destroy(self):
    		self.HideMiniMap()
    
    		self.AtlasWindow.Destroy()
    		self.AtlasWindow = None
    
    		self.ClearDictionary()
    
    		self.__Initialize()
    
    	def UpdateObserverCount(self, observerCount):
    		if observerCount>0:
    			self.observerCount.Show()
    		elif observerCount<=0:
    			self.observerCount.Hide()
    
    		self.observerCount.SetText(localeInfo.MINIMAP_OBSERVER_COUNT % observerCount)
    		
    	def OnUpdate(self):
    		import time
    		(x, y, z) = player.GetMainCharacterPosition()
    		miniMap.Update(x, y)
    		
    		self.Time.SetText(time.strftime("%H:%M"))
    		self.Time2.SetText(time.strftime("%d-%m-%Y"))
    		# self.positionInfo.SetText("[" + time.strftime("%H:%M:%S") + " " + time.strftime("%Y-%m-%d") + "]")
    		# self.online.SetText("[Liczba on-line: %s" % (str(constInfo.ONLINE)) + "]")
    
    		if self.tooltipInfo:
    			if TRUE == self.MiniMapWindow.IsIn():
    				(mouseX, mouseY) = wndMgr.GetMousePosition()
    				(bFind, sName, iPosX, iPosY, dwTextColor) = miniMap.GetInfo(mouseX, mouseY)
    				if bFind == 0:
    					self.tooltipInfo.Hide()
    				elif not self.canSeeInfo:
    					self.tooltipInfo.SetText("%s(%s)" % (sName, localeInfo.UI_POS_UNKNOWN))
    					self.tooltipInfo.SetTooltipPosition(mouseX - 5, mouseY)
    					self.tooltipInfo.SetTextColor(dwTextColor)
    					self.tooltipInfo.Show()
    				else:
    					if localeInfo.IsARABIC() and sName[-1].isalnum():
    						self.tooltipInfo.SetText("(%s)%d, %d" % (sName, iPosX, iPosY))
    					else:
    						self.tooltipInfo.SetText("%s(%d, %d)" % (sName, iPosX, iPosY))
    					self.tooltipInfo.SetTooltipPosition(mouseX - 5, mouseY)
    					self.tooltipInfo.SetTextColor(dwTextColor)
    					self.tooltipInfo.Show()
    			else:
    				self.tooltipInfo.Hide()
    			
    			# AUTOBAN
    			if self.imprisonmentDuration:
    				self.__UpdateImprisonmentDurationText()				
    			# END_OF_AUTOBAN
    
    		# if TRUE == self.MiniMapShowButton.IsIn():
    			# self.tooltipMiniMapOpen.Show()
    		# else:
    			# self.tooltipMiniMapOpen.Hide()
    
    		# if TRUE == self.MiniMapHideButton.IsIn():
    			# self.tooltipMiniMapClose.Show()
    		# else:
    			# self.tooltipMiniMapClose.Hide()
    
    		# if TRUE == self.ScaleUpButton.IsIn():
    			# self.tooltipScaleUp.Show()
    		# else:
    			# self.tooltipScaleUp.Hide()
    
    		# if TRUE == self.ScaleDownButton.IsIn():
    			# self.tooltipScaleDown.Show()
    		# else:
    			# self.tooltipScaleDown.Hide()
    
    		# if TRUE == self.AtlasShowButton.IsIn():
    			# self.tooltipAtlasOpen.Show()
    		# else:
    			# self.tooltipAtlasOpen.Hide()
    
    	def OnRender(self):
    		(x, y) = self.GetGlobalPosition()
    		fx = float(x)
    		fy = float(y)
    		miniMap.Render(fx + 1.0, fy + 8.0)
    
    	def Close(self):
    		self.HideMiniMap()
    
    	def HideMiniMap(self):
    		miniMap.Hide()
    		self.OpenWindow.Hide()
    		self.CloseWindow.Show()
    
    	def ShowMiniMap(self):
    		if not self.canSeeInfo:
    			return
    
    		miniMap.Show()
    		self.OpenWindow.Show()
    		self.CloseWindow.Hide()
    
    	def isShowMiniMap(self):
    		return miniMap.isShow()
    
    	def ScaleUp(self):
    		miniMap.ScaleUp()
    
    	def ScaleDown(self):
    		miniMap.ScaleDown()
    
    	def ShowAtlas(self):
    		if not miniMap.IsAtlas():
    			return
    		if not self.AtlasWindow.IsShow():
    			self.AtlasWindow.Show()
    
    	def ToggleAtlasWindow(self):
    		if not miniMap.IsAtlas():
    			return
    		if self.AtlasWindow.IsShow():
    			self.AtlasWindow.Hide()
    		else:
    			self.AtlasWindow.Show()
    	

     

     

×
×
  • 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.