2023-11-29 18:00:22 -05:00
|
|
|
|
2023-12-04 18:20:18 -05:00
|
|
|
-- Settings panel
|
|
|
|
|
2024-01-03 21:08:59 -05:00
|
|
|
-- 0 = checkbox, 1 = slider, 2 = string, 3 = binder
|
2023-12-04 18:20:18 -05:00
|
|
|
local conf = {
|
|
|
|
[1] = {
|
2023-12-06 01:04:00 -05:00
|
|
|
{ 0, "benny_hud_enable_health", "Health", },
|
|
|
|
{ 0, "benny_hud_enable_active", "Active Weapon", },
|
|
|
|
{ 0, "benny_hud_enable_hints", "Hints", },
|
|
|
|
{ 0, "benny_hud_enable_hotbar", "Hotbar", },
|
|
|
|
{ 1, "benny_hud_scale", "Scale", 1, 4, 0 },
|
|
|
|
},
|
|
|
|
[2] = {
|
|
|
|
{ 0, "benny_wep_ao_firearms", "Firearms Override Primary Attack" },
|
2023-12-08 19:53:37 -05:00
|
|
|
{ 2, "Like traditional akimbo, pressing Left Mouse will shoot an offhand firearm." },
|
2023-12-06 01:04:00 -05:00
|
|
|
{ 0, "benny_wep_ao_grenades", "Grenades Override Primary Attack" },
|
|
|
|
{ 2, "Pressing Left Mouse will throw an offhand grenade." },
|
2023-12-08 19:53:37 -05:00
|
|
|
{ 0, "benny_wep_ao_junk", "Junk Overrides Primary Attack" },
|
2023-12-06 01:04:00 -05:00
|
|
|
{ 2, "Pressing Left Mouse will throw offhand junk." },
|
2024-01-03 21:08:59 -05:00
|
|
|
{ 3, "benny_bind_reload", "Reload" },
|
|
|
|
{ 3, "benny_bind_reloada", "Reload Alt" },
|
2023-12-04 18:20:18 -05:00
|
|
|
},
|
2024-01-08 03:39:33 -05:00
|
|
|
[3] = {
|
|
|
|
{ 4, function( Scroll )
|
|
|
|
local Butt = Scroll:Add("DLabel")
|
|
|
|
Butt:Dock(TOP)
|
|
|
|
Butt:DockMargin( ss(24+4), 0, 0, 0 )
|
|
|
|
Butt:SetText( "Character Appearance" )
|
|
|
|
|
|
|
|
local Down = Scroll:Add("DComboBox")
|
|
|
|
Down:Dock( TOP )
|
|
|
|
Down:DockMargin( ss(24), 0, ss(24), ss(2) )
|
|
|
|
Down:SetValue( ConVarSV_String("tempchar") )
|
|
|
|
Down:AddChoice( "Benny", "benny" )
|
|
|
|
Down:AddChoice( "Nikki", "nikki" )
|
|
|
|
Down:AddChoice( "Igor", "igor" )
|
|
|
|
Down:AddChoice( "Yang-Hao", "yanghao" )
|
|
|
|
|
|
|
|
Down:AddChoice( "z: CIA", "mp_cia" )
|
|
|
|
Down:AddChoice( "z: PLASOF", "mp_plasof" )
|
|
|
|
Down:AddChoice( "z: MILITIA", "mp_militia" )
|
|
|
|
Down:AddChoice( "z: ARNG", "mp_natguard" )
|
|
|
|
Down:AddChoice( "z: VIPER", "mp_viper" )
|
|
|
|
Down:AddChoice( "z: HALO", "mp_halo" )
|
|
|
|
|
|
|
|
function Down:OnSelect( index, value, data )
|
|
|
|
RunConsoleCommand( "benny_tempchar", data )
|
|
|
|
RunConsoleCommand( "benny_hud_tempactive", data )
|
|
|
|
end
|
|
|
|
end },
|
|
|
|
|
|
|
|
},
|
2023-12-04 18:20:18 -05:00
|
|
|
}
|
|
|
|
|
2023-12-06 02:12:26 -05:00
|
|
|
local function genpan( Base, Sect, Conf )
|
2023-12-06 01:04:00 -05:00
|
|
|
local Scroll = Base:Add("DPanel")
|
|
|
|
Scroll:DockPadding( 10, 5, 10, 5 )
|
|
|
|
Scroll.Paint = function() end
|
|
|
|
Sect:SetContents( Scroll )
|
|
|
|
|
2023-12-06 02:12:26 -05:00
|
|
|
for i, v in ipairs( Conf ) do
|
2023-12-06 01:04:00 -05:00
|
|
|
if v[1] == 0 then
|
|
|
|
local Butt = Scroll:Add("DCheckBoxLabel")
|
|
|
|
Butt:Dock(TOP)
|
2024-01-08 03:39:33 -05:00
|
|
|
Butt:DockMargin( 0, ss(2), 0, ss(2) )
|
2023-12-06 01:04:00 -05:00
|
|
|
Butt:SetText( v[3] )
|
|
|
|
Butt:SetConVar( v[2] )
|
|
|
|
elseif v[1] == 1 then
|
|
|
|
local Butt = Scroll:Add("DNumSlider")
|
|
|
|
Butt:Dock(TOP)
|
2024-01-08 03:39:33 -05:00
|
|
|
Butt:DockMargin( 0, ss(2), 0, ss(2) )
|
2023-12-06 01:04:00 -05:00
|
|
|
Butt:SetText( v[3] )
|
|
|
|
Butt:SetConVar( v[2] )
|
|
|
|
Butt:SetMin( v[4] )
|
|
|
|
Butt:SetMax( v[5] )
|
|
|
|
Butt:SetDecimals( v[6] )
|
|
|
|
elseif v[1] == 2 then
|
|
|
|
local Butt = Scroll:Add("DLabel")
|
|
|
|
Butt:Dock(TOP)
|
2024-01-08 03:39:33 -05:00
|
|
|
Butt:DockMargin( ss(12), ss(-4), 0, 0 )
|
2023-12-06 01:04:00 -05:00
|
|
|
Butt:SetText( v[2] )
|
2024-01-03 21:08:59 -05:00
|
|
|
elseif v[1] == 3 then
|
|
|
|
local Butt = Scroll:Add("DLabel")
|
|
|
|
Butt:Dock(TOP)
|
2024-01-08 03:39:33 -05:00
|
|
|
Butt:DockMargin( ss(24+4), 0, 0, 0 )
|
2024-01-03 21:08:59 -05:00
|
|
|
Butt:SetText( v[3] )
|
|
|
|
|
|
|
|
local Butt = Scroll:Add("DBinder")
|
|
|
|
Butt:Dock(TOP)
|
2024-01-08 03:39:33 -05:00
|
|
|
Butt:DockMargin( ss(24), 0, ss(24), ss(2) )
|
2024-01-03 21:08:59 -05:00
|
|
|
Butt:SetText( v[2] )
|
|
|
|
|
|
|
|
function Butt:OnChange( num )
|
|
|
|
RunConsoleCommand( v[2], num )
|
|
|
|
end
|
2024-01-08 03:39:33 -05:00
|
|
|
elseif v[1] == 4 then
|
|
|
|
v[2]( Scroll )
|
2023-12-06 01:04:00 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-12-04 18:20:18 -05:00
|
|
|
function OpenSettingsMenu()
|
2023-12-06 02:12:26 -05:00
|
|
|
if IsValid( SettingsMenu ) then SettingsMenu:Remove() return end
|
|
|
|
local Base = vgui.Create("BFrame")
|
|
|
|
SettingsMenu = Base
|
2023-12-04 18:20:18 -05:00
|
|
|
Base:SetTitle("Settings")
|
2024-01-08 03:39:33 -05:00
|
|
|
Base:SetSize( ss(300), ss(300) )
|
2023-12-04 18:20:18 -05:00
|
|
|
Base:Center()
|
|
|
|
Base:MakePopup()
|
2023-12-06 02:12:26 -05:00
|
|
|
Base:SetKeyboardInputEnabled( false )
|
2023-12-04 18:20:18 -05:00
|
|
|
|
|
|
|
do -- Sect 1
|
2024-01-08 03:39:33 -05:00
|
|
|
local Sect = Base:Add("BCollapsibleCategory")
|
2023-12-04 18:20:18 -05:00
|
|
|
Sect:Dock(TOP)
|
2024-01-08 03:39:33 -05:00
|
|
|
Sect:DockMargin( 0, 0, 0, ss(2) )
|
2023-12-06 02:12:26 -05:00
|
|
|
Sect:SetLabel("HUD")
|
2023-12-04 18:20:18 -05:00
|
|
|
|
2023-12-06 02:12:26 -05:00
|
|
|
genpan( Base, Sect, conf[1] )
|
2023-12-04 18:20:18 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
do -- Sect 2
|
2024-01-08 03:39:33 -05:00
|
|
|
local Sect = Base:Add("BCollapsibleCategory")
|
2023-12-04 18:20:18 -05:00
|
|
|
Sect:Dock(TOP)
|
2024-01-08 03:39:33 -05:00
|
|
|
Sect:DockMargin( 0, 0, 0, ss(2) )
|
2023-12-04 18:20:18 -05:00
|
|
|
Sect:SetLabel("Controls")
|
2023-12-06 01:04:00 -05:00
|
|
|
|
2023-12-06 02:12:26 -05:00
|
|
|
genpan( Base, Sect, conf[2] )
|
2023-12-04 18:20:18 -05:00
|
|
|
end
|
2024-01-08 03:39:33 -05:00
|
|
|
|
|
|
|
do -- Sect 3
|
|
|
|
local Sect = Base:Add("BCollapsibleCategory")
|
|
|
|
Sect:Dock(TOP)
|
|
|
|
Sect:DockMargin( 0, 0, 0, ss(2) )
|
|
|
|
Sect:SetLabel("Preferences")
|
|
|
|
|
|
|
|
genpan( Base, Sect, conf[3] )
|
|
|
|
end
|
2024-01-01 17:56:49 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
concommand.Add("benny_ui_settings", function()
|
|
|
|
OpenSettingsMenu()
|
|
|
|
end)
|