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/gms_base_weapon.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/gms_base_weapon.lua')
| -rw-r--r-- | ftp_gmstranded/entities/weapons/gms_base_weapon.lua | 275 |
1 files changed, 0 insertions, 275 deletions
diff --git a/ftp_gmstranded/entities/weapons/gms_base_weapon.lua b/ftp_gmstranded/entities/weapons/gms_base_weapon.lua deleted file mode 100644 index ec4124a..0000000 --- a/ftp_gmstranded/entities/weapons/gms_base_weapon.lua +++ /dev/null @@ -1,275 +0,0 @@ - -AddCSLuaFile() - -SWEP.PrintName = "GMS Base Weapon" -SWEP.Author = "Stranded Team" -SWEP.Contact = "" - -SWEP.AutoSwitchTo = false -SWEP.AutoSwitchFrom = false -SWEP.DrawAmmo = false -SWEP.ViewModelFOV = 54 -SWEP.Slot = 0 -SWEP.SlotPos = 1 - -SWEP.Spawnable = false - -SWEP.Primary.Damage = 4 -SWEP.Primary.Delay = 0.7 -SWEP.Primary.ClipSize = -1 -SWEP.Primary.DefaultClip = -1 -SWEP.Primary.Automatic = true -SWEP.Primary.Ammo = "none" - -SWEP.Secondary.ClipSize = -1 -SWEP.Secondary.DefaultClip = -1 -SWEP.Secondary.Automatic = true -SWEP.Secondary.Ammo = "none" - -SWEP.HoldType = "fist" -SWEP.Skin = 0 -SWEP.HitDistance = 75 - -function SWEP:Initialize() - self:SetWeaponHoldType( self.HoldType ) - if ( self.Skin ) then self:SetSkin( self.Skin ) end -end - -function SWEP:SecondaryAttack() -end - -function SWEP:Reload() -end - -function SWEP:PreDrawViewModel( vm ) - if ( self.Skin && IsValid( vm ) ) then vm:SetSkin( self.Skin ) end -end - -function SWEP:Deploy() - self:SendWeaponAnim( ACT_VM_DRAW ) - - self:Idle() - - return true -end - -function SWEP:Holster() - if ( self.Owner.InProcess || ProcessCompleteTime ) then return false end - if ( self.Skin && self.Owner.GetViewModel && IsValid( self.Owner:GetViewModel() ) ) then self.Owner:GetViewModel():SetSkin( 0 ) end - - timer.Destroy( "rb655_idle" .. self:EntIndex() ) - - return true -end - -function SWEP:Equip( newOwner ) - SPropProtection.PlayerMakePropOwner( newOwner, self ) -end - -function SWEP:OnDrop() - timer.Destroy( "rb655_idle" .. self:EntIndex() ) -end - -function SWEP:PrimaryAttack() - - local tr = util.TraceLine( { - start = self.Owner:GetShootPos(), - endpos = self.Owner:GetShootPos() + self.Owner:GetAimVector() * self.HitDistance, - filter = self.Owner, - mask = self.Mask - } ) - - if ( !IsValid( tr.Entity ) && !self.NoTraceFix ) then - tr = util.TraceHull( { - start = self.Owner:GetShootPos(), - endpos = self.Owner:GetShootPos() + self.Owner:GetAimVector() * self.HitDistance, - filter = self.Owner, - mask = self.Mask - } ) - end - - if ( tr.Hit ) then - self:OnHit( tr ) - elseif ( tr.HitWorld ) then - self:PlayHitSound() - end - - self:DoEffects( tr ) - - self:SetNextPrimaryFire( CurTime() + self.Primary.Delay ) - self:SetNextSecondaryFire( CurTime() + self.Primary.Delay ) - -end - -function SWEP:DoImpactEffects( tr ) - if ( !tr.MatType ) then return end - if ( tr.MatType == MAT_GRATE ) then tr.Entity:EmitSound( "physics/metal/metal_chainlink_impact_hard" .. math.random( 1, 3 ) .. ".wav" ) return end - - local vecSrc = tr.StartPos - local vecDirection = tr.Normal - local pPlayer = self.Owner - - if ( pPlayer && pPlayer:IsPlayer() ) then - vecSrc = pPlayer:GetShootPos() - vecDirection = pPlayer:GetAimVector() - else - pPlayer = GetWorldEntity() - end - - local bullet = {} - bullet.Src = vecSrc - bullet.Dir = vecDirection - bullet.Num = 1 - bullet.Damage = 0 - bullet.Force = 0 - bullet.Tracer = 0 - bullet.Callback = function( attacker, tr, dmginfo ) - local doEffects = true - if ( tr.HitPos:Distance( vecSrc ) > self.HitDistance ) then doEffects = false end - if ( tr.HitPos:Distance( vecSrc ) > 96 ) then doEffects = false end - - return { - damage = false, - effects = doEffects - } - end - - pPlayer:FireBullets( bullet ) -end - -function SWEP:DoEffects( tr ) - if ( IsFirstTimePredicted() ) then - self:PlaySwingAnimation( !tr.Hit ) - self:PlaySwingSound() - self.Owner:SetAnimation( PLAYER_ATTACK1 ) - self:DoImpactEffects( tr ) - end -end - -function SWEP:PlaySound( snd ) - if ( CLIENT ) then return end - self.Owner:EmitSound( snd ) -end - -function SWEP:PlaySwingAnimation( missed ) - timer.Destroy( "rb655_idle" .. self:EntIndex() ) - self:DoAnimation( missed ) - self:Idle() -end - -function SWEP:DoAnimation( missed ) - if ( missed ) then self:SendWeaponAnim( ACT_VM_MISSCENTER ) return end - self:SendWeaponAnim( ACT_VM_HITCENTER ) -end - -function SWEP:OnHit( tr ) - local ent = tr.Entity - if ( !IsValid( ent ) ) then self:PlayHitSound() return end - if ( CLIENT ) then return end - - if ( ent:Health() > 0 ) then - if ( ent:IsNPC() || ( ent:IsPlayer() && GetConVarNumber( "gms_PVPDamage" ) > 0 ) ) then ent:TakeDamage( self.Primary.Damage, self.Owner, self ) end - self:PlayHitSound() - else - self:DoToolHit( ent ) - end -end - -function SWEP:DoToolHit( ent ) - if ( ent:IsTreeModel() ) then - self.Owner:DoProcess( "WoodCutting", 3, { - Entity = ent, - Chance = 33, - MinAmount = 1, - MaxAmount = 3 - } ) - elseif ( ent:IsRockModel() ) then - self.Owner:DoProcess( "Mining", 3, { - Entity = ent, - Chance = 33, - MinAmount = 1, - MaxAmount = 2 - } ) - else - self:PlayHitSound() - end -end - -function SWEP:PlaySwingSound() - self:PlaySound( "weapons/slam/throw.wav" ) -end - -function SWEP:PlayHitSound() - self:PlaySound( "Flesh.ImpactHard" ) -end - -function SWEP:DoIdleAnimation() - self:SendWeaponAnim( ACT_VM_IDLE ) -end - ---------------------- IDLE ANIMS --------------------- - -function SWEP:DoIdle() - self:DoIdleAnimation() - timer.Adjust( "rb655_idle" .. self:EntIndex(), self:GetAnimationTime(), 0, function() - if ( !IsValid( self ) ) then timer.Destroy( "rb655_idle" .. self:EntIndex() ) return end - self:DoIdleAnimation() - end ) -end - -function SWEP:GetAnimationTime() - local time = self:SequenceDuration() - if ( time == 0 ) then time = self.Owner:GetViewModel():SequenceDuration() end - return time -end - -function SWEP:Idle() - if ( CLIENT ) then return end - timer.Create( "rb655_idle" .. self:EntIndex(), self:GetAnimationTime(), 1, function() - if ( !IsValid( self ) ) then return end - self:DoIdle() - end ) -end - -if ( SERVER ) then return end - -SWEP.FixWorldModel = false -SWEP.FixWorldModelPos = Vector( 0, 0, 0 ) -SWEP.FixWorldModelAng = Angle( 0, 0, 0 ) -SWEP.FixWorldModelScale = 1 - -function SWEP:RevertModel() - self:SetRenderOrigin( self:GetNetworkOrigin() ) - self:SetRenderAngles( self:GetNetworkAngles() ) -end - -function SWEP:DoFixWorldModel() - if ( !self.FixWorldModel ) then return end - if ( !IsValid( self.Owner ) ) then self:RevertModel() return end - - local bone = self.Owner:LookupBone( "ValveBiped.Bip01_R_Hand" ) - if ( !bone ) then self:RevertModel() return end - - local pos, ang = self.Owner:GetBonePosition( bone ) - ang:RotateAroundAxis( ang:Forward(), 180 ) - - ang:RotateAroundAxis( ang:Forward(), self.FixWorldModelAng.p ) - ang:RotateAroundAxis( ang:Right(), self.FixWorldModelAng.y ) - ang:RotateAroundAxis( ang:Up(), self.FixWorldModelAng.r ) - - pos = pos + ang:Forward() * self.FixWorldModelPos.x + ang:Right() * self.FixWorldModelPos.y + ang:Up() * self.FixWorldModelPos.z - - self:SetModelScale( self.FixWorldModelScale, 0 ) - - self:SetRenderOrigin( pos ) - self:SetRenderAngles( ang ) -end - -function SWEP:DrawWorldModel() - self:DoFixWorldModel() - self:DrawModel() -end - -function SWEP:DrawWorldModelTranslucent() - self:DrawWorldModel() -end |
