Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. Convars.SetValue( "rm_destroy_empty_weapon", 0 );
  2.  
  3. nextRefillTick1 <- {};
  4. nextRefillTick2 <- {};
  5. lastClip1 <- {};
  6. lastClip2 <- {};
  7.  
  8. timeBetweenRefill1 <- 0.1;
  9. timeBetweenRefill2 <- 5;
  10. timeBetweenInverse1 <- 75;
  11. timeBetweenInverse2 <- 5;
  12. timeAfterShoot1 <- 5;
  13. timeAfterShoot2 <- 10;
  14. singleClipPenalty <- 0.55;
  15. noClipPenalty <- 4;
  16.  
  17. regenInterval <- {
  18. asw_weapon_mines=250
  19. asw_weapon_electrified_armor=150
  20. asw_weapon_freeze_grenades=250
  21. asw_weapon_grenades=200
  22. asw_weapon_laser_mines=480
  23. asw_weapon_tesla_trap=120
  24. asw_weapon_hornet_barrage=120
  25. asw_weapon_medkit=40
  26. asw_weapon_heal_grenade=450
  27. asw_weapon_gas_grenades=600
  28. asw_weapon_stim=150
  29. asw_weapon_buff_grenade=200
  30. asw_weapon_medical_satchel=450
  31. }
  32.  
  33. ammoCount <- {
  34. asw_weapon_mines=8
  35. asw_weapon_electrified_armor=4
  36. asw_weapon_freeze_grenades=8
  37. asw_weapon_grenades=16
  38. asw_weapon_laser_mines=16
  39. asw_weapon_tesla_trap=24
  40. asw_weapon_hornet_barrage=16
  41. asw_weapon_medkit=3
  42. asw_weapon_heal_grenade=18
  43. asw_weapon_gas_grenades=8
  44. asw_weapon_stim=6
  45. asw_weapon_buff_grenade=12
  46. asw_weapon_medical_satchel=18
  47. }
  48.  
  49. regenDelay <- {
  50. asw_weapon_mines=0
  51. asw_weapon_electrified_armor=0
  52. asw_weapon_freeze_grenades=0
  53. asw_weapon_grenades=0
  54. asw_weapon_laser_mines=0
  55. asw_weapon_tesla_trap=0
  56. asw_weapon_hornet_barrage=0
  57. asw_weapon_medkit=0
  58. asw_weapon_heal_grenade=0
  59. asw_weapon_gas_grenades=0
  60. asw_weapon_stim=0
  61. asw_weapon_buff_grenade=0
  62. asw_weapon_medical_satchel=0
  63.  
  64. }
  65.  
  66. function Update()
  67. {
  68. minDelay <- 0.2;
  69. marine <- null;
  70. while ( ( marine = Entities.FindByClassname( marine, "asw_marine" ) ) != null )
  71. {
  72. for ( local weapon = marine.FirstMoveChild(); weapon != null; weapon = weapon.NextMovePeer() )
  73. {
  74. if ( weapon != null && (weapon.GetClassname() in regenDelay) )
  75. {
  76. timeBetweenInverse1 = regenInterval[weapon.GetClassname()];
  77. timeAfterShoot1 = regenDelay[weapon.GetClassname()];
  78.  
  79. if ( !( "GetMaxClip1" in weapon ) )
  80. continue;
  81. local maxClip1 = weapon.GetMaxClip1();
  82. if (maxClip1 <= 0)
  83. continue;
  84. local clips1 = weapon.GetMaxAmmo1() / maxClip1;
  85.  
  86. if ( clips1 < noClipPenalty )
  87. {
  88. if ( weapon != null && (weapon.GetClassname() in ammoCount) )
  89. maxClip1 = ammoCount[weapon.GetClassname()];
  90. else maxClip1 = ceil( maxClip1 * ( 1 - singleClipPenalty / clips1 ) );
  91. }
  92.  
  93. if ( weapon.Clip1() > maxClip1 )
  94. weapon.SetClip1( maxClip1 );
  95.  
  96. if ( !( weapon.entindex() in nextRefillTick1 ) )
  97. {
  98. nextRefillTick1[weapon.entindex()] <- Time();
  99. lastClip1[weapon.entindex()] <- weapon.Clip1();
  100. continue;
  101. }
  102.  
  103. if ( weapon.Clip1() != lastClip1[weapon.entindex()] )
  104. {
  105. lastClip1[weapon.entindex()] = weapon.Clip1();
  106. nextRefillTick1[weapon.entindex()] = Time() + timeAfterShoot1 + timeBetweenInverse1 / weapon.GetMaxAmmo1();
  107. }
  108. if ( nextRefillTick1[weapon.entindex()] <= Time() && weapon.Clip1() < maxClip1 )
  109. {
  110. weapon.SetClip1( weapon.Clip1() + 1 );
  111. lastClip1[weapon.entindex()] = weapon.Clip1();
  112. delay <- timeBetweenRefill1 + timeBetweenInverse1 / weapon.GetMaxAmmo1();
  113. nextRefillTick1[weapon.entindex()] = Time() + delay;
  114. if ( delay < minDelay )
  115. minDelay = delay;
  116. }
  117. }
  118. }
  119. }
  120. timeBetweenInverse1 = 75;
  121. timeAfterShoot1 = 5;
  122. return minDelay;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement