Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local devScreenW, devScreenH = 1280, 800 -- Developer Screen W/H
- local ScreenW, ScreenH = guiGetScreenSize()
- local newScale = dxGetFontHeight(ScreenW / 16000, "default")
- local hourDifference = nil
- local minuteDifference = nil
- local secondDifference = nil
- local theResource = getThisResource()
- local position = "topRight"
- local dimensions = {
- topRight = {
- left = 1100 / devScreenW * ScreenW,
- top = 10 / devScreenH * ScreenH,
- right = 1270 / devScreenW * ScreenW,
- bottom = 26 / devScreenH * ScreenH,
- visible = true
- },
- bottomRight = {
- left = 1100 / devScreenW * ScreenW,
- top = 1530 / devScreenH * ScreenH,
- right = 1310 / devScreenW * ScreenW,
- bottom = 26 / devScreenH * ScreenH,
- visible = false
- },
- bottomLeft = {
- left = 8 / devScreenW * ScreenW,
- top = 1500 / devScreenH * ScreenH,
- right = 230 / devScreenW * ScreenW,
- bottom = 26 / devScreenH * ScreenH,
- visible = false
- },
- custom = {
- visible = false
- }
- }
- function triggerDataSending()
- triggerServerEvent("data:sending", getLocalPlayer())
- local visibilityFile = fileExists("clockInvisible")
- local positionFile = fileExists("positionFile")
- -- checks visibility
- if visibilityFile then
- removeEventHandler("onClientRender", getRootElement(), drawTime)
- dimensions[position]["visible"] = false
- end
- -- checks position file
- if positionFile then
- local file = fileOpen("positionFile")
- local size = fileGetSize(file)
- local fileText = fileRead(file, size)
- fileClose(file)
- dimensions[position]["visible"] = false
- position = fileText
- dimensions[position]["visible"] = true
- else
- local file = fileCreate("positionFile")
- fileWrite(file, position)
- fileClose(file)
- end
- end
- addEventHandler("onClientResourceStart", getResourceRootElement(theResource), triggerDataSending)
- function calculateDifference(serverHours, serverMinutes, serverSeconds)
- local localTime = getRealTime()
- hourDifference = serverHours - localTime.hour
- minuteDifference = serverMinutes - localTime.minute
- secondDifference = serverSeconds - localTime.second
- end
- addEvent("calculate:difference", true)
- addEventHandler("calculate:difference", getRootElement(), calculateDifference)
- -- this was set to fix the time law
- function returnTimeText()
- local localTime = getRealTime()
- local hours = localTime.hour + hourDifference
- local minutes = localTime.minute + minuteDifference
- local seconds = localTime.second + secondDifference
- if seconds > 59 then
- minutes = minutes + 1
- seconds = seconds - 60
- elseif seconds < 0 then
- minutes = minutes - 1
- seconds = seconds + 60
- end
- if minutes > 59 then
- hours = hours + 1
- minutes = minutes - 60
- elseif minutes < 0 then
- hours = hours - 1
- minutes = minutes + 60
- end
- if hours > 23 then
- hours = hours - 24
- elseif hours < 0 then
- hours = hours + 24
- end
- local time = string.format("%02d:%02d:%02d", hours, minutes, seconds)
- text = "Server Time " .. time
- return text
- end
- function drawTime()
- if hourDifference == nil then
- return
- else
- local text = returnTimeText()
- dxDrawText(
- text,
- dimensions[position]["left"] + 1,
- dimensions[position]["top"] + 1,
- dimensions[position]["right"] + 1,
- dimensions[position]["bottom"] + 1,
- tocolor(0, 0, 0, 255),
- newScale,
- "default",
- "center",
- "center",
- false,
- true,
- true,
- false,
- false
- )
- dxDrawText(
- text,
- dimensions[position]["left"],
- dimensions[position]["top"],
- dimensions[position]["right"],
- dimensions[position]["bottom"],
- tocolor(255, 255, 255, 255),
- newScale,
- "default",
- "center",
- "center",
- false,
- true,
- true,
- false,
- false
- )
- end
- end
- addEventHandler("onClientRender", getRootElement(), drawTime)
- function hideOrShow()
- if (dimensions[position]["visible"] == true) then
- removeEventHandler("onClientRender", getRootElement(), drawTime)
- dimensions[position]["visible"] = false
- local file = fileCreate("clockInvisible")
- fileClose(file)
- elseif (dimensions[position]["visible"] == false) then
- addEventHandler("onClientRender", getRootElement(), drawTime)
- dimensions[position]["visible"] = true
- fileDelete("clockInvisible")
- end
- end
- addCommandHandler("clock", hideOrShow)
- function changeCorner(_, corner)
- if corner == "topright" then
- dimensions[position]["visible"] = false
- position = "topRight"
- writeInFile(position)
- dimensions[position]["visible"] = true
- elseif corner == "bottomleft" then
- dimensions[position]["visible"] = false
- position = "bottomLeft"
- writeInFile(position)
- dimensions[position]["visible"] = true
- elseif corner == "bottomright" then
- dimensions[position]["visible"] = false
- position = "bottomRight"
- writeInFile(position)
- dimensions[position]["visible"] = true
- end
- end
- addCommandHandler("clockPosition", changeCorner)
- function writeInFile(position)
- local file = fileOpen("positionFile")
- fileWrite(file, position)
- fileClose(file)
- end
- addCommandHandler(
- "clockManual",
- function()
- function manualPosition()
- local w, h = guiGetScreenSize()
- showCursor(true)
- dimensions[position]["visible"] = false
- position = "custom"
- dimensions[position]["visible"] = true
- x, y = getCursorPosition()
- dimensions["custom"]["left"] = x * (2600 / devScreenW * ScreenW)
- dimensions["custom"]["top"] = y * (1700 / devScreenH * ScreenH)
- dimensions["custom"]["right"] = 10
- dimensions["custom"]["bottom"] = 0
- end
- addEventHandler("onClientRender", getRootElement(), manualPosition)
- addEventHandler(
- "onClientClick",
- getRootElement(),
- function()
- showCursor(false)
- removeEventHandler("onClientRender", getRootElement(), manualPosition)
- removeEventHandler("onClientClick", getRootElement(), getEventHandlers("onClientRender", getRootElement())[1])
- end
- )
- end
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement