mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 13:23:46 +03:00
138 lines
5.0 KiB
Lua
138 lines
5.0 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
|
|
AddCSLuaFile()
|
|
|
|
if ( SERVER ) then return end
|
|
|
|
local checkList = {}
|
|
checkList[ "cheat" ] = { tooltip = "#menubar.cheatstip", func = function() return GetConVarNumber( "sv_cheats" ) != 0 end }
|
|
checkList[ "cheatSP" ] = { tooltip = "#menubar.cheatstip", func = function() return GetConVarNumber( "sv_cheats" ) != 0 or game.SinglePlayer() end }
|
|
checkList[ "host" ] = { tooltip = "#menubar.host_only", func = function() return IsValid( LocalPlayer() ) and LocalPlayer():IsListenServerHost() end }
|
|
|
|
local function AddCVar( s, checkStr, ... )
|
|
local cvar = s:AddCVar( ... )
|
|
cvar.OldThink = cvar.Think
|
|
cvar.Think = function( se )
|
|
se:OldThink()
|
|
local checks = string.Split( checkStr, " " )
|
|
for k, v in ipairs( checks ) do
|
|
if ( checkList[ v ] and !checkList[ v ].func() ) then
|
|
se:SetEnabled( false )
|
|
se:SetTooltip( checkList[ v ].tooltip )
|
|
return
|
|
end
|
|
end
|
|
|
|
se:SetEnabled( true )
|
|
se:SetTooltip()
|
|
end
|
|
end
|
|
|
|
local function AddHostCVar( s, ... ) AddCVar( s, "host", ... ) end
|
|
local function AddCheatCVar( s, ... ) AddCVar( s, "cheat", ... ) end
|
|
local function AddCheatOrSPCVar( s, ... ) AddCVar( s, "cheatSP host", ... ) end
|
|
|
|
-- Display options
|
|
hook.Add( "PopulateMenuBar", "DisplayOptions_MenuBar", function( menubar )
|
|
|
|
local m = menubar:AddOrGetMenu( "#menubar.drawing" )
|
|
|
|
m:AddCVar( "#menubar.drawing.physgun_beam", "physgun_drawbeams", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.physgun_halo", "physgun_halo", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.freeze", "effects_freeze", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.unfreeze", "effects_unfreeze", "1", "0" )
|
|
|
|
m:AddSpacer()
|
|
|
|
m:AddCVar( "#menubar.drawing.hud", "cl_drawhud", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.toolhelp", "gmod_drawhelp", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.toolui", "gmod_drawtooleffects", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.world_tooltips", "cl_drawworldtooltips", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.spawn_effect", "cl_drawspawneffect", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.effect_rings", "cl_draweffectrings", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.cameras", "cl_drawcameras", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.thrusters", "cl_drawthrusterseffects", "1", "0" )
|
|
|
|
m:AddSpacer()
|
|
|
|
m:AddCVar( "#menubar.drawing.shadows", "r_shadows", "1", "0" )
|
|
m:AddCVar( "#menubar.drawing.detailprops", "r_drawdetailprops", "1", "0" )
|
|
|
|
m:AddSpacer()
|
|
|
|
m:AddCVar( "#menubar.drawing.showfps", "cl_showfps", "1", "0" )
|
|
|
|
AddCheatOrSPCVar( m, "#menubar.drawing.minecraftify", "mat_showlowresimage", "1", "0", function() timer.Simple( 0.1, function() RunConsoleCommand( "mat_reloadallmaterials" ) end ) end )
|
|
AddCheatCVar( m, "#menubar.drawing.wireframe", "mat_wireframe", "1", "0" )
|
|
|
|
m:AddSpacer()
|
|
|
|
m:AddCVar( "#menubar.drawing.hints", "cl_showhints", "1", "0" )
|
|
|
|
end )
|
|
|
|
-- AI Options
|
|
hook.Add( "PopulateMenuBar", "NPCOptions_MenuBar", function( menubar )
|
|
|
|
local m = menubar:AddOrGetMenu( "#menubar.npcs" )
|
|
|
|
AddHostCVar( m, "#menubar.npcs.disableai", "ai_disabled", "1", "0" )
|
|
AddHostCVar( m, "#menubar.npcs.ignoreplayers", "ai_ignoreplayers", "1", "0" )
|
|
AddHostCVar( m, "#menubar.npcs.keepcorpses", "ai_serverragdolls", "1", "0" )
|
|
AddHostCVar( m, "#menubar.npcs.autoplayersquad", "npc_citizen_auto_player_squad", "1", "0" )
|
|
|
|
local wpns = m:AddSubMenu( "#menubar.npcs.weapon" )
|
|
|
|
wpns:SetDeleteSelf( false )
|
|
wpns:AddCVar( "#menubar.npcs.defaultweapon", "gmod_npcweapon", "" )
|
|
wpns:AddCVar( "#menubar.npcs.noweapon", "gmod_npcweapon", "none" )
|
|
wpns:AddSpacer()
|
|
|
|
local groupedWeps = {}
|
|
for _, v in pairs( list.Get( "NPCUsableWeapons" ) ) do
|
|
local cat = ( v.category or "" ):lower()
|
|
groupedWeps[ cat ] = groupedWeps[ cat ] or {}
|
|
groupedWeps[ cat ][ v.class ] = language.GetPhrase( v.title )
|
|
end
|
|
|
|
for group, items in SortedPairs( groupedWeps ) do
|
|
wpns:AddSpacer()
|
|
for class, title in SortedPairsByValue( items ) do
|
|
wpns:AddCVar( title, "gmod_npcweapon", class )
|
|
end
|
|
end
|
|
|
|
end )
|
|
|
|
-- Server options
|
|
hook.Add( "PopulateMenuBar", "MenuBar_ServerOptions", function( menubar )
|
|
|
|
local m = menubar:AddOrGetMenu( "#menubar.server" )
|
|
|
|
AddHostCVar( m, "#utilities.allowcslua", "sv_allowcslua", "1", "0" )
|
|
AddHostCVar( m, "#utilities.falldamage", "mp_falldamage", "1", "0" )
|
|
AddHostCVar( m, "#utilities.gmod_suit", "gmod_suit", "1", "0" )
|
|
AddCheatOrSPCVar( m, "#physcannon_mega_enabled", "physcannon_mega_enabled", "1", "0" )
|
|
|
|
m:AddSpacer()
|
|
AddHostCVar( m, "#enable_weapons", "sbox_weapons", "1", "0" )
|
|
AddHostCVar( m, "#allow_god_mode", "sbox_godmode", "1", "0" )
|
|
|
|
m:AddSpacer()
|
|
AddHostCVar( m, "#players_damage_players", "sbox_playershurtplayers", "1", "0" )
|
|
AddHostCVar( m, "#allow_noclip", "sbox_noclip", "1", "0" )
|
|
AddHostCVar( m, "#bone_manipulate_npcs", "sbox_bonemanip_npc", "1", "0" )
|
|
AddHostCVar( m, "#bone_manipulate_players", "sbox_bonemanip_player", "1", "0" )
|
|
AddHostCVar( m, "#bone_manipulate_others", "sbox_bonemanip_misc", "1", "0" )
|
|
|
|
end )
|