173 lines
6.3 KiB
Lua
173 lines
6.3 KiB
Lua
local total
|
|
local rank = 0
|
|
local start
|
|
local sx, sy = GuiElement.getScreenSize()
|
|
local alpha
|
|
local leaders
|
|
local length,lowerLimit, upperLimit = 0,0,0
|
|
local removeTimer
|
|
|
|
addEventHandler('onClientResourceStart', resourceRoot,
|
|
function()
|
|
|
|
local txd = EngineTXD('model.txd', true)
|
|
txd:import(1974)
|
|
|
|
local dff = EngineDFF('model.dff', 0)
|
|
dff:replace(1974)
|
|
|
|
local col = EngineCOL('model.col')
|
|
col:replace(1974)
|
|
end
|
|
)
|
|
|
|
addEvent("showTotal", true)
|
|
addEventHandler("showTotal", root,
|
|
function (prez)
|
|
total = prez
|
|
start = getTickCount()
|
|
if prez == 1 then
|
|
alpha = 255
|
|
removeEventHandler("onClientRender", root, intro)
|
|
addEventHandler("onClientRender", root, intro)
|
|
else
|
|
removeEventHandler("onClientRender", root, drawTotal)
|
|
addEventHandler("onClientRender", root, drawTotal)
|
|
end
|
|
end)
|
|
|
|
function drawTotal()
|
|
local now = getTickCount()
|
|
if now - start > 5000 then
|
|
removeEventHandler("onClientRender", root, drawTotal)
|
|
end
|
|
dxDrawText("You have " ..total.. " presents", 0, sy-30, sx, sy, tocolor(255,255,255,255), 1.3, "default-bold", "center", "center", false, false, false, true)
|
|
end
|
|
|
|
function intro()
|
|
local now = getTickCount()
|
|
if now - start > 15000 then
|
|
if alpha < 10 then
|
|
removeEventHandler("onClientRender", root, intro)
|
|
else
|
|
alpha = alpha - 10
|
|
end
|
|
end
|
|
dxDrawText("Welcome to the SKC Christmas Event!", 0, sy-300, sx+1, sy+1, tocolor(0,0,0,alpha), 2, "default-bold", "center", "center", false, false, false, true)
|
|
dxDrawText("Welcome to the #ff8000SKC Christmas Event!", 0, sy-300, sx, sy, tocolor(255,255,255,alpha), 2, "default-bold", "center", "center", false, false, false, true)
|
|
|
|
dxDrawText("Collect as many presents as you can.", 0, sy-220, sx+1, sy+1, tocolor(0,0,0,alpha), 1.6, "default-bold", "center", "center", false, false, false, true)
|
|
dxDrawText("Collect as many presents as you can.", 0, sy-220, sx, sy, tocolor(255,255,255,alpha), 1.6, "default-bold", "center", "center", false, false, false, true)
|
|
end
|
|
|
|
function drawLeaders()
|
|
local offsetX_SKC = 400
|
|
dxDrawRectangle(sx-200-offsetX_SKC, 10, length, 35, tocolor(0,0,0,220))
|
|
if length >= 190 then
|
|
dxDrawText("Christmas Event Leaders", sx-200-offsetX_SKC, 20, sx-10-offsetX_SKC, 40, tocolor(255,255,255,255), 1, "default-bold", "center")
|
|
for i, v in ipairs(leaders) do
|
|
if i > lowerLimit and i <= upperLimit then
|
|
if i == rank then
|
|
dxDrawRectangle(sx-170-offsetX_SKC, 24+(28*(i-lowerLimit)), 160, 28, tocolor(100,100,100,155))
|
|
else
|
|
dxDrawRectangle(sx-170-offsetX_SKC, 24+(28*(i-lowerLimit)), 160, 28, tocolor(0,0,0,155))
|
|
end
|
|
dxDrawRectangle(sx-200-offsetX_SKC, 24+(28*(i-lowerLimit)), 30, 28, tocolor(0,0,0,220))
|
|
if i < 6 then
|
|
dxDrawText(i, sx-200-offsetX_SKC, 30+(28*(i-lowerLimit)), sx-170-offsetX_SKC, 30+(30*(i-lowerLimit)), tocolor(255,255,0+((i-1)*50),255), 1, "default-bold", "center")
|
|
else
|
|
dxDrawText(i, sx-200-offsetX_SKC, 30+(28*(i-lowerLimit)), sx-170-offsetX_SKC, 30+(30*(i-lowerLimit)), tocolor(255,255,255,255), 1, "default-bold", "center")
|
|
end
|
|
dxDrawText(v[1], sx-160-offsetX_SKC, 30+(28*(i-lowerLimit)), sx-10-offsetX_SKC, 30+(30*(i-lowerLimit)), tocolor(255,255,255,255), 1, "default-bold", "left", "top", false, false, false, true)
|
|
dxDrawText(v[2], sx-31-offsetX_SKC, 30+(28*(i-lowerLimit)), sx-15-offsetX_SKC, 30+(30*(i-lowerLimit)), tocolor(255,0,0,255), 1, "default-bold", "right", "top")
|
|
if i > upperLimit then
|
|
break --don't carry on looping, this helps performance quite a bit
|
|
end
|
|
end
|
|
end
|
|
if rank > upperLimit and upperLimit > 0 then
|
|
dxDrawRectangle(sx-170-offsetX_SKC, 61+(28*(upperLimit-lowerLimit)), 160, 28, tocolor(0,0,0,155))
|
|
dxDrawRectangle(sx-200-offsetX_SKC, 61+(28*(upperLimit-lowerLimit)), 30, 28, tocolor(0,0,0,220))
|
|
dxDrawText(rank, sx-200-offsetX_SKC, 67+(28*(upperLimit-lowerLimit)), sx-170-offsetX_SKC, 100+(28*(upperLimit-lowerLimit)), tocolor(255,255,255,255), 1, "default-bold", "center")
|
|
dxDrawText(leaders[rank][1], sx-160-offsetX_SKC, 67+(28*(upperLimit-lowerLimit)), sx-10-offsetX_SKC, 100+(28*(upperLimit-lowerLimit)), tocolor(255,255,255,255), 1, "default-bold", "left", "top", false, false, false, true)
|
|
dxDrawText(leaders[rank][2], sx-31-offsetX_SKC, 67+(28*(upperLimit-lowerLimit)), sx-15-offsetX_SKC, 100+(28*(upperLimit-lowerLimit)), tocolor(255,0,0,255), 1, "default-bold", "right", "top")
|
|
end
|
|
if upperLimit == 0 then
|
|
dxDrawRectangle(sx-200-offsetX_SKC, 45, length, 25, tocolor(0,0,0,220))
|
|
dxDrawText("Mouse wheel to show", sx-200-offsetX_SKC, 45, sx-10-offsetX_SKC, 60, tocolor(255,255,255,255), 0.85, "default-bold", "center")
|
|
end
|
|
else
|
|
length = length + 5
|
|
end
|
|
end
|
|
|
|
addEvent("updateTables", true)
|
|
addEventHandler("updateTables", root,
|
|
function (data)
|
|
leaders = data
|
|
if removeTimer and removeTimer.valid then
|
|
removeTimer:reset()
|
|
elseif upperLimit == 0 then
|
|
removeTimer = Timer(removeLeaders, 15000, 1)
|
|
end
|
|
removeEventHandler("onClientRender", root, drawLeaders)
|
|
removeEventHandler("onClientRender", root, boom)
|
|
addEventHandler("onClientRender", root, drawLeaders)
|
|
local name = localPlayer.name
|
|
for i, v in ipairs(leaders) do
|
|
if v[1] == name then
|
|
rank = i
|
|
end
|
|
end
|
|
if length == 0 then
|
|
bindKey("mouse_wheel_up", "down", moveLimits)
|
|
bindKey("mouse_wheel_down", "down", moveLimits)
|
|
end
|
|
end)
|
|
|
|
function removeLeaders()
|
|
addEventHandler("onClientRender", root, boom)
|
|
end
|
|
|
|
function boom()
|
|
if length < 10 then
|
|
unbindKey("mouse_wheel_up", "down", moveLimits)
|
|
unbindKey("mouse_wheel_down", "down", moveLimits)
|
|
removeEventHandler("onClientRender", root, drawLeaders)
|
|
removeEventHandler("onClientRender", root, boom)
|
|
length = 0
|
|
else
|
|
length = length - 10
|
|
end
|
|
end
|
|
|
|
function moveLimits(button)
|
|
if length < 190 then return end
|
|
if button == "mouse_wheel_up" then
|
|
if lowerLimit > 0 then
|
|
upperLimit = upperLimit - 1
|
|
lowerLimit = lowerLimit - 1
|
|
elseif lowerLimit == 0 and upperLimit == 5 then
|
|
upperLimit = 0
|
|
removeTimer = Timer(removeLeaders, 15000, 1)
|
|
elseif upperLimit ~= 0 then
|
|
lowerLimit = 0
|
|
upperLimit = 5
|
|
end
|
|
elseif button == "mouse_wheel_down" then
|
|
if upperLimit < #leaders then
|
|
if upperLimit == 0 then
|
|
triggerServerEvent("statsForPoon", localPlayer)
|
|
if removeTimer and removeTimer.valid then
|
|
removeTimer:destroy()
|
|
end
|
|
upperLimit = 5
|
|
elseif upperLimit < 10 then
|
|
upperLimit = 10
|
|
else
|
|
upperLimit = upperLimit + 1
|
|
lowerLimit = lowerLimit + 1
|
|
end
|
|
end
|
|
end
|
|
end |