CapsAdmin

Untitled

Mar 8th, 2013
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.84 KB | None | 0 0
  1. local bit=bit
  2. if not bit then error"You need http://luaforge.net/projects/bit/ OR https://dl.dropbox.com/u/1910689/gmod/bit.lua for Garry's Mod 12!" end
  3.  
  4. if SERVER then AddCSLuaFile"shared.lua" end
  5.  
  6. SWEP.PrintName = "#HL2_Crowbar"
  7.  
  8. SWEP.Slot = 0
  9. SWEP.SlotPos = 0
  10.  
  11. SWEP.DrawWeaponInfoBox=false
  12. SWEP.ViewModel = "models/weapons/v_crowbar.mdl"
  13. SWEP.WorldModel = "models/weapons/w_crowbar.mdl"
  14. SWEP.ViewModelFOV=54
  15.  
  16. SWEP.Primary.ClipSize = -1
  17. SWEP.Primary.DefaultClip = -1
  18. SWEP.Primary.Automatic = true
  19. SWEP.Primary.Ammo = "none"
  20.  
  21. SWEP.Secondary.ClipSize = -1
  22. SWEP.Secondary.DefaultClip = -1
  23. SWEP.Secondary.Automatic = false
  24. SWEP.Secondary.Ammo = "none"
  25.  
  26. SWEP.SwingSound = "Weapon_Crowbar.Single"
  27. SWEP.HitSound = "Weapon_Crowbar.Melee_Hit"
  28.  
  29. SWEP.HoldType="melee"
  30.  
  31. SWEP.Delay=0.4
  32. SWEP.Range=75
  33. SWEP.Damage=25
  34.  
  35. function SWEP:Initialize()
  36.  
  37.     if ( SERVER ) then
  38.         self:SetNPCMinBurst( 0 )
  39.         self:SetNPCMaxBurst( 0 )
  40.         self:SetNPCFireRate( self.Primary.Delay )
  41.     end
  42.  
  43.     self:SetWeaponHoldType( self.HoldType )
  44.  
  45. end
  46.  
  47. function SWEP:PrimaryAttack()
  48.  
  49.     self:SetNextPrimaryFire(CurTime() + self.Delay)
  50.     self.Owner:SetAnimation(PLAYER_ATTACK1)
  51.     local tracedata = {}
  52.     tracedata.start = self.Owner:EyePos()
  53.     tracedata.endpos = self.Owner:EyePos()+(self.Owner:GetAimVector()*self.Range)
  54.     tracedata.filter = {self.Owner}
  55.     local trace = util.TraceLine(tracedata) --I should be using hull traces here.
  56.     if(trace.Hit)then
  57.         self:SendWeaponAnim(ACT_VM_HITCENTER)
  58.         self:EmitSound(self.HitSound)
  59.         if((not trace.HitWorld) and SERVER)then
  60.             local Dmg = DamageInfo()
  61.             Dmg:SetAttacker(self.Owner)
  62.             Dmg:SetInflictor(self)
  63.             Dmg:SetDamage(self.Damage)
  64.             Dmg:SetDamageForce(self.Owner:EyeAngles():Forward()*(self.Damage*700))
  65.             Dmg:SetDamagePosition(trace.HitPos)
  66.             Dmg:SetDamageType(DMG_SLASH)
  67.             trace.Entity:TakeDamageInfo(Dmg)
  68.             if(IsValid(trace.Entity:GetPhysicsObject()))then
  69.                 trace.Entity:SetPhysicsAttacker(self.Owner)
  70.             end
  71.         end
  72.         if(trace.MatType!=MAT_GRATE)then
  73.             local B = {} --bullets should be clientside. oh well.
  74.             B.Num=1
  75.             B.Src=self.Owner:EyePos()
  76.             B.Dir=self.Owner:GetAimVector()
  77.             B.Spread=Vector(0,0,0)
  78.             B.Tracer=0
  79.             B.Force=0
  80.             B.Damage=0
  81.             B.Callback=function() return {damage=false} end
  82.             self.Owner:FireBullets(B)
  83.         end
  84.     else
  85.         self:SendWeaponAnim(ACT_VM_MISSCENTER)
  86.         self:EmitSound(self.SwingSound)
  87.     end    
  88. end
  89.  
  90. function SWEP:SecondaryAttack()
  91.     return false
  92. end
  93.  
  94. function SWEP:DrawWeaponSelection(x,y,w,t,a)
  95.     draw.SimpleText("c","TitleFont2",x+w/2,y,Color(255,255,255,a),TEXT_ALIGN_CENTER)
  96. end
  97. ---------------------------------------------------------*/
  98. function SWEP:DrawWeaponSelection( x, y, wide, tall, alpha )
  99.  
  100.  
  101.     surface.SetDrawColor( color_transparent )
  102.     surface.SetTextColor( 255, 220, 0, alpha )
  103.     surface.SetFont( "TitleFont2" )
  104.     local w, h = surface.GetTextSize( "c" )
  105.  
  106.     surface.SetTextPos( x + ( wide / 2 ) - ( w / 2 ),
  107.                         y + ( tall / 2 ) - ( h / 2 ) )
  108.     surface.DrawText( "c" )
  109.  
  110. end
  111.  
  112. function SWEP:GetCapabilities()
  113.  
  114.     return bit.bor(CAP_WEAPON_MELEE_ATTACK1 , CAP_INNATE_MELEE_ATTACK1)
  115.  
  116. end
  117. function SWEP:SetupWeaponHoldTypeForAI( t )
  118.  
  119.     self.ActivityTranslateAI = {}
  120.     self.ActivityTranslateAI [ ACT_STAND ]                      = ACT_IDLE_MELEE
  121.     self.ActivityTranslateAI [ ACT_IDLE_ANGRY ]                 = ACT_IDLE_ANGRY_MELEE
  122.  
  123.     self.ActivityTranslateAI [ ACT_MP_RUN ]                     = ACT_HL2MP_RUN_MELEE
  124.     self.ActivityTranslateAI [ ACT_MP_CROUCHWALK ]              = ACT_HL2MP_WALK_CROUCH_MELEE
  125.  
  126.     self.ActivityTranslateAI [ ACT_MELEE_ATTACK1 ]              = ACT_MELEE_ATTACK1
  127.  
  128.     self.ActivityTranslateAI [ ACT_RELOAD ]                     = ACT_RELOAD
  129.  
  130. end
Advertisement
Add Comment
Please, Sign In to add comment