HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <cstrike>
  3. #include <engine>
  4. #include <fakemeta>
  5. #include <hamsandwich>
  6.  
  7. const XoWeapon = 4;
  8. const XoPlayer = 5;
  9. const m_pPlayer = 41;
  10. const m_flNextPrimaryAttack = 46;
  11. const m_flTimeWeaponIdle = 48;
  12. const m_fInSpecialReload = 55;
  13. const m_flNextAttack = 83;
  14. const m_pActiveItem = 373;
  15.  
  16. new const PLUGIN[] = "CS:GO Inspect Weapon";
  17. new const VERSION[] = "5.1.5";
  18. new const DATE[] = "9th Apri1 2020";
  19.  
  20. new const wpns_without_inspect = (1 << CSW_C4) | (1 << CSW_HEGRENADE) | (1 << CSW_FLASHBANG) | (1 << CSW_SMOKEGRENADE);
  21. new const wpns_scoped = (1 << CSW_AUG) | (1 << CSW_AWP) | (1 << CSW_G3SG1) | (1 << CSW_SCOUT) | (1 << CSW_SG550) | (1 << CSW_SG552);
  22.  
  23. new g_deagle_overide[33];
  24.  
  25. new inspect_anim[] =
  26. {
  27. 0, //null
  28. 7, //p228
  29. 0, //shield
  30. 5, //scout
  31. 0, //hegrenade
  32. 7, //xm1014
  33. 0, //c4
  34. 6, //mac10
  35. 6, //aug
  36. 0, //smoke grenade
  37. 16, //elites
  38. 6, //fiveseven
  39. 6, //ump45
  40. 5, //sg550
  41. 6, //galil
  42. 6, //famas
  43. 16, //usp
  44. 13, //glock
  45. 6, //awp
  46. 6, //mp5
  47. 5, //m249
  48. 7, //m3
  49. 14, //m4a1
  50. 6, //tmp
  51. 5, //g3sg1
  52. 0, //flashbang
  53. 6, //deagle
  54. 6, //sg552
  55. 6, //ak47
  56. 8, //knife
  57. 6 //p90
  58. }
  59.  
  60. new Float:idle_calltime[] =
  61. {
  62. 0.0, //null
  63. 6.5, //p228
  64. 0.0, //shield
  65. 5.3, //scout
  66. 0.0, //hegrenade
  67. 4.6, //xm1014
  68. 0.0, //c4
  69. 6.5, //mac10
  70. 4.4, //aug
  71. 0.0, //smoke grenade
  72. 4.6, //elites
  73. 6.5, //fiveseven
  74. 6.9, //ump45
  75. 5.3, //sg550
  76. 4.6, //galil
  77. 6.4, //famas
  78. 6.5, //usp
  79. 6.5, //glock
  80. 5.0, //awp
  81. 7.7, //mp5
  82. 6.9, //m249
  83. 5.6, //m3
  84. 5.1, //m4a1
  85. 7.4, //tmp
  86. 4.5, //g3sg1
  87. 0.0, //flashbang
  88. 8.5, //deagle
  89. 4.4, //sg552
  90. 4.6, //ak47
  91. 6.3, //knife
  92. 5.4 //p90
  93. }
  94.  
  95. public plugin_init()
  96. {
  97. register_plugin(PLUGIN, VERSION, "hellmonja");
  98.  
  99. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_p228", "Fw_Weapon_PrimaryAttack", true);
  100. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_scout", "Fw_Weapon_PrimaryAttack", true);
  101. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_xm1014", "Fw_Weapon_PrimaryAttack", true);
  102. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mac10", "Fw_Weapon_PrimaryAttack", true);
  103. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_aug", "Fw_Weapon_PrimaryAttack", true);
  104. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_elite", "Fw_Weapon_PrimaryAttack", true);
  105. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_fiveseven","Fw_Weapon_PrimaryAttack",true);
  106. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_ump45", "Fw_Weapon_PrimaryAttack", true);
  107. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_sg550", "Fw_Weapon_PrimaryAttack", true);
  108. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_galil", "Fw_Weapon_PrimaryAttack", true);
  109. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_famas", "Fw_Weapon_PrimaryAttack", true);
  110. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_usp", "Fw_Weapon_PrimaryAttack", true);
  111. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_glock18", "Fw_Weapon_PrimaryAttack", true);
  112. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_awp", "Fw_Weapon_PrimaryAttack", true);
  113. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mp5navy", "Fw_Weapon_PrimaryAttack", true);
  114. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_m249", "Fw_Weapon_PrimaryAttack", true);
  115. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_m3", "Fw_Weapon_PrimaryAttack", true);
  116. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_m4a1", "Fw_Weapon_PrimaryAttack", true);
  117. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_tmp", "Fw_Weapon_PrimaryAttack", true);
  118. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_g3sg1", "Fw_Weapon_PrimaryAttack", true);
  119. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_deagle", "Fw_Weapon_PrimaryAttack", true);
  120. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_sg552", "Fw_Weapon_PrimaryAttack", true);
  121. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_ak47", "Fw_Weapon_PrimaryAttack", true);
  122. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "Fw_Weapon_PrimaryAttack", true);
  123. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_p90", "Fw_Weapon_PrimaryAttack", true);
  124.  
  125.  
  126. RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_aug", "Fw_Weapon_SecondaryAttack");
  127. RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_awp", "Fw_Weapon_SecondaryAttack");
  128. RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_g3sg1", "Fw_Weapon_SecondaryAttack");
  129. RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_scout", "Fw_Weapon_SecondaryAttack");
  130. RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_sg550", "Fw_Weapon_SecondaryAttack");
  131. RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_sg552", "Fw_Weapon_SecondaryAttack");
  132.  
  133. RegisterHam(Ham_Item_Deploy, "weapon_deagle", "Fw_Deagle_Disable");
  134. RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "Fw_Deagle_Disable");
  135.  
  136. register_impulse(100, "Inspect_Weapon");
  137. register_clcmd("cl_inspect", "Inspect_Weapon");
  138. register_concmd("inspect", "Inspect_Weapon");
  139. register_concmd("ver_csgo_inspect", "Code_Version");
  140. }
  141.  
  142. public Code_Version(id)
  143. {
  144. console_print(id, "==============================");
  145. console_print(id, "%s v%s", PLUGIN, VERSION);
  146. console_print(id, "%s", DATE);
  147. console_print(id, "==============================");
  148. }
  149.  
  150. public Fw_Weapon_PrimaryAttack(weapon)
  151. {
  152. static id;
  153. id = get_pdata_cbase(weapon, m_pPlayer, XoWeapon);
  154.  
  155. if(!is_user_alive(id))
  156. return
  157.  
  158. new wpn_id = get_user_weapon(id);
  159. static model[32];
  160. pev(id, pev_viewmodel2, model, 31);
  161.  
  162. switch(wpn_id)
  163. {
  164. case CSW_DEAGLE:
  165. g_deagle_overide[id] = 1;
  166. case CSW_AWP, CSW_SCOUT, CSW_M3:
  167. set_pdata_float(weapon, m_flTimeWeaponIdle, 1.5, XoWeapon);
  168. case CSW_KNIFE:
  169. set_pdata_float(weapon, m_flTimeWeaponIdle, 2.0, XoWeapon);
  170. default:
  171. set_pdata_float(weapon, m_flTimeWeaponIdle, 0.5, XoWeapon);
  172. }
  173. }
  174.  
  175. public Fw_Weapon_SecondaryAttack(weapon)
  176. {
  177. static id;
  178. id = get_pdata_cbase(weapon, m_pPlayer, XoWeapon);
  179. new wpn_id = get_user_weapon(id);
  180.  
  181. if(wpns_scoped & (1 << wpn_id) && cs_get_user_zoom(id) <= 1)
  182. {
  183. set_pev(id, pev_weaponanim, 0);
  184.  
  185. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id);
  186. write_byte(0);
  187. write_byte(pev(id, pev_body));
  188. message_end();
  189. }
  190. }
  191.  
  192. public Fw_Deagle_Disable(weapon)
  193. {
  194. static id;
  195. id = get_pdata_cbase(weapon, m_pPlayer, XoWeapon);
  196. remove_task(id)
  197. }
  198.  
  199. public Deagle_Overide(id)
  200. {
  201. g_deagle_overide[id] = 1;
  202. play_inspect(id, 0);
  203. }
  204.  
  205. public Inspect_Weapon(id)
  206. {
  207. if(!is_user_alive(id) || !is_user_connected(id))
  208. return PLUGIN_HANDLED
  209.  
  210. if(cs_get_user_zoom(id) > 1)
  211. return PLUGIN_HANDLED
  212.  
  213. new wpn_id = get_user_weapon(id);
  214.  
  215. if(wpns_without_inspect & (1 << wpn_id))
  216. return PLUGIN_HANDLED
  217.  
  218. static weapon; weapon = get_pdata_cbase(id, m_pActiveItem);
  219. static Float:flNextAttack; flNextAttack = get_pdata_float(id, m_flNextAttack, XoPlayer);
  220. static Float:flNextPrimaryAttack; flNextPrimaryAttack = get_pdata_float(weapon, m_flNextPrimaryAttack, XoWeapon);
  221.  
  222. if(flNextAttack <= 0 && flNextPrimaryAttack <= 0)
  223. {
  224. static model[32]; pev(id, pev_viewmodel2, model, 31);
  225. static anim; anim = inspect_anim[wpn_id];
  226. static current_anim; current_anim = pev(get_pdata_cbase(weapon, m_pPlayer, XoWeapon), pev_weaponanim);
  227.  
  228. if(cs_get_user_shield(id) == 1)
  229. {
  230. switch (wpn_id)
  231. {
  232. case CSW_KNIFE: anim = random_num(7, 9);
  233. case CSW_GLOCK18, CSW_USP, CSW_P228, CSW_DEAGLE, CSW_FIVESEVEN:
  234. {
  235. anim = 9;
  236.  
  237. if(wpn_id == CSW_DEAGLE)
  238. {
  239. if(task_exists(id)) remove_task(id);
  240. set_task(idle_calltime[wpn_id], "Deagle_Overide", id);
  241. }
  242. }
  243. }
  244. }
  245. else
  246. {
  247. switch (wpn_id)
  248. {
  249. case CSW_USP: if(!cs_get_weapon_silen(weapon)) anim = 17;
  250. case CSW_M4A1:if(!cs_get_weapon_silen(weapon)) anim = 15;
  251. case CSW_KNIFE: anim = random_num(8, 10);
  252. case CSW_DEAGLE:
  253. {
  254. if(g_deagle_overide[id] == 1)
  255. {
  256. anim = random_num(6, 10);
  257.  
  258. new Float:f_temp;
  259. if(anim == 10) f_temp = 8.53;
  260. else f_temp = idle_calltime[CSW_DEAGLE]
  261.  
  262. play_inspect(id, anim);
  263. remove_task(id);
  264. g_deagle_overide[id] = 0;
  265. set_task(f_temp, "Deagle_Overide", id);
  266. return PLUGIN_CONTINUE
  267. }
  268. }
  269. }
  270. }
  271.  
  272. if(wpn_id == CSW_KNIFE && (current_anim == 8 || current_anim == 9 || current_anim == 10 ))
  273. return PLUGIN_HANDLED
  274.  
  275. if(!get_pdata_int(weapon, m_fInSpecialReload, 4) && current_anim != anim)
  276. {
  277. play_inspect(id, anim);
  278. set_pdata_float(weapon, m_flTimeWeaponIdle, idle_calltime[wpn_id], XoWeapon);
  279.  
  280. }
  281. }
  282.  
  283. return PLUGIN_CONTINUE
  284. }
  285.  
  286. play_inspect(id, anim)
  287. {
  288. set_pev(id, pev_weaponanim, anim);
  289.  
  290. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id);
  291. write_byte(anim);
  292. write_byte(pev(id, pev_body));
  293. message_end();
  294. }
  295.