Discord
Steam
/
Garry's Mod
/
Help
/
Stack Overflow
Login/Join
Event Log
Stack Overflow
0 replies, posted
Search
In This Thread
[CODE]-- Dead Space style gun screen by pyroCow -- Fixed by Crestfall if SERVER then AddCSLuaFile("ds_gunhud.lua") end if CLIENT then --[[***************************************** Setting up textures & settings *****************************************]]-- --Screen fonts surface.CreateFont("PrAmmoFont", { font = "Tahoma", size = 16, weight = 700, blursize = 0, scanlines = 0, antialias = true, underline = false, italic = false, strikeout = false, symbol = false, rotary = false, shadow = false, additive = false, outline = false, } ) surface.CreateFont("TotalAmmoFont", { font = "Tahoma", size = 20, weight = 700, blursize = 0, scanlines = 0, antialias = true, underline = false, italic = false, strikeout = false, symbol = false, rotary = false, shadow = false, additive = false, outline = false, } ) --Material for the screen local matsettings = { ["$basetexture"] = "ds_gunhud/ds_mainscreen", ["$ignorez"] = 0, ["$additive"] = 1, ["$vertexcolor"] = 1, ["$vertexalpha"] = 1, ["$nolod"] = 1 } local ds_gunhud = CreateMaterial("ds_gunhud", "UnlitGeneric", matsettings) local TEX_WIDTH = 128 local TEX_HEIGHT = 64 local ScreenTexture = GetRenderTarget( "gunhudscreen", TEX_WIDTH, TEX_HEIGHT ) local OutlineTexture = surface.GetTextureID("ds_gunhud/ds_mainscreen") local ScanlineTexture = surface.GetTextureID("ds_gunhud/ds_scanlines") local NoiseTexture = surface.GetTextureID("ds_gunhud/ds_screen_noise") --Size & attachment point settings for the gun local DefaultGunHud = {height = 2, width = 4, attachmentpoint = "2", enabled = true} local GunHud = DefaultGunHud --[[***************************************** Configurable features & console commands *****************************************]]-- --Screen size & attachment point local GunScreenSize = {} local GunScreenSizeFile = "ds_gunhud/screen_sizes.txt" local function LoadScreenSizes() if file.Exists(GunScreenSizeFile,"MOD") then status, err = pcall(file.Read(GunScreenSizeFile)) if status then GunScreenSize = err else MsgN("GunHUD: error - " .. err) end else MsgN("GunHUD: Screen size config file doesn't exist... using default setting") end end LoadScreenSizes() local function SaveScreenSizes() file.Write(GunScreenSizeFile) MsgN("GunHUD: Screen sizes saved") end local function AddScreenSize(model, sWidth, sHeight, sAttach, sEnabled) GunScreenSize[model] = {width = sWidth, height = sHeight, attachmentpoint = sAttach, enabled = sEnabled} end --Screen color local DefaultScreenColor = Color(51, 204, 204, 0) local ScreenColor = DefaultScreenColor local ScreenColorFile = "ds_gunhud/screen_color.txt" local function LoadScreenColor() if file.Exists(ScreenColorFile,"MOD") then status, err = pcall(file.Read(ScreenColorFile)) if status then ScreenColor = err else MsgN("GunHUD: error - " .. err) end else MsgN("GunHUD: Screen color file doesn't exist... using default setting") end end LoadScreenColor() local function SaveScreenColor() --Save options to file file.Write(ScreenColorFile) MsgN("GunHUD: New screen color saved") end --GUI for editing screen color local function ScreenColorEditor(ply, cmd, args) local OriginalColor = table.Copy(ScreenColor) --save original color local ColorPanel = vgui.Create("DFrame") ColorPanel:SetPos( ScrW()/3, ScrH()/2 ) ColorPanel:SetSize( 200, 215 ) ColorPanel:SetTitle( "Gun Screen color" ) ColorPanel:SetVisible( true ) ColorPanel:SetDraggable( true ) ColorPanel:ShowCloseButton( true ) ColorPanel:Center() ColorPanel.btnClose.DoClick = function (button) --Set close button to also revert changes ScreenColor = Color(OriginalColor.r, OriginalColor.g, OriginalColor.b) ColorPanel:Close() end ColorPanel:MakePopup() local ColorMixer = vgui.Create("DColorMixer") --Access values with GetRGB() ColorMixer:SetColor( ScreenColor ) ColorMixer:SetPalette( false ) ColorMixer:SetAlphaBar( false ) --don't show alpha bar, not used ColorMixer:SetSize( 180, 130 ) ColorMixer:Dock( NODOCK ) ColorMixer:SetPos( 10, 40 ) ColorMixer:SetParent( ColorPanel ) ColorMixer.ValueChanged = function( ctrl, color ) ColorMixer:SetBaseColor( color ) ScreenColor = ColorMixer:GetColor() end ColorMixer.ColorCubeChanged = function( cube ) ColorMixer:SetImageColor( ColorMixer:GetColor() ) ScreenColor = ColorMixer:GetColor() end --Save configuration local ButtonSaveChanges = vgui.Create("DButton") ButtonSaveChanges:SetParent( ColorPanel ) ButtonSaveChanges:SetText( "Save Configuration" ) ButtonSaveChanges:SetPos( 40, 180 ) ButtonSaveChanges:SetSize( 130, 25 ) ButtonSaveChanges.DoClick = function (button) SaveScreenColor() ColorPanel:Close() end end concommand.Add( "ds_gunhud_color", ScreenColorEditor ) --GUI for editing screen size & attachment point local function ScreenEditor(ply, cmd, args) local OriginalSize = table.Copy(GunHud) --Save copy of current settings in case user cancels changes local EditorPanel = vgui.Create( "DFrame" ) EditorPanel:SetPos( 100 , 100 ) EditorPanel:SetSize( 250, 150 ) EditorPanel:SetTitle( "Gun Screen editor" ) EditorPanel:SetVisible( true ) EditorPanel:SetDraggable( true ) EditorPanel:ShowCloseButton( true ) EditorPanel.btnClose.DoClick = function (button) --Set close button to also revert changes --MsgN("Custom close button") --GunHud = OriginalSize doesn't work GunHud.height = OriginalSize.height GunHud.width = OriginalSize.width GunHud.attachmentpoint = OriginalSize.attachmentpoint GunHud.enabled = OriginalSize.enabled EditorPanel:Close() end EditorPanel:MakePopup() --Change the screen size (width is always height * 2) local SizeSlider = vgui.Create("DNumSlider") SizeSlider:SetParent( EditorPanel ) SizeSlider:SetPos( 10, 60 ) SizeSlider:SetSize( 200, 10 ) SizeSlider:SetMin( 1 ) SizeSlider:SetMax( 6 ) SizeSlider:SetDecimals( 0 ) SizeSlider:SetText( "Size" ) SizeSlider:SetValue( GunHud.height ) SizeSlider.OnValueChanged = function(pane,val) GunHud.height = val GunHud.width = val * 2 end --Change the screen attachment point local AttachmentSlider = vgui.Create("DNumSlider") AttachmentSlider:SetParent( EditorPanel ) AttachmentSlider:SetPos( 10, 40 ) AttachmentSlider:SetSize( 200, 10 ) AttachmentSlider:SetMin( 1 ) AttachmentSlider:SetMax( 2 ) AttachmentSlider:SetDecimals( 0 ) AttachmentSlider:SetText( "Attachment Point" ) AttachmentSlider:SetValue( GunHud.attachmentpoint ) AttachmentSlider.OnValueChanged = function(pane,val) GunHud.attachmentpoint = tostring(val) end --Toggle screen enabled for this weapon local CheckboxLabel = vgui.Create("DLabel", EditorPanel) CheckboxLabel:SetText("Enable for this weapon") CheckboxLabel:SizeToContents() CheckboxLabel:SetPos( 10, 80 ) local CheckboxEnable = vgui.Create("DCheckBox") CheckboxEnable:SetParent( EditorPanel ) CheckboxEnable:SetPos( 125, 80 ) CheckboxEnable:SetValue( GunHud.enabled ) CheckboxEnable.OnChange = function ( bVal ) GunHud.enabled = CheckboxEnable:GetChecked() end --Save configuration local ButtonSaveChanges = vgui.Create("DButton") ButtonSaveChanges:SetParent( EditorPanel ) ButtonSaveChanges:SetText( "Save Configuration" ) ButtonSaveChanges:SetPos( 62, 105 ) ButtonSaveChanges:SetSize( 130, 25 ) ButtonSaveChanges.DoClick = function (button) --Add settings to the table and then save the new table AddScreenSize(LocalPlayer():GetViewModel():GetModel(), GunHud.width, GunHud.height, GunHud.attachmentpoint, GunHud.enabled) SaveScreenSizes() EditorPanel:Close() end end concommand.Add("ds_gunhud_editor", ScreenEditor) local function DisableScreen(ply, cmd, args) hook.Remove("HUDPaint","DrawAmmoScreen") hook.Remove("RenderScreenspaceEffects", "DrawAmmoScreenTexture") end concommand.Add("ds_gunhud_disable", DisableScreen) local function EnableScreen(ply, cmd, args) hook.Add("HUDPaint","DrawAmmoScreen", DrawAmmoScreen) hook.Add("RenderScreenspaceEffects", "DrawAmmoScreenTexture", DrawAm
Sorry, you need to
Log In
to post a reply to this thread.