Relógio no Cliente
3 participantes
Página 1 de 1
Relógio no Cliente
Uma vês eu queria saber como por relógio no Cliente
mim passaram uma configuração que o relógio funcionava porem a codernada sumia por que as horas ficava no local das codernadas então
eu parei de ficar só pedindo e resolvi estudar e fazer bonito então aqui la vai
duas semanas após a descoberta de hoje eu trago os arquivos prontos para usar um mini-guia sobre como colocá-lo muito mais fácil de fazê-las, colocando um 1 ou um 0 no constinfo.py, já que muitas pessoas não vão para saber como activar ou desactivar manualmente ter que mudar para arquivos virgem não se encontram visíveis porque já não é muito datada e colocar no tooltip. py começar bom.
Extrai root e uiscript
na root editar o arquivo com o Notepad + +
Salve e feche agora ir com o seguinte arquivo
Agora vamos para uiscript, procure este arquivo:
Uma foto para ver
O relógio não é descoberto por mim é como eu dizer isso já foi postado
eu só fis algumas alterações pois o primeiro relógio subistituia as codernadas dos mapas então eu só abrir um espaço pra editar as horas e saber como era iria se comportar na interface
Eu fui forçado a mudar o título que aparentemente não era compreensível
mim passaram uma configuração que o relógio funcionava porem a codernada sumia por que as horas ficava no local das codernadas então
eu parei de ficar só pedindo e resolvi estudar e fazer bonito então aqui la vai
duas semanas após a descoberta de hoje eu trago os arquivos prontos para usar um mini-guia sobre como colocá-lo muito mais fácil de fazê-las, colocando um 1 ou um 0 no constinfo.py, já que muitas pessoas não vão para saber como activar ou desactivar manualmente ter que mudar para arquivos virgem não se encontram visíveis porque já não é muito datada e colocar no tooltip. py começar bom.
Extrai root e uiscript
na root editar o arquivo com o Notepad + +
- Código:
uiminimap.py
- Código:
Ctrl+A
- Código:
Barra de espaço ou espaço-chave
- Spoiler:
- import ui
import wndMgr
import player
import miniMap
import locale
import net
import app
import colorInfo
import constInfo
import background
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()
t = time.time()
self.textLine = textLine
def __del__(self):
ui.Window.__del__(self)
def SetText(self, text):
self.textLine.SetText(text)
def SetTooltipPosition(self, PosX, PosY):
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.Load()
self.infoGuildMark.Hide()
self.AtlasMainWindow = None
self.mapName = ""
self.board = 1
ui.ScriptWindow.__init__(self)
def __del__(self):
ui.ScriptWindow.__del__(self)
def SetMapName(self, mapName):
if 949==app.GetDefaultCodePage():
try:
self.board.SetTitleName(locale.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(7, 30)
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 = locale.GUILD_EMPTY_AREA
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.SetPosition(mouseX - x - textWidth - 18 - 5, mouseY - y)
self.infoGuildMark.SetIndex(dwGuildID)
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 + 15, iSizeY + 38)
self.board.SetSize(iSizeX + 15, iSizeY + 38)
#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,
}
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(locale.MINIMAP)
self.tooltipMiniMapOpen.Show()
self.tooltipMiniMapClose = MapTextToolTip()
self.tooltipMiniMapClose.SetText(locale.UI_CLOSE)
self.tooltipMiniMapClose.Show()
self.tooltipScaleUp = MapTextToolTip()
self.tooltipScaleUp.SetText(locale.MINIMAP_INC_SCALE)
self.tooltipScaleUp.Show()
self.tooltipScaleDown = MapTextToolTip()
self.tooltipScaleDown.SetText(locale.MINIMAP_DEC_SCALE)
self.tooltipScaleDown.Show()
self.tooltipAtlasOpen = MapTextToolTip()
self.tooltipAtlasOpen.SetText(locale.MINIMAP_SHOW_AREAMAP)
self.tooltipAtlasOpen.Show()
self.tooltipInfo = MapTextToolTip()
self.tooltipInfo.Show()
if miniMap.IsAtlas():
self.tooltipAtlasOpen.SetText(locale.MINIMAP_SHOW_AREAMAP)
else:
self.tooltipAtlasOpen.SetText(locale.MINIMAP_CAN_NOT_SHOW_AREAMAP)
self.tooltipInfo = MapTextToolTip()
self.tooltipInfo.Show()
self.mapName = ""
self.isLoaded = 0
self.canSeeInfo = TRUE
def __del__(self):
miniMap.Destroy()
ui.ScriptWindow.__del__(self)
def __Initialize(self):
self.Hora = 0
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
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(locale.MINIMAP_CANNOT_SEE)
else:
self.canSeeInfo = TRUE
self.ShowMiniMap()
self.tooltipMiniMapOpen.SetText(locale.MINIMAP)
def Show(self):
self.__LoadWindow()
ui.ScriptWindow.Show(self)
def __LoadWindow(self):
if self.isLoaded == 1:
return
self.isLoaded = 1
try:
pyScrLoader = ui.PythonScriptLoader()
pyScrLoader.LoadScriptFile(self, "UIScript/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.Hora = self.GetChild("Hora")
self.positionInfo = self.GetChild("PositionInfo")
self.observerCount = self.GetChild("ObserverCount")
serverInfo = self.GetChild("ServerInfo")
except:
import exception
exception.Abort("MiniMap.LoadWindow.Bind")
if constInfo.MINIMAP_POSITIONINFO_ENABLE==0:
self.positionInfo.Hide()
if constInfo.HORA_VISIBLE==0:
self.Hora.Hide()
serverInfo.SetText(net.GetServerInfo())
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 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(locale.MINIMAP_OBSERVER_COUNT % observerCount)
def OnUpdate(self):
(x, y, z) = player.GetMainCharacterPosition()
miniMap.Update(x, y)
self.positionInfo.SetText("%.0f, %.0f" % (x/100, y/100))
self.Hora.SetText(time.strftime('Hora actual %X'))
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, locale.UI_POS_UNKNOWN))
self.tooltipInfo.SetTooltipPosition(mouseX - 5, mouseY)
self.tooltipInfo.SetTextColor(dwTextColor)
self.tooltipInfo.Show()
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()
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 + 4.0, fy + 5.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):
self.ToggleAtlasWindow()
def ToggleAtlasWindow(self):
if not miniMap.IsAtlas():
return
if self.AtlasWindow.IsShow():
self.AtlasWindow.Hide()
else:
self.AtlasWindow.Show()
Salve e feche agora ir com o seguinte arquivo
- Código:
constinfo.py
- Código:
TWO_HANDED_WEAPON_ATT_SPEED_DECREASE_VALUE = 10
- Código:
HORA_VISIBLE = 1 #1= Activado 0= Desactivado
Agora vamos para uiscript, procure este arquivo:
- Código:
minimap.py
- Spoiler:
- ROOT = "d:/ymir work/ui/minimap/"
window = {
"name" : "MiniMap",
"x" : SCREEN_WIDTH - 136,
"y" : 0,
"width" : 136,
"height" : 137,
"children" :
(
## OpenWindow
{
"name" : "OpenWindow",
"type" : "window",
"x" : 0,
"y" : 0,
"width" : 136,
"height" : 137,
"children" :
(
{
"name" : "OpenWindowBGI",
"type" : "image",
"x" : 0,
"y" : 0,
"image" : ROOT + "minimap.sub",
},
## MiniMapWindow
{
"name" : "MiniMapWindow",
"type" : "window",
"x" : 4,
"y" : 5,
"width" : 128,
"height" : 128,
},
## ScaleUpButton
{
"name" : "ScaleUpButton",
"type" : "button",
"x" : 101,
"y" : 116,
"default_image" : ROOT + "minimap_scaleup_default.sub",
"over_image" : ROOT + "minimap_scaleup_over.sub",
"down_image" : ROOT + "minimap_scaleup_down.sub",
},
## ScaleDownButton
{
"name" : "ScaleDownButton",
"type" : "button",
"x" : 115,
"y" : 103,
"default_image" : ROOT + "minimap_scaledown_default.sub",
"over_image" : ROOT + "minimap_scaledown_over.sub",
"down_image" : ROOT + "minimap_scaledown_down.sub",
},
## MiniMapHideButton
{
"name" : "MiniMapHideButton",
"type" : "button",
"x" : 111,
"y" : 6,
"default_image" : ROOT + "minimap_close_default.sub",
"over_image" : ROOT + "minimap_close_over.sub",
"down_image" : ROOT + "minimap_close_down.sub",
},
## AtlasShowButton
{
"name" : "AtlasShowButton",
"type" : "button",
"x" : 12,
"y" : 12,
"default_image" : ROOT + "atlas_open_default.sub",
"over_image" : ROOT + "atlas_open_over.sub",
"down_image" : ROOT + "atlas_open_down.sub",
},
## ServerInfo
{
"name" : "ServerInfo",
"type" : "text",
"text_horizontal_align" : "center",
"outline" : 1,
"x" : 70,
"y" : 140,
"text" : "",
},
## PositionInfo
{
"name" : "PositionInfo",
"type" : "text",
"text_horizontal_align" : "center",
"outline" : 1,
"x" : 70,
"y" : 160,
"text" : "",
},
## Hora implementada por Mrs.Troll
{
"name" : "Hora",
"type" : "text",
"text_horizontal_align" : "center",
"outline" : 1,
"x" : 70,
"y" : 150,
"text" : "",
},
## ObserverCount
{
"name" : "ObserverCount",
"type" : "text",
"text_horizontal_align" : "center",
"outline" : 1,
"x" : 70,
"y" : 180,
"text" : "",
},
),
},
{
"name" : "CloseWindow",
"type" : "window",
"x" : 0,
"y" : 0,
"width" : 132,
"height" : 48,
"children" :
(
## ShowButton
{
"name" : "MiniMapShowButton",
"type" : "button",
"x" : 100,
"y" : 4,
"default_image" : ROOT + "minimap_open_default.sub",
"over_image" : ROOT + "minimap_open_default.sub",
"down_image" : ROOT + "minimap_open_default.sub",
},
),
},
),
}
- Código:
HORA_VISIBLE = 1 #1= Activado 0= Desactivado
Uma foto para ver
- Spoiler:
O relógio não é descoberto por mim é como eu dizer isso já foi postado
eu só fis algumas alterações pois o primeiro relógio subistituia as codernadas dos mapas então eu só abrir um espaço pra editar as horas e saber como era iria se comportar na interface
Eu fui forçado a mudar o título que aparentemente não era compreensível
biffjunior-
Mensagens : 65
Agradeçimento : 7
Nascimento : 19/11/1980
Inscriçao : 02/02/2011
Idade : 44
Localização : Lisboa Portugaul
Re: Relógio no Cliente
Isto a mim não me deu , quando vou para iniciar a char . Processo de Login em Progresso e não passa dai, alguem dá uma ajudinha ?
bengipt-
Mensagens : 2
Agradeçimento : 0
Inscriçao : 01/08/2011
Re: Relógio no Cliente
Eu não consegui, porque quando logo o cliente fecha, mais ótimo tutu
igor1220-
Mensagens : 261
Agradeçimento : 167
Nascimento : 04/07/1998
Inscriçao : 28/10/2011
Idade : 26
Localização : Goiânia
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos