Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function GM:ScalePlayerDamage( ply, hitgroup, dmginfo )
  2.  
  3. if( ply:IsEFlagSet( EFL_NOCLIP_ACTIVE ) or ply:Team() == TEAM_UNASSIGNED ) then
  4.  
  5. dmginfo:ScaleDamage( 0 );
  6. return;
  7.  
  8. end
  9.  
  10. if( hitgroup == HITGROUP_HEAD ) then
  11.  
  12. dmginfo:ScaleDamage( 2 );
  13.  
  14. end
  15.  
  16. if( hitgroup == HITGROUP_LEFTARM or
  17. hitgroup == HITGROUP_RIGHTARM or
  18. hitgroup == HITGROUP_LEFTLEG or
  19. hitgroup == HITGROUP_RIGHTLEG or
  20. hitgroup == HITGROUP_GEAR ) then
  21.  
  22. dmginfo:ScaleDamage( 0.5 );
  23.  
  24. end
  25.  
  26. if( hitgroup == HITGROUP_LEFTLEG or
  27. hitgroup == HITGROUP_RIGHTLEG ) then
  28.  
  29. if( bit.band( dmginfo:GetDamageType(), DMG_BULLET ) == DMG_BULLET ) then
  30.  
  31. local b = 15 - ( ply:Toughness() / 100 * 15 );
  32. b = b + ( ply:Hunger() / 100 ) * 10;
  33.  
  34. if( CurTime() - ply:LastLegShot() >= b + 5 ) then
  35.  
  36. ply:EmitSound( "Flesh.Break" );
  37.  
  38. end
  39.  
  40. ply:SetLastLegShot( CurTime() );
  41.  
  42. end
  43.  
  44. end
  45.  
  46. local nDmgScale = 1
  47.  
  48. for k,v in next, ply:GetEquippedItems() do
  49.  
  50. local metaitem = GAMEMODE:GetItemByID( v );
  51.  
  52. if( metaitem ) then
  53.  
  54. if( metaitem.ArmorValues ) then
  55.  
  56. for m,n in next, metaitem.ArmorValues do
  57.  
  58. if( bit.band( dmginfo:GetDamageType(), m ) == m ) then
  59.  
  60. nDmgScale = nDmgScale * n;
  61.  
  62. end
  63.  
  64. end
  65.  
  66. end
  67.  
  68. end
  69.  
  70. end
  71.  
  72. if( nDmgScale ) then
  73.  
  74. dmginfo:ScaleDamage( nDmgScale );
  75.  
  76. end
  77.  
  78. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement