Advertisement
keybode

gay

Jun 2nd, 2014
579
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.95 KB | None | 0 0
  1. float CSpread::GetSpread( )
  2. {
  3. float flSpread = 0.0f;
  4. int iFlags = gGame.m_pLocalPlayer.m_iFlags;
  5. int iFov = hl2->read< int >( gGame.m_pLocalPlayer.m_dwBasePointer + 0xD1C );
  6. float flAccuracy = hl2->read< float >( gGame.m_pLocalPlayer.m_dwBaseWeapon + 0x760 );
  7. bool bWeaponBit = hl2->read< bool >( gGame.m_pLocalPlayer.m_dwBaseWeapon + 0x780 );
  8. bool bWeaponBitPistol = hl2->read< bool >( gGame.m_pLocalPlayer.m_dwBaseWeapon + 0x778 );
  9. float iSpeed = gGame.m_pLocalPlayer.m_vecVelocity.Length2D( );
  10. int iWeaponId = gEngine.GetWeaponId( gGame.m_pLocalPlayer.m_dwBaseWeapon );
  11.  
  12. if( iFov == 0 )
  13. iFov = 90;
  14.  
  15. switch( iWeaponId )
  16. {
  17. case WEAPON_CSBASE:
  18. flSpread = 0.0f;
  19. break;
  20.  
  21. case WEAPON_KNIFE:
  22. flSpread = 0.0f;
  23. break;
  24.  
  25. case WEAPON_HEGRENADE:
  26. flSpread = 0.0f;
  27. break;
  28.  
  29. case WEAPON_FLASHBANG:
  30. flSpread = 0.0f;
  31. break;
  32.  
  33. case WEAPON_DEAGLE:
  34. if( !( iFlags & FL_ONGROUND ) )
  35. flSpread = 1.5f * ( 1 - flAccuracy );
  36. else if( iSpeed > 5 )
  37. flSpread = 0.25f * ( 1 - flAccuracy );
  38. else if( iFlags & FL_DUCKING )
  39. flSpread = 0.115f * ( 1 - flAccuracy );
  40. else
  41. flSpread = 0.13f * ( 1 - flAccuracy );
  42. break;
  43.  
  44. case WEAPON_ELITE:
  45. if( !( iFlags & FL_ONGROUND ) )
  46. flSpread = 1.3f * ( 1 - flAccuracy );
  47. else if( iSpeed > 5 )
  48. flSpread = 0.175f * ( 1 - flAccuracy );
  49. else if( iFlags & FL_DUCKING )
  50. flSpread = 0.08f * ( 1 - flAccuracy );
  51. else
  52. flSpread = 0.1f * ( 1 - flAccuracy );
  53. break;
  54.  
  55. case WEAPON_FAMAS:
  56. if( !( iFlags & FL_ONGROUND ) )
  57. flSpread = 0.03f + 0.3f * flAccuracy;
  58. else if( iSpeed > 140 )
  59. flSpread = 0.03f + 0.07f * flAccuracy;
  60. else
  61. flSpread = 0.02f * flAccuracy;
  62. break;
  63.  
  64. case WEAPON_FIVESEVEN:
  65. if( !( iFlags & FL_ONGROUND ) )
  66. flSpread = 1.5f * ( 1 - flAccuracy );
  67. else if( iSpeed > 5 )
  68. flSpread = 0.255f * ( 1 - flAccuracy );
  69. else if( iFlags & FL_DUCKING )
  70. flSpread = 0.075f * ( 1 - flAccuracy );
  71. else
  72. flSpread = 0.15f * ( 1 - flAccuracy );
  73. break;
  74.  
  75. case WEAPON_G3SG1:
  76. if( !( iFlags & FL_ONGROUND ) )
  77. flSpread = 0.45f * ( 1 - flAccuracy );
  78. else if( iSpeed > 5 )
  79. flSpread = 0.15f;
  80. else if( iFlags & FL_DUCKING )
  81. flSpread = 0.035f * ( 1 - flAccuracy );
  82. else
  83. flSpread = 0.055f * ( 1 - flAccuracy );
  84. break;
  85.  
  86. case WEAPON_GALIL:
  87. if( !( iFlags & FL_ONGROUND ) )
  88. flSpread = 0.04f + 0.3f * flAccuracy;
  89. else if( iSpeed > 140 )
  90. flSpread = 0.04f + 0.07f * flAccuracy;
  91. else
  92. flSpread = 0.0375f * flAccuracy;
  93. break;
  94.  
  95. case WEAPON_GLOCK:
  96. if( bWeaponBitPistol )
  97. {
  98. if( !( iFlags & FL_ONGROUND ) )
  99. flSpread = 1.2f * ( 1 - flAccuracy );
  100. else if( iSpeed > 5 )
  101. flSpread = 0.185f * ( 1 - flAccuracy );
  102. else if( iFlags & FL_DUCKING )
  103. flSpread = 0.095f * ( 1 - flAccuracy );
  104. else
  105. flSpread = 0.3f * ( 1 - flAccuracy );
  106. }
  107. else
  108. {
  109. if( !( iFlags & FL_ONGROUND ) )
  110. flSpread = 1.0f * ( 1 - flAccuracy );
  111. else if( iSpeed > 5 )
  112. flSpread = 0.165f * ( 1 - flAccuracy );
  113. else if( iFlags & FL_DUCKING )
  114. flSpread = 0.075f * ( 1 - flAccuracy );
  115. else
  116. flSpread = 0.1f * ( 1 - flAccuracy );
  117. }
  118. break;
  119.  
  120. case WEAPON_M249:
  121. if( !( iFlags & FL_ONGROUND ) )
  122. flSpread = 0.045f + 0.5f * flAccuracy;
  123. else if( iSpeed > 140 )
  124. flSpread = 0.045f + 0.095f * flAccuracy;
  125. else
  126. flSpread = 0.03f * flAccuracy;
  127. break;
  128.  
  129. case WEAPON_M3:
  130. flSpread = 0.0675f;
  131. break;
  132.  
  133. case WEAPON_M4A1:
  134. if( !( iFlags & FL_ONGROUND ) )
  135. flSpread = 0.035f + 0.4f * flAccuracy;
  136. else if( iSpeed > 140 )
  137. flSpread = 0.035f + 0.07f * flAccuracy;
  138. else
  139. {
  140. if( bWeaponBit )
  141. flSpread = 0.025f * flAccuracy;
  142. else
  143. flSpread = 0.02f * flAccuracy;
  144. }
  145. break;
  146.  
  147. case WEAPON_MAC10:
  148. if( !( iFlags & FL_ONGROUND ) )
  149. flSpread = 0.375f * flAccuracy;
  150. else
  151. flSpread = 0.03f * flAccuracy;
  152. break;
  153.  
  154. case WEAPON_MP5:
  155. if( !( iFlags & FL_ONGROUND ) )
  156. flSpread = 0.2f * flAccuracy;
  157. else
  158. flSpread = 0.04f * flAccuracy;
  159. break;
  160.  
  161. case WEAPON_P228:
  162. if( !( iFlags & FL_ONGROUND ) )
  163. flSpread = 1.5f * ( 1 - flAccuracy );
  164. else if( iSpeed > 5 )
  165. flSpread = 0.255f * ( 1 - flAccuracy );
  166. else if( iFlags & FL_DUCKING )
  167. flSpread = 0.075f * ( 1 - flAccuracy );
  168. else
  169. flSpread = 0.15f * ( 1 - flAccuracy );
  170. break;
  171.  
  172. case WEAPON_P90:
  173. if( !( iFlags & FL_ONGROUND ) )
  174. flSpread = 0.3f * flAccuracy;
  175. else if( iSpeed > 170 )
  176. flSpread = 0.115f * flAccuracy;
  177. else
  178. flSpread = 0.045f * flAccuracy;
  179. break;
  180.  
  181. case WEAPON_SCOUT:
  182. if( !( iFlags & FL_ONGROUND ) )
  183. flSpread = 0.2f;
  184. else if( iSpeed > 170 )
  185. flSpread = 0.075f;
  186. else if( iFlags & FL_DUCKING )
  187. flSpread = 0.0f;
  188. else
  189. flSpread = 0.007f;
  190. break;
  191.  
  192. case WEAPON_SG550:
  193. if( !( iFlags & FL_ONGROUND ) )
  194. flSpread = 0.45f * ( 1 - flAccuracy );
  195. else if( iSpeed > 5 )
  196. flSpread = 0.15f;
  197. else if( iFlags & FL_DUCKING )
  198. flSpread = 0.04f * ( 1 - flAccuracy );
  199. else
  200. flSpread = 0.05f * ( 1 - flAccuracy );
  201. break;
  202.  
  203. case WEAPON_SG552:
  204. if( !( iFlags & FL_ONGROUND ) )
  205. flSpread = 0.035f + 0.45f * flAccuracy;
  206. else if( iSpeed > 140 )
  207. flSpread = 0.035f + 0.075f * flAccuracy;
  208. else
  209. flSpread = 0.02f * flAccuracy;
  210. break;
  211.  
  212. case WEAPON_TMP:
  213. if( !( iFlags & FL_ONGROUND ) )
  214. flSpread = 0.25f * flAccuracy;
  215. else
  216. flSpread = 0.03f * flAccuracy;
  217. break;
  218.  
  219. case WEAPON_UMP45:
  220. if( !( iFlags & FL_ONGROUND ) )
  221. flSpread = 0.24f * flAccuracy;
  222. else
  223. flSpread = 0.04f * flAccuracy;
  224. break;
  225.  
  226. case WEAPON_USP:
  227. if( bWeaponBitPistol )
  228. {
  229. if( !( iFlags & FL_ONGROUND ) )
  230. flSpread = 1.3f * ( 1 - flAccuracy );
  231. else if( iSpeed > 5 )
  232. flSpread = 0.25f * ( 1 - flAccuracy );
  233. else if( iFlags & FL_DUCKING )
  234. flSpread = 0.125f * ( 1 - flAccuracy );
  235. else
  236. flSpread = 0.15f * ( 1 - flAccuracy );
  237. }
  238. else
  239. {
  240. if( !( iFlags & FL_ONGROUND ) )
  241. flSpread = 1.2f * ( 1 - flAccuracy );
  242. else if( iSpeed > 5 )
  243. flSpread = 0.225f * ( 1 - flAccuracy );
  244. else if( iFlags & FL_DUCKING )
  245. flSpread = 0.08f * ( 1 - flAccuracy );
  246. else
  247. flSpread = 0.1f * ( 1 - flAccuracy );
  248. }
  249. break;
  250.  
  251. case WEAPON_XM1014:
  252. flSpread = 0.0725f;
  253. break;
  254.  
  255. case WEAPON_AK47:
  256. if( !( iFlags & FL_ONGROUND ) )
  257. flSpread = 0.04f + 0.4f * flAccuracy;
  258. else if( iSpeed > 140 )
  259. flSpread = 0.04f + 0.07f * flAccuracy;
  260. else
  261. flSpread = 0.0275f * flAccuracy;
  262. break;
  263.  
  264. case WEAPON_AUG:
  265. if( !( iFlags & FL_ONGROUND ) )
  266. flSpread = 0.035f + 0.4f * flAccuracy;
  267. else if( iSpeed > 140 )
  268. flSpread = 0.035f + 0.07f * flAccuracy;
  269. else
  270. flSpread = 0.02f * flAccuracy;
  271. break;
  272.  
  273. case WEAPON_AWP:
  274. if( !( iFlags & FL_ONGROUND ) )
  275. flSpread = 0.85f;
  276. else if( iSpeed > 140 )
  277. flSpread = 0.25f;
  278. else if( iSpeed > 10 )
  279. flSpread = 0.10f;
  280. else if( iFlags & FL_DUCKING )
  281. flSpread = 0.0f;
  282. else
  283. flSpread = 0.001f;
  284.  
  285. if( iFov == 90 )
  286. flSpread += 0.08f;
  287. break;
  288. }
  289.  
  290. return flSpread;
  291. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement