Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function SWEP:PrimaryAttack()
- if ( !self:CanPrimaryAttack() ) then return end
- if ( !SERVER ) then return end
- local tr = util.TraceLine( {
- start = self.Owner:GetShootPos(),
- endpos = self.Owner:GetShootPos() + self.Owner:GetAimVector() * 99999999,
- filter = self.Owner
- } )
- local ent = tr.Entity
- if ( IsValid( ent ) && ( ent:IsPlayer() or ent:IsNPC() ) ) then
- self.HealAmount = math.random(30,100)
- if self.Owner:KeyDown(IN_USE) then
- if ent:Health() <= 1 then
- return false
- else
- self.Owner:EmitSound( self.Primary.Sound )
- self.Owner:EmitSound( self.Secondary.Sound )
- ent:SetHealth( ent:Health() - self.HurtAmount )
- self.Weapon:SetNextPrimaryFire( CurTime() + self.Primary.Delay )
- self.Weapon:SetNextSecondaryFire( CurTime() + self.Primary.Delay )
- self:SendWeaponAnim( ACT_VM_PRIMARYATTACK )
- self.Owner:SetAnimation( PLAYER_ATTACK1 )
- if ent:Health() <= 1 then ent:SetHealth( self.MinAmount ) end
- end
- else
- self.Owner:EmitSound( self.Primary.Sound )
- self.Owner:EmitSound( self.Secondary.Sound )
- ent:SetHealth( math.min( ent:GetMaxHealth(), ent:Health() + self.HealAmount ) )
- self.Weapon:SetNextPrimaryFire( CurTime() + self.Primary.Delay )
- self.Weapon:SetNextSecondaryFire( CurTime() + self.Primary.Delay )
- self:SendWeaponAnim( ACT_VM_PRIMARYATTACK )
- self.Owner:SetAnimation( PLAYER_ATTACK1 )
- end
- timer.Simple( self:SequenceDuration(), function() if ( !IsValid( self ) ) then return end self:SendWeaponAnim( ACT_VM_IDLE ) end )
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement