• TTT Silenced Sniper
    8 replies, posted
So I've made this TTT Silenced Sniper basing on other SWEP, although, while weapon works, it allows you to have two weapons on third slot. Dunno really what's the problem, so maybe you guys could help me out? [code]if SERVER then AddCSLuaFile( "shared.lua" ) resource.AddFile("materials/VGUI/ttt/icon_snajperka.png") end SWEP.HoldType = "ar2" if CLIENT then SWEP.PrintName = "Silenced Sniper" SWEP.Slot = 2 SWEP.Icon = "VGUI/ttt/icon_g3sg1" SWEP.EquipMenuData = { type = "item_weapon", desc = [[A silenced sniper. Because what's better than killing someone and getting away with it?]] }; end SWEP.Base = "weapon_tttbase" SWEP.Kind = WEAPON_HEAVY SWEP.WeaponID = AMMO_RIFLE SWEP.Primary.Delay = 2 SWEP.Primary.Recoil = 4 SWEP.Primary.Automatic = false SWEP.Primary.Ammo = "snajperka" SWEP.Primary.Damage = 80 SWEP.Primary.Cone = 0.006 SWEP.Primary.ClipSize = 3 SWEP.Primary.ClipMax = 3 -- keep mirrored to ammo SWEP.Primary.DefaultClip = 3 SWEP.HeadshotMultiplier = 5 SWEP.LimitedStock = true SWEP.IsSilent = true SWEP.AllowDrop = true SWEP.AutoSpawnable = false SWEP.Kind = WEAPON_EQUIP SWEP.CanBuy = {ROLE_TRAITOR} SWEP.ViewModel = "models/weapons/v_snip_g3sg1.mdl" SWEP.WorldModel = "models/weapons/w_snip_g3sg1.mdl" SWEP.Icon = "VGUI/ttt/icon_snajperka" SWEP.Primary.Sound = Sound ("Weapon_M4A1.Silenced") SWEP.Secondary.Sound = Sound("Default.Zoom") SWEP.IronSightsPos = Vector( 5, -15, -2 ) SWEP.IronSightsAng = Vector( 2.6, 1.37, 3.5 ) function SWEP:SetZoom(state) if CLIENT then return else if state then self.Owner:SetFOV(20, 0.3) else self.Owner:SetFOV(0, 0.2) end end end -- Add some zoom to ironsights for this gun function SWEP:SecondaryAttack() if not self.IronSightsPos then return end if self.Weapon:GetNextSecondaryFire() > CurTime() then return end bIronsights = not self:GetIronsights() self:SetIronsights( bIronsights ) if SERVER then self:SetZoom(bIronsights) else self:EmitSound(self.Secondary.Sound) end self.Weapon:SetNextSecondaryFire( CurTime() + 0.3) end function SWEP:PreDrop() self:SetZoom(false) self:SetIronsights(false) return self.BaseClass.PreDrop(self) end function SWEP:Reload() self.Weapon:DefaultReload( ACT_VM_RELOAD ); self:SetIronsights( false ) self:SetZoom(false) end function SWEP:Holster() self:SetIronsights(false) self:SetZoom(false) return true end if CLIENT then local scope = surface.GetTextureID("sprites/scope") function SWEP:DrawHUD() if self:GetIronsights() then surface.SetDrawColor( 0, 0, 0, 255 ) local x = ScrW() / 2.0 local y = ScrH() / 2.0 local scope_size = ScrH() -- crosshair local gap = 80 local length = scope_size surface.DrawLine( x - length, y, x - gap, y ) surface.DrawLine( x + length, y, x + gap, y ) surface.DrawLine( x, y - length, x, y - gap ) surface.DrawLine( x, y + length, x, y + gap ) gap = 0 length = 50 surface.DrawLine( x - length, y, x - gap, y ) surface.DrawLine( x + length, y, x + gap, y ) surface.DrawLine( x, y - length, x, y - gap ) surface.DrawLine( x, y + length, x, y + gap ) -- cover edges local sh = scope_size / 2 local w = (x - sh) + 2 surface.DrawRect(0, 0, w, scope_size) surface.DrawRect(x + sh - 2, 0, w, scope_size) surface.SetDrawColor(255, 0, 0, 255) surface.DrawLine(x, y, x + 1, y + 1) -- scope surface.SetTexture(scope) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRectRotated(x, y, scope_size, scope_size, 0) else return self.BaseClass.DrawHUD(self) end end function SWEP:AdjustMouseSensitivity() return (self:GetIronsights() and 0.2) or nil end end[/code]
Make it for Slot 7 or 8 like all Traitor weapons are supposed to be, preferably slot 7. The gamemode allows you to have 2 weapons in slot 3 because when you buy the weapon from the Traitor store, it equips the gun right away, which results in you having 2 guns in your third slot, because you have the slot in the traitor weapon set as slot 3.
In your code you have set SWEP.Kind twice, once on line 23 and again on line 39.
[QUOTE=smithy285;41952617]In your code you have set SWEP.Kind twice, once on line 23 and again on line 39.[/QUOTE] I would suggest he cleans up his code before asking any more questions. You can see he has a duplicate of declaring the icon too.
[QUOTE=brandonj4;41952586]Make it for Slot 7 or 8 like all Traitor weapons are supposed to be, preferably slot 7. The gamemode allows you to have 2 weapons in slot 3 because when you buy the weapon from the Traitor store, it equips the gun right away, which results in you having 2 guns in your third slot, because you have the slot in the traitor weapon set as slot 3.[/QUOTE] I've created a Slot 3 Traitor Weapon, but it doesn't do that.
[QUOTE=Humility;41955538]I've created a Slot 3 Traitor Weapon, but it doesn't do that.[/QUOTE] Just tried it with the silenced pistol set to slot 3. Yes it does. I wouldn't do this either way because it conflicts with other weapons that are slot 3 that you can automatically pick up. If you still want to have your weapon in slot 3, change SWEP.Kind to equal "WEAPON_HEAVY".
[QUOTE=brandonj4;41955640]Just tried it with the silenced pistol set to slot 3. Yes it does. I wouldn't do this either way because it conflicts with other weapons that are slot 3 that you can automatically pick up. If you still want to have your weapon in slot 3, change SWEP.Kind to equal "WEAPON_HEAVY".[/QUOTE] Hmm, never did that with mine
Changed to WEAPON_EQUIP but still does the sae.
hey i made one of these and it used to do that. but this is my code and it works like intended now [code]if SERVER then AddCSLuaFile( "shared.lua" ) resource.AddFile("materials/vgui/ttt/icon_herottt_sirifle2.vmt"); resource.AddFile("materials/vgui/ttt/icon_herottt_sirifle2.vtf"); end SWEP.HoldType = "ar2" if CLIENT then SWEP.PrintName = "Silenced Rifle" SWEP.Slot = 2 SWEP.EquipMenuData = { type = "item_weapon", desc = "Low body damage, 10x headshot multiplier" }; SWEP.Icon = "vgui/ttt/icon_herottt_sirifle2" end SWEP.Base = "weapon_tttbase" SWEP.Kind = WEAPON_HEAVY SWEP.CanBuy = {ROLE_TRAITOR} SWEP.Primary.Delay = 1.5 SWEP.Primary.Recoil = 7 SWEP.Primary.Automatic = true SWEP.Primary.Ammo = "357" SWEP.Primary.Damage = 35 SWEP.Primary.Cone = 0.005 SWEP.Primary.ClipSize = 6 SWEP.Primary.ClipMax = 12 -- keep mirrored to ammo SWEP.Primary.DefaultClip = 6 SWEP.HeadshotMultiplier = 10 SWEP.AmmoEnt = "item_ammo_357_ttt" SWEP.IsSilent = true SWEP.UseHands = true SWEP.ViewModelFlip = false SWEP.ViewModelFOV = 54 SWEP.ViewModel = Model("models/weapons/cstrike/c_snip_scout.mdl") SWEP.WorldModel = Model("models/weapons/w_snip_scout.mdl") SWEP.Primary.Sound = Sound("weapons/usp/usp1.wav") SWEP.Primary.SoundLevel = 50 SWEP.Secondary.Sound = Sound("Default.Zoom") SWEP.IronSightsPos = Vector( 5, -15, -2 ) SWEP.IronSightsAng = Vector( 2.6, 1.37, 3.5 ) function SWEP:SetZoom(state) if CLIENT then return elseif IsValid(self.Owner) and self.Owner:IsPlayer() then if state then self.Owner:SetFOV(20, 0.3) else self.Owner:SetFOV(0, 0.2) end end end -- Add some zoom to ironsights for this gun function SWEP:SecondaryAttack() if not self.IronSightsPos then return end if self.Weapon:GetNextSecondaryFire() > CurTime() then return end bIronsights = not self:GetIronsights() self:SetIronsights( bIronsights ) if SERVER then self:SetZoom(bIronsights) else self:EmitSound(self.Secondary.Sound) end self.Weapon:SetNextSecondaryFire( CurTime() + 0.3) end function SWEP:PreDrop() self:SetZoom(false) self:SetIronsights(false) return self.BaseClass.PreDrop(self) end function SWEP:Reload() self.Weapon:DefaultReload( ACT_VM_RELOAD ); self:SetIronsights( false ) self:SetZoom(false) end function SWEP:Holster() self:SetIronsights(false) self:SetZoom(false) return true end if CLIENT then local scope = surface.GetTextureID("sprites/scope") function SWEP:DrawHUD() if self:GetIronsights() then surface.SetDrawColor( 0, 0, 0, 255 ) local x = ScrW() / 2.0 local y = ScrH() / 2.0 local scope_size = ScrH() -- crosshair local gap = 80 local length = scope_size surface.DrawLine( x - length, y, x - gap, y ) surface.DrawLine( x + length, y, x + gap, y ) surface.DrawLine( x, y - length, x, y - gap ) surface.DrawLine( x, y + length, x, y + gap ) gap = 0 length = 50 surface.DrawLine( x - length, y, x - gap, y ) surface.DrawLine( x + length, y, x + gap, y ) surface.DrawLine( x, y - length, x, y - gap ) surface.DrawLine( x, y + length, x, y + gap ) -- cover edges local sh = scope_size / 2 local w = (x - sh) + 2 surface.DrawRect(0, 0, w, scope_size) surface.DrawRect(x + sh - 2, 0, w, scope_size) surface.SetDrawColor(255, 0, 0, 255) surface.DrawLine(x, y, x + 1, y + 1) -- scope surface.SetTexture(scope) surface.SetDrawColor(255, 255, 255, 255) surface.DrawTexturedRectRotated(x, y, scope_size, scope_size, 0) else return self.BaseClass.DrawHUD(self) end end function SWEP:AdjustMouseSensitivity() return (self:GetIronsights() and 0.2) or nil end end [/code] edit the icons of course for you personally and make any adjustments :D
Sorry, you need to Log In to post a reply to this thread.