first commit
This commit is contained in:
@@ -0,0 +1,239 @@
|
||||
local function RX(x) return x * (ScrW() / 1920) end
|
||||
local function RY(y) return y * (ScrH() / 1080) end
|
||||
|
||||
local bladw_materials = {
|
||||
background = Material("xyoss/cMenu/background.png"),
|
||||
backgroundButton = Material("xyoss/cMenu/backgroundButton.png"),
|
||||
backgroundButtonHover = Material("xyoss/cMenu/backgroundButtonHover.png"),
|
||||
backpoliciers = Material("xyoss/cMenu/backpoliciers.png"),
|
||||
backpompiers = Material("xyoss/cMenu/backpompiers.png"),
|
||||
discord = Material("xyoss/cMenu/discordbutton.png"),
|
||||
steam = Material("xyoss/cMenu/steambutton.png"),
|
||||
website = Material("xyoss/cMenu/webButton.png"),
|
||||
}
|
||||
|
||||
local CMenu
|
||||
|
||||
local function HoveredButton(button, mat, label, font)
|
||||
|
||||
if type(mat) == "string" then
|
||||
mat = Material(mat, "noclamp smooth")
|
||||
end
|
||||
|
||||
|
||||
button.Paint = function(self, w, h)
|
||||
local bgcolor = Color(0, 0, 0, 215)
|
||||
local textcolor = Color(255, 255, 255, 255)
|
||||
|
||||
if self:IsHovered() then
|
||||
bgcolor = Color(255, 255, 255, 111)
|
||||
textcolor = Color(0, 0, 0)
|
||||
end
|
||||
|
||||
draw.RoundedBox(12, 0, 0, w, h, bgcolor)
|
||||
surface.SetDrawColor(255, 255, 255)
|
||||
surface.SetMaterial(mat)
|
||||
surface.DrawTexturedRect(15, 12.5, w / 4 , h / 2)
|
||||
draw.SimpleText(label, font, w / 1.55, h / 2.1, textcolor, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
|
||||
end
|
||||
end
|
||||
|
||||
local function HoveredButton2(button, label, font)
|
||||
|
||||
button.Paint = function(self, w, h)
|
||||
local bgmat = bladw_materials.backgroundButton
|
||||
|
||||
if self:IsHovered() then
|
||||
bgmat = bladw_materials.backgroundButtonHover
|
||||
end
|
||||
|
||||
surface.SetDrawColor(255, 255, 255)
|
||||
surface.SetMaterial(bgmat)
|
||||
surface.DrawTexturedRect(0, 0, w, h)
|
||||
draw.SimpleText(label, font, w / 1.9, h / 2.1, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
|
||||
end
|
||||
end
|
||||
|
||||
local function CloseCMenu()
|
||||
if IsValid(CMenu) then
|
||||
CMenu:Remove()
|
||||
CMenu = nil
|
||||
gui.EnableScreenClicker(false)
|
||||
end
|
||||
end
|
||||
|
||||
local function GetStats()
|
||||
local nbplayer = player.GetCount()
|
||||
local nbpolice = team.NumPlayers(TEAM_POLICE)
|
||||
local nbpompiers = team.NumPlayers(TEAM_POMPIERS)
|
||||
|
||||
return nbplayer, nbpolice, nbpompiers
|
||||
end
|
||||
|
||||
local nbplayer, nbpolice, nbpompiers = GetStats()
|
||||
|
||||
function OpenCMenu()
|
||||
if IsValid(CMenu) then return end
|
||||
|
||||
local ply = LocalPlayer()
|
||||
|
||||
CMenu = vgui.Create("DFrame")
|
||||
CMenu:SetSize(RX(400), ScrH())
|
||||
CMenu:SetTitle("")
|
||||
CMenu:SetPos(ScrW() - RX(400), 0)
|
||||
CMenu:SetDraggable(false)
|
||||
CMenu:ShowCloseButton(false)
|
||||
CMenu:SetCursor("arrow")
|
||||
CMenu:SetAlpha(0)
|
||||
CMenu:AlphaTo(255, 0.4, 0)
|
||||
CMenu.Paint = function(self, w, h)
|
||||
surface.SetDrawColor(255, 255, 255)
|
||||
surface.SetMaterial(bladw_materials.background)
|
||||
surface.DrawTexturedRect(0, 0, w, h)
|
||||
|
||||
surface.SetFont("bladw_text")
|
||||
local before = "Il y a "
|
||||
local count = tostring(nbplayer)
|
||||
local after = " joueurs sur le serveur"
|
||||
|
||||
local beforeW, _ = surface.GetTextSize(before)
|
||||
local countW, _ = surface.GetTextSize(count)
|
||||
local totalW, _ = surface.GetTextSize(before .. count .. after)
|
||||
local startX = w / 2 - totalW / 2
|
||||
|
||||
draw.SimpleText(before, "bladw_text", startX, RY(900), Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
|
||||
draw.SimpleText(count, "bladw_text", startX + beforeW, RY(900), Color(255, 165, 0), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
|
||||
draw.SimpleText(after, "bladw_text", startX + beforeW + countW, RY(900), Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
|
||||
end
|
||||
|
||||
button3pers = vgui.Create("DButton", CMenu)
|
||||
button3pers:SetSize(RX(400), RY(122))
|
||||
button3pers:SetPos(RX(0), RY(250))
|
||||
button3pers:SetText("")
|
||||
HoveredButton2(button3pers, "3ème personne", "bladw_text")
|
||||
button3pers.DoClick = function()
|
||||
ply:ConCommand("bladw_3pers")
|
||||
end
|
||||
|
||||
SoundButton = vgui.Create("DButton", CMenu)
|
||||
SoundButton:SetSize(RX(400), RY(122))
|
||||
SoundButton:SetPos(RX(0), RY(325))
|
||||
SoundButton:SetText("")
|
||||
HoveredButton2(SoundButton, "Stopsound", "bladw_text")
|
||||
SoundButton.DoClick = function()
|
||||
ply:ConCommand("bladw_sound")
|
||||
end
|
||||
|
||||
staffbutton = vgui.Create("DButton", CMenu)
|
||||
staffbutton:SetSize(RX(400), RY(122))
|
||||
staffbutton:SetPos(RX(0), RY(400))
|
||||
staffbutton:SetText("")
|
||||
HoveredButton2(staffbutton, "Appelez un staff", "bladw_text")
|
||||
staffbutton.DoClick = function()
|
||||
ply:ConCommand("bladw_staff")
|
||||
end
|
||||
|
||||
moneybutton = vgui.Create("DButton", CMenu)
|
||||
moneybutton:SetSize(RX(400), RY(122))
|
||||
moneybutton:SetPos(RX(0), RY(475))
|
||||
moneybutton:SetText("")
|
||||
HoveredButton2(moneybutton, "Jeter de l'argent", "bladw_text")
|
||||
moneybutton.DoClick = function()
|
||||
ply:ConCommand("bladw_money")
|
||||
end
|
||||
|
||||
weaponbutton = vgui.Create("DButton", CMenu)
|
||||
weaponbutton:SetSize(RX(400), RY(122))
|
||||
weaponbutton:SetPos(RX(0), RY(550))
|
||||
weaponbutton:SetText("")
|
||||
HoveredButton2(weaponbutton, "Jeter une arme", "bladw_text")
|
||||
weaponbutton.DoClick = function()
|
||||
ply:ConCommand("bladw_weapon")
|
||||
end
|
||||
|
||||
PoliceButton = vgui.Create("DPanel", CMenu)
|
||||
PoliceButton:SetSize(RX(260), RY(51))
|
||||
PoliceButton:SetPos(RX(75), RY(732))
|
||||
PoliceButton.Paint = function(self, w, h)
|
||||
surface.SetDrawColor(255, 255, 255)
|
||||
surface.SetMaterial(bladw_materials.backpoliciers)
|
||||
surface.DrawTexturedRect(0, 0, w, h)
|
||||
|
||||
surface.SetFont("bladw_text")
|
||||
local count = nbpolice
|
||||
local after = " Gendarmes en service"
|
||||
|
||||
local countW, _ = surface.GetTextSize(count)
|
||||
local totalW, _ = surface.GetTextSize(count .. after)
|
||||
local startX = w - totalW / 1.2
|
||||
|
||||
draw.SimpleText(count, "bladw_text_Medium", startX, h / 2, Color(100, 180, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
|
||||
draw.SimpleText(after, "bladw_text_Medium", startX + countW, h / 2, Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
|
||||
end
|
||||
|
||||
PompiersButton = vgui.Create("DPanel", CMenu)
|
||||
PompiersButton:SetSize(RX(260), RY(51))
|
||||
PompiersButton:SetPos(RX(75), RY(790))
|
||||
PompiersButton.Paint = function(self, w, h)
|
||||
surface.SetDrawColor(255, 255, 255)
|
||||
surface.SetMaterial(bladw_materials.backpompiers)
|
||||
surface.DrawTexturedRect(0, 0, w, h)
|
||||
|
||||
surface.SetFont("bladw_text")
|
||||
local count = nbpompiers
|
||||
local after = " Pompiers en service"
|
||||
|
||||
local countW, _ = surface.GetTextSize(count)
|
||||
local totalW, _ = surface.GetTextSize(count .. after)
|
||||
local startX = w - totalW / 1.11
|
||||
|
||||
draw.SimpleText(count, "bladw_text_Medium", startX, h / 2, Color(255, 100, 50), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
|
||||
draw.SimpleText(after, "bladw_text_Medium", startX + countW, h / 2, Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
|
||||
end
|
||||
|
||||
DiscordButton = vgui.Create("DButton", CMenu)
|
||||
DiscordButton:SetSize(RX(150), RY(51))
|
||||
DiscordButton:SetPos(RX(50), RY(942))
|
||||
DiscordButton:SetText("")
|
||||
HoveredButton(DiscordButton, bladw_materials.discord, "Discord", "bladw_text_Medium")
|
||||
|
||||
DiscordButton.DoClick = function()
|
||||
gui.OpenURL("https://discord.gg/KsE4Xef6vg")
|
||||
end
|
||||
|
||||
SteamButton = vgui.Create("DButton", CMenu)
|
||||
SteamButton:SetSize(RX(150), RY(51))
|
||||
SteamButton:SetPos(RX(207), RY(942))
|
||||
SteamButton:SetText("")
|
||||
HoveredButton(SteamButton, bladw_materials.steam, "Steam", "bladw_text_Medium")
|
||||
SteamButton.DoClick = function()
|
||||
gui.OpenURL("")
|
||||
end
|
||||
|
||||
WebButton = vgui.Create("DButton", CMenu)
|
||||
WebButton:SetSize(RX(150), RY(51))
|
||||
WebButton:SetPos(RX(125), RY(1005))
|
||||
WebButton:SetText("")
|
||||
HoveredButton(WebButton, bladw_materials.website, "Website", "bladw_text_Medium")
|
||||
WebButton.DoClick = function()
|
||||
gui.OpenURL("")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
hook.Add("PlayerButtonDown", "bladw_CMenu_open", function(ply, key)
|
||||
if key == KEY_C then
|
||||
OpenCMenu()
|
||||
gui.EnableScreenClicker(true)
|
||||
end
|
||||
end)
|
||||
|
||||
hook.Add("PlayerButtonUp", "bladw_CMenu_close", function(ply, key)
|
||||
if key == KEY_C then
|
||||
CloseCMenu()
|
||||
end
|
||||
end)
|
||||
|
||||
hook.Add("OnContextMenuOpen", "bladw_blockC", function()
|
||||
return true
|
||||
end)
|
||||
Reference in New Issue
Block a user