diff options
| author | Scott <scotth0828@gmail.com> | 2016-05-21 17:43:47 -0400 |
|---|---|---|
| committer | Scott <scotth0828@gmail.com> | 2016-05-21 17:43:47 -0400 |
| commit | 10ed1a54523fdd5bcddfbccf44dd9c0a15ab8357 (patch) | |
| tree | dc40b8a399afea729a78fef6e3a92e7a41873b3d /ftp_gmstranded/entities/weapons/bobs_shotty_base/shared.lua | |
| parent | d73e78d8d98da223410f51f390549336554eb54d (diff) | |
| download | gmstranded-10ed1a54523fdd5bcddfbccf44dd9c0a15ab8357.tar.gz gmstranded-10ed1a54523fdd5bcddfbccf44dd9c0a15ab8357.tar.bz2 gmstranded-10ed1a54523fdd5bcddfbccf44dd9c0a15ab8357.zip | |
Fixed removing plants bug
Diffstat (limited to 'ftp_gmstranded/entities/weapons/bobs_shotty_base/shared.lua')
| -rw-r--r-- | ftp_gmstranded/entities/weapons/bobs_shotty_base/shared.lua | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/ftp_gmstranded/entities/weapons/bobs_shotty_base/shared.lua b/ftp_gmstranded/entities/weapons/bobs_shotty_base/shared.lua deleted file mode 100644 index dcfb499..0000000 --- a/ftp_gmstranded/entities/weapons/bobs_shotty_base/shared.lua +++ /dev/null @@ -1,192 +0,0 @@ -// Variables that are used on both client and server --- Major thanks to rm-rf / for thinking up a solution to the reload glitch. Good man! - -SWEP.Category = "" -SWEP.Author = "Generic Default, Worshipper, Clavus, and Bob" -SWEP.Contact = "" -SWEP.Purpose = "" -SWEP.Instructions = "" -SWEP.Base = "bobs_gun_base" -SWEP.MuzzleAttachment = "1" // Should be "1" for CSS models or "muzzle" for hl2 models -SWEP.ShellEjectAttachment = "2" // Should be "2" for CSS models or "1" for hl2 models -SWEP.DrawCrosshair = true // Hell no, crosshairs r 4 nubz! -SWEP.ViewModelFOV = 65 // How big the gun will look -SWEP.ViewModelFlip = true // True for CSS models, False for HL2 models - -SWEP.Spawnable = false -SWEP.AdminSpawnable = false - -SWEP.Primary.Sound = Sound("") // Sound of the gun -SWEP.Primary.RPM = 0 // This is in Rounds Per Minute -SWEP.Primary.ClipSize = 0 // Size of a clip -SWEP.Primary.DefaultClip = 0 // Default number of bullets in a clip -SWEP.Primary.KickUp = 0 // Maximum up recoil (rise) -SWEP.Primary.KickDown = 0 // Maximum down recoil (skeet) -SWEP.Primary.KickHorizontal = 0 // Maximum side recoil (koolaid) -SWEP.Primary.Automatic = true // Automatic/Semi Auto -SWEP.Primary.Ammo = "none" // What kind of ammo -SWEP.Primary.Reloading = false // Reloading func - --- SWEP.Secondary.ClipSize = 0 // Size of a clip --- SWEP.Secondary.DefaultClip = 0 // Default number of bullets in a clip --- SWEP.Secondary.Automatic = false // Automatic/Semi Auto -SWEP.Secondary.Ammo = "" -SWEP.Secondary.IronFOV = 0 // How much you 'zoom' in. Less is more! - -SWEP.data = {} -- The starting firemode -SWEP.data.ironsights = 1 - -SWEP.IronSightsPos = Vector (2.4537, 1.0923, 0.2696) -SWEP.IronSightsAng = Vector (0.0186, -0.0547, 0) - -SWEP.ShotgunReloading = false -SWEP.ShotgunFinish = 0.5 -SWEP.ShellTime = 0.35 -SWEP.InsertingShell = false - -SWEP.NextReload = 0 - -/*--------------------------------------------------------- - Name: SWEP:Think() - Desc: Called every frame. ----------------------------------------------------------*/ -function SWEP:Think() - if not IsValid(self) then return end - if not IsValid(self.Owner) then return end - if not self.Owner:IsPlayer() then return end - if self.Owner.NextReload == nil then self.Owner.NextReload = CurTime() + 1 end - local timerName = "ShotgunReload_" .. self.Owner:UniqueID() - --if the owner presses shoot while the timer is in effect, then... - if (self.Owner:KeyPressed(IN_ATTACK)) and (self.Weapon:GetNextPrimaryFire() <= CurTime()) and (timer.Exists(timerName)) and not (self.Owner:KeyDown(IN_SPEED)) then - if self:CanPrimaryAttack() then --well first, if we actually can attack, then... - - timer.Destroy(timerName) -- kill the timer, and - self:PrimaryAttack()-- ATTAAAAACK! - - end - end - - if self.InsertingShell == true and self.Owner:Alive() then - vm = self.Owner:GetViewModel()-- its a messy way to do it, but holy shit, it works! - vm:ResetSequence(vm:LookupSequence("after_reload")) -- Fuck you, garry, why the hell can't I reset a sequence in multiplayer? - vm:SetPlaybackRate(.01) -- or if I can, why does facepunch have to be such a shitty community, and your wiki have to be an unreadable goddamn mess? - self.InsertingShell = false -- You get paid for this, what's your excuse? - end - - self:IronSight() - -end - -/*--------------------------------------------------------- - Name: SWEP:Deploy() - Desc: Whip it out. ----------------------------------------------------------*/ -function SWEP:Deploy() - if not IsValid(self) then return end - if not IsValid(self.Owner) then return end - if not self.Owner:IsPlayer() then return end - - self:SetHoldType(self.HoldType) - - local timerName = "ShotgunReload_" .. self.Owner:UniqueID() - if (timer.Exists(timerName)) then - timer.Destroy(timerName) - end - - self.Weapon:SendWeaponAnim(ACT_VM_DRAW) - - self.Weapon:SetNextPrimaryFire(CurTime() + .25) - self.Weapon:SetNextSecondaryFire(CurTime() + .25) - self.ActionDelay = (CurTime() + .25) - - if (SERVER) then - self:SetIronsights(false) - end - - self.Owner.NextReload = CurTime() + 1 - - return true -end - -/*--------------------------------------------------------- - Name: SWEP:Reload() - Desc: Reload is being pressed. ----------------------------------------------------------*/ -function SWEP:Reload() - - if not IsValid(self) then return end - if not IsValid(self.Owner) then return end - if not self.Owner:IsPlayer() then return end - - local maxcap = self.Primary.ClipSize - local spaceavail = self.Weapon:Clip1() - local shellz = (maxcap) - (spaceavail) + 1 - - if (timer.Exists("ShotgunReload_" .. self.Owner:UniqueID())) or self.Owner.NextReload > CurTime() or maxcap == spaceavail then return end - - if self.Owner:IsPlayer() then - - if self.Weapon:GetNextPrimaryFire() <= (CurTime()+2) then - self.Weapon:SetNextPrimaryFire(CurTime() + 2) -- wait TWO seconds before you can shoot again - end - self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_START) -- sending start reload anim - self.Owner:SetAnimation( PLAYER_RELOAD ) - - self.Owner.NextReload = CurTime() + 1 - - if (SERVER) then - self.Owner:SetFOV( 0, 0.15 ) - self:SetIronsights(false) - end - - if SERVER and self.Owner:Alive() then - local timerName = "ShotgunReload_" .. self.Owner:UniqueID() - timer.Create(timerName, - (self.ShellTime + .05), - shellz, - function() if not IsValid(self) then return end - if IsValid(self.Owner) and IsValid(self.Weapon) then - if self.Owner:Alive() then - self:InsertShell() - end - end end) - end - - elseif self.Owner:IsNPC() then - self.Weapon:DefaultReload(ACT_VM_RELOAD) - end - -end - -function SWEP:InsertShell() - - if not IsValid(self) then return end - if not IsValid(self.Owner) then return end - if not self.Owner:IsPlayer() then return end - - local timerName = "ShotgunReload_" .. self.Owner:UniqueID() - if self.Owner:Alive() then - local curwep = self.Owner:GetActiveWeapon() - if curwep:GetClass() != self.Gun then - timer.Destroy(timerName) - return end - - if (self.Weapon:Clip1() >= self.Primary.ClipSize or self.Owner:GetAmmoCount(self.Primary.Ammo) <= 0) then - -- if clip is full or ammo is out, then... - self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_FINISH) -- send the pump anim - timer.Destroy(timerName) -- kill the timer - elseif (self.Weapon:Clip1() <= self.Primary.ClipSize and self.Owner:GetAmmoCount(self.Primary.Ammo) >= 0) then - self.InsertingShell = true --well, I tried! - timer.Simple( .05, function() self:ShellAnimCaller() end) - self.Owner:RemoveAmmo(1, self.Primary.Ammo, false) -- out of the frying pan - self.Weapon:SetClip1(self.Weapon:Clip1() + 1) -- into the fire - end - else - timer.Destroy(timerName) -- kill the timer - end - -end - -function SWEP:ShellAnimCaller() - self.Weapon:SendWeaponAnim(ACT_VM_RELOAD) -end |
