add sborka

This commit is contained in:
2026-03-31 10:27:04 +03:00
commit f5e5f56c84
2345 changed files with 382127 additions and 0 deletions

View File

@@ -0,0 +1,285 @@
if ( SERVER ) then
AddCSLuaFile( "shared.lua" )
util.AddNetworkString("anterg0_guitarTab")
util.AddNetworkString("anterg0_guitarPlaySong")
end
if CLIENT then
SWEP.DrawCrosshair = false
SWEP.PrintName = "Русская гитара"
end
SWEP.Base = "weapon_base"
SWEP.PrintName = "Русская гитара"
SWEP.Slot = 2
SWEP.SlotPos = 4
SWEP.DrawAmmo = false
SWEP.ViewModel = "models/weapons/tayley/v_guitar.mdl"
SWEP.HoldType = "slam"
SWEP.ViewModelFOV = 70
SWEP.ViewModelFlip = false
SWEP.WorldModel = "models/anterg0_Guitar/marauder_guitar.mdl"
-- Other settings
SWEP.Weight = 5
SWEP.AutoSwitchTo = false
SWEP.AutoSwitchFrom = false
SWEP.Spawnable = true
SWEP.AdminSpawnable = true
-- SWEP info
SWEP.Author = "DuckFlit"
SWEP.Category = "[FT] Атмосфера"
SWEP.Instructions = "Левый клик дабы играть случайную песню. Правый клик чтобы выбрать песню."
-- Primary fire settings
SWEP.Primary.Damage = -1
SWEP.Primary.NumShots = -1
SWEP.Primary.Delay = 2
SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = 0
SWEP.Primary.Tracer = -1
SWEP.Primary.Force = -1
SWEP.Primary.TakeAmmoPerBullet = false
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = "none"
SWEP.ReloadTimer = 1
local songsTbl = {
[1] = {"Спецназ - Денис Майданов", "weapons/guitar/ad.mp3"},
[2] = {"Мужество Ведёт на Небеса", "weapons/guitar/ac.mp3"},
[3] = {"Витязи", "weapons/guitar/ag.mp3"},
[4] = {"Чёрный Октябрь ", "weapons/guitar/aj.mp3"},
[5] = {"За что мы пьём", "weapons/guitar/ak.mp3"},
[6] = {"Набирает высоту", "weapons/guitar/ar.mp3"},
[7] = {"Стрим - Песня Бритвы", "weapons/guitar/ay.mp3"},
[8] = {"Простите меня", "weapons/guitar/am.mp3"},
[9] = {"Владимир Высоцкий - Солдаты Группы", "weapons/guitar/ap.mp3"},
[10] = {"ГСН-Российскийспецназ", "weapons/guitar/fa.mp3"},
[11] = {"Егор Авдеев - 333 с ночи до зари", "weapons/guitar/fr.mp3"},
[12] = {"Николай Анисимов - По самому прямому назначению", "weapons/guitar/fy.mp3"},
[13] = {"UKRAINE - Гімн Українскої Артилерії", "weapons/guitar/jj.mp3"},
}
if CLIENT then
SWEP.WepSelectIcon = surface.GetTextureID("vgui/selection/guitar_ico")
function SWEP:DrawWeaponSelection(x, y, wide, tall, alpha)
x = x + wide / 2
y = y + tall / 2
tall = tall * 0.75
x = x - tall / 2
y = y - tall / 2 - 10
surface.SetDrawColor(255, 255, 255, alpha)
surface.SetTexture(self.WepSelectIcon)
surface.DrawTexturedRect(x, y, tall, tall)
end
end
function SWEP:Initialize()
self:SetWeaponHoldType(self.HoldType)
end
function SWEP:Holster()
self.Weapon:EmitSound(Sound("weapons/guitar/squak2.mp3"))
return true
end
function SWEP:OnRemove()
self:Holster()
end
function SWEP:PrimaryAttack()
self:SetNextPrimaryFire(CurTime() + self.Primary.Delay);
self.Weapon:EmitSound(Sound("weapons/guitar/squak2.mp3"), 50, math.random(85,100), 1, CHAN_SWEP)
self.Weapon:SendWeaponAnim( ACT_VM_PRIMARYATTACK )
self.Owner:SetAnimation( PLAYER_ATTACK1 )
if SERVER then
local songChoice = math.random(1, #songsTbl)
self.Weapon:SetNWBool("guitar_isPlaying", true)
self.Weapon:SetNWInt("guitar_songNum", songChoice)
end
timer.Simple(0.5, function()
local song = songsTbl[self.Weapon:GetNWInt("guitar_songNum")][2]
if(song == nil) then
song = ""
end
self.Weapon:EmitSound(song, 80, 100, 1, CHAN_SWEP)
end)
end
function SWEP:SecondaryAttack()
local ply = self.Owner
if SERVER then
net.Start("anterg0_guitarTab")
net.Send(ply)
end
return false
end
function SWEP:Think()
end
function SWEP:Reload()
if(self.Weapon:GetNextSecondaryFire() <= CurTime() ) then
self.Weapon:SetNextSecondaryFire(CurTime() + self.ReloadTimer)
self.Weapon:SetNWBool("guitar_isPlaying", false)
self.Weapon:EmitSound(Sound("weapons/guitar/squak2.mp3"), 50, math.random(85,100), 1, CHAN_SWEP)
return false
end
end
function SWEP:Deploy()
self:SetWeaponHoldType(self.HoldType)
return true
end
SWEP.RenderGroup = RENDERGROUP_BOTH
function SWEP:DrawWorldModelTranslucent()
self:DrawModel()
if self.time == nil then self.time = 0 end
surface.SetFont("Trebuchet24")
local tag = "Now playing ... "
if(self.Weapon:GetNWInt("guitar_songNum") ~= 0) then
songName = songsTbl[self.Weapon:GetNWInt("guitar_songNum")][1]
tag = "Now playing ... " .. songName
end
local textwidth = surface.GetTextSize(tag)
if LocalPlayer():GetPos():Distance(self:GetPos()) < 550 then
if(self.Weapon:GetNWBool("guitar_isPlaying") == false) then return end
local alpha = (LocalPlayer():GetPos():Distance(self:GetPos()) / 100.0)
alpha = math.Clamp(2.5 - alpha, 0 ,1)
local a = Angle(0,0,0)
a:RotateAroundAxis(Vector(1,0,0),90)
a.y = LocalPlayer():GetAngles().y - 90
cam.Start3D2D(self:GetPos() + Vector(0,0,45 + (math.sin(self.time*0.5)*2)), a , 0.15)
draw.SimpleText(tag,"Trebuchet24", -textwidth*0.5,0,Color(205,225,255,255*alpha) , 0 , 1)
cam.End3D2D()
end
self.time = self.time + FrameTime()
end
net.Receive("anterg0_guitarTab", function(len, ply)
local songNum = net.ReadFloat()
local wep = ply:GetActiveWeapon()
if(wep:GetClass() == "guitar") then
wep:SetNWBool("guitar_isPlaying", true)
wep:SetNWInt("guitar_songNum", songNum)
wep:EmitSound( songsTbl[songNum][2], 80, 100, 1, CHAN_SWEP)
end
end)
// DERMA STUFF
if CLIENT then
local PANEL = {}
function PANEL:Init()
local w = ScrW()*0.3
local h = ScrH()*0.4
self:SetSize(w, h)
self:SetPos(ScrW()*0.7, ScrH()/2 - (h/2))
self:MakePopup()
self:SetDeleteOnClose(true)
self:SetDraggable(true)
self:ShowCloseButton(true)
self:SetTitle("")
self.Paint = function(_, w, h)
draw.RoundedBox(0, 0, 0, w, h, Color(0, 0, 0, 225))
end
self.MusicOptions = vgui.Create("anterg0_Guitar:DScroll", self)
end
vgui.Register("anterg0_Guitar:Menu", PANEL, "DFrame")
net.Receive("anterg0_guitarTab", function()
if(IsValid(guitPanel)) then return end
guitPanel = vgui.Create("anterg0_Guitar:Menu")
end)
// MUSIC
local PANEL = {}
function PANEL:Init()
local x,y = self:GetParent():GetSize()
self:SetSize(x, y + 60)
self:SetPos(0, 30)
--Modify Scroll Bar--
local sbar = self:GetVBar()
sbar:SetHideButtons(true)
sbar.Paint = function(_, w, h)
draw.RoundedBox(0, 0, 0, (w/2), h, Color(0, 0, 0, 225))
end
sbar.btnGrip.Paint = function(_, w, h)
draw.RoundedBox(0, 0, 0, (w/2), h, Color(255, 255, 255, 255))
end
self.Paint = function(_, w, h)
draw.RoundedBox(0, 0, 0, w, h, Color(0, 0, 0, 0))
end
for k, v in ipairs(songsTbl) do
local btn = self:Add("DButton")
btn:Dock(TOP)
btn:DockMargin(10, 0, 10, 10)
btn:SetSize(0, 25)
btn:SetText("")
btn.HoverLerp = 0
btn.Paint = function(_, w, h)
if btn:IsHovered() then
btn.HoverLerp = Lerp( FrameTime() * 10, btn.HoverLerp, 1 )
else
btn.HoverLerp = Lerp( FrameTime() * 3, btn.HoverLerp, 0.1)
end
draw.RoundedBox(0, 0, 0, w, h, Color(50,50,50,255*btn.HoverLerp))
draw.SimpleText(v[1], "Trebuchet18", w/2, 2, Color(255,255,255, 255), 1, 0)
end
btn.PaintOver = function(_, w, h)
surface.SetDrawColor(Color(255, 255, 255, 125), 1, 1)
surface.DrawOutlinedRect(0, 0, w, h)
end
btn.DoClick = function()
local wep = LocalPlayer():GetActiveWeapon()
if(wep ~= nil or IsValid(wep)) then
LocalPlayer():EmitSound(Sound("weapons/guitar/squak2.mp3") )
wep:EmitSound( v[2], 100, 100, 1, CHAN_SWEP )
end
net.Start("anterg0_guitarTab")
net.WriteFloat(k)
net.SendToServer()
self:GetParent():Close()
end
end
self:Dock(FILL)
self:DockMargin(0, 0, 0, 10)
end
vgui.Register("anterg0_Guitar:DScroll", PANEL, "DScrollPanel")
end