Guest User

Anti C bug by David Luango

a guest
Dec 12th, 2013
1,231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.31 KB | None | 0 0
  1. #define WEAPON_UNARMED ( 0 )
  2.  
  3. enum eCBugPlayerInfo
  4. {
  5. bool:isCrouched,
  6. bool:isFiring,
  7. iCrouchTime,
  8. iLastFire,
  9. iLastFiring,
  10. iLastStrafeFire
  11. };
  12.  
  13. new CBugPlayerInfo[ MAX_PLAYERS ][ eCBugPlayerInfo ];
  14.  
  15. AntiCBugOnGameModeInit( )
  16. {
  17. new iTick = GetTickCount( );
  18.  
  19. for ( new i = 0; i < MAX_PLAYERS; i++ )
  20. {
  21. CBugPlayerInfo[ i ][ isCrouched ] = false;
  22. CBugPlayerInfo[ i ][ iLastFire ] = iTick;
  23. CBugPlayerInfo[ i ][ iLastStrafeFire ] = iTick;
  24. }
  25.  
  26. return 1;
  27. }
  28.  
  29. AntiCBugOnPlayerConnect( playerid )
  30. {
  31. new iTick = GetTickCount( );
  32.  
  33. CBugPlayerInfo[ playerid ][ isCrouched ] = false;
  34. CBugPlayerInfo[ playerid ][ isFiring ] = false;
  35. CBugPlayerInfo[ playerid ][ iLastFire ] = iTick;
  36. CBugPlayerInfo[ playerid ][ iLastFiring ] = iTick;
  37. CBugPlayerInfo[ playerid ][ iLastStrafeFire ] = iTick;
  38.  
  39. return 1;
  40. }
  41. AntiCBugOnPlayerUpdate( playerid )
  42. {
  43. new
  44. iTick = GetTickCount( ),
  45. iAnimationIndex = GetPlayerAnimationIndex( playerid ),
  46. iWeapon = GetPlayerWeapon( playerid ),
  47. iKeys,
  48. iKeysUD,
  49. iKeysLR
  50. ;
  51.  
  52. GetPlayerKeys( playerid, iKeys, iKeysUD, iKeysLR );
  53.  
  54. if ( ( iKeys & KEY_FIRE ) || ( ( iKeys & KEY_ACTION ) && ( iKeys & KEY_AIM ) ) )
  55. {
  56. CBugPlayerInfo[ playerid ][ iLastFire ] = iTick;
  57.  
  58. if ( !CBugPlayerInfo[ playerid ][ isFiring ] )
  59. {
  60. CBugPlayerInfo[ playerid ][ isFiring ] = true;
  61.  
  62. CBugPlayerInfo[ playerid ][ iLastFiring ] = iTick;
  63. }
  64. }
  65. else if ( CBugPlayerInfo[ playerid ][ isFiring ] )
  66. CBugPlayerInfo[ playerid ][ isFiring ] = false;
  67.  
  68. switch ( iAnimationIndex )
  69. {
  70. case 1274: // WEAPON_CROUCH
  71. {
  72. if ( !CBugPlayerInfo[ playerid ][ isCrouched ] )
  73. {
  74. CBugPlayerInfo[ playerid ][ isCrouched ] = true;
  75.  
  76. CBugPlayerInfo[ playerid ][ iCrouchTime ] = iTick;
  77. }
  78.  
  79. if ( iWeapon && ( iKeys & KEY_FIRE ) && iTick - CBugPlayerInfo[ playerid ][ iCrouchTime ] > 300 )
  80. ClearAnimations( playerid );
  81. }
  82.  
  83. case 1160 .. 1163, 1167: // GUNMOVE_L/R/FWD/BWD, GUN_STAND
  84. {
  85. if ( ( iKeys & KEY_FIRE ) )
  86. {
  87. switch ( iWeapon )
  88. {
  89. case
  90. WEAPON_SILENCED,
  91. WEAPON_DEAGLE,
  92. WEAPON_SHOTGUN,
  93. WEAPON_SHOTGSPA,
  94. WEAPON_MP5,
  95. WEAPON_M4,
  96. WEAPON_AK47,
  97. WEAPON_RIFLE,
  98. WEAPON_SNIPER:
  99. {
  100. CBugPlayerInfo[ playerid ][ iLastStrafeFire ] = iTick;
  101. }
  102. }
  103. }
  104. }
  105.  
  106. case
  107. 1231, // RUN_PLAYER
  108. 1223, // RUN_ARMED
  109. 1141, // FIGHTA_M
  110. 478, // FIGHTB_M
  111. 489, // FIGHTC_M
  112. 500, // FIGHTD_M
  113. 759, // KNIFE_PART
  114. 27, // BAT_PART
  115. 1554 // SWORD_PART
  116. :
  117. {
  118. switch ( GetWeaponSlot( iWeapon ) )
  119. {
  120. case 0, 1, 8, 9, 10, 11, 12:
  121. {
  122.  
  123. }
  124. default:
  125. {
  126. if ( ( iKeys & KEY_AIM ) && ( iKeys & KEY_ACTION ) ) {
  127. ClearAnimations( playerid );
  128. return 2;
  129. }
  130. else if ( CBugPlayerInfo[ playerid ][ isFiring ] && iTick - CBugPlayerInfo[ playerid ][ iLastFiring ] > 150 ) {
  131. ClearAnimations( playerid );
  132. return 2;
  133. }
  134. }
  135. }
  136. }
  137. }
  138.  
  139. if ( ( iKeys & KEY_CROUCH ) && iTick - CBugPlayerInfo[ playerid ][ iLastStrafeFire ] < 500 )
  140. {
  141. ClearAnimations( playerid );
  142.  
  143. ApplyAnimation( playerid, "PED", "XPRESSscratch", 0.0, 1, 0, 0, 0, 500 - ( iTick - CBugPlayerInfo[ playerid ][ iLastStrafeFire ] ), 1 );
  144. return 2;
  145. }
  146.  
  147. if ( CBugPlayerInfo[ playerid ][ isCrouched ] && iAnimationIndex != 1274 ) // WEAPON_CROUCH
  148. CBugPlayerInfo[ playerid ][ isCrouched ] = false;
  149.  
  150. return 1;
  151. }
Advertisement
Add Comment
Please, Sign In to add comment