Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. function SWEP:PrimaryAttack()
  2.  
  3.  
  4. local spos = self.Owner:GetShootPos()
  5. local sdest = spos + (self.Owner:GetAimVector() * 70)
  6.  
  7. local kmins = Vector(1,1,1) * -10
  8. local kmaxs = Vector(1,1,1) * 10
  9.  
  10. local tr = util.TraceHull({start=spos, endpos=sdest, filter=self.Owner, mask=MASK_SHOT_HULL, mins=kmins, maxs=kmaxs})
  11.  
  12. -- Hull might hit environment stuff that line does not hit
  13. if not IsValid(tr.Entity) then
  14. tr = util.TraceLine({start=spos, endpos=sdest, filter=self.Owner, mask=MASK_SHOT_HULL})
  15. end
  16.  
  17. local hitEnt = tr.Entity
  18.  
  19. -- effects
  20. if IsValid(hitEnt) then
  21. self.Weapon:SendWeaponAnim( ACT_VM_HITCENTER )
  22.  
  23.  
  24. local edata = EffectData()
  25. edata:SetStart(spos)
  26. edata:SetOrigin(tr.HitPos)
  27. edata:SetNormal(tr.Normal)
  28. edata:SetEntity(hitEnt)
  29.  
  30. if hitEnt:IsPlayer() or hitEnt:GetClass() == "prop_ragdoll" then
  31. util.Effect("BloodImpact", edata)
  32. end
  33.  
  34. if hitEnt:GetClass()=="tree" then
  35. net.Start("HasHitMiningTree")
  36. net.WriteVector(hitEnt:GetPos())
  37. net.SendToServer()
  38. end
  39.  
  40. else
  41. self.Weapon:SendWeaponAnim( ACT_VM_MISSCENTER )
  42. end
  43.  
  44. if SERVER then
  45. self.Owner:SetAnimation( PLAYER_ATTACK1 )
  46. end
  47. self.Weapon:SetNextPrimaryFire(CurTime() + .43)
  48.  
  49. local trace = self.Owner:GetEyeTrace()
  50.  
  51. if trace.HitPos:Distance(self.Owner:GetShootPos()) <= 75 then
  52.  
  53. bullet = {}
  54. bullet.Num = 1
  55. bullet.Src = self.Owner:GetShootPos()
  56. bullet.Dir = self.Owner:GetAimVector()
  57. bullet.Spread = Vector(0, 0, 0)
  58. bullet.Tracer = 0
  59. bullet.Force = 0
  60. bullet.Damage = 0
  61. self.Owner:DoAttackEvent()
  62. self.Owner:FireBullets(bullet)
  63. self.Weapon:EmitSound("Weapon_Crowbar.Melee_Hit")
  64. else
  65. self.Weapon:EmitSound("Zombie.AttackMiss")
  66.  
  67. self.Owner:DoAttackEvent()
  68. end
  69.  
  70. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement