HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <cstrike>
  4. #include <fun>
  5.  
  6. #define PLUGIN "Körvégi gyilkosság"
  7. #define VERSION "1.2"
  8. #define AUTHOR "Alka"
  9.  
  10. #define CHECK_TIME 3.0
  11.  
  12. #define TASK_ID 1337
  13.  
  14. //Globals
  15. new bool:g_round_started;
  16. new g_roundtime, g_adv_time;
  17. new weapon[33][31];
  18. new CsArmorType:armortype[33];
  19. new armoramount[33];
  20. new g_maxplayers;
  21.  
  22. //Cvars
  23. new
  24. toggle_plugin,
  25. g_show_adv,
  26. g_recive_weapons;
  27.  
  28. stock const ents_list[][] = {
  29.  
  30. "func_bomb_target",
  31. "info_bomb_target",
  32. "hostage_entity",
  33. "monster_scientist",
  34. "func_hostage_rescue",
  35. "info_hostage_rescue",
  36. "info_vip_start",
  37. "func_vip_safetyzone",
  38. "func_escapezone"
  39. }
  40.  
  41. stock const WeaponNames[31][] = {
  42. "",
  43. "weapon_p228",
  44. "",
  45. "weapon_scout",
  46. "weapon_hegrenade",
  47. "weapon_xm1014",
  48. "",
  49. "weapon_mac10",
  50. "weapon_aug",
  51. "weapon_smokegrenade",
  52. "weapon_elite",
  53. "weapon_fiveseven",
  54. "weapon_ump45",
  55. "weapon_sg550",
  56. "weapon_galil",
  57. "weapon_famas",
  58. "weapon_usp",
  59. "weapon_glock18",
  60. "weapon_awp",
  61. "weapon_mp5navy",
  62. "weapon_m249",
  63. "weapon_m3",
  64. "weapon_m4a1",
  65. "weapon_tmp",
  66. "weapon_g3sg1",
  67. "weapon_flashbang",
  68. "weapon_deagle",
  69. "weapon_sg552",
  70. "weapon_ak47",
  71. "",
  72. "weapon_p90"
  73. }
  74.  
  75. public plugin_init(){
  76.  
  77. register_plugin(PLUGIN, VERSION, AUTHOR);
  78.  
  79. register_logevent("round_start", 2, "1=Round_Start");
  80. register_logevent("round_end", 2, "1=Round_End");
  81.  
  82. register_event("TextMsg", "round_restart", "a", "2&#Game_C", "2&#Game_w");
  83.  
  84. register_message(get_user_msgid("RoundTime"), "Round_Timer");
  85.  
  86. set_task(CHECK_TIME,"check_map");
  87.  
  88. g_maxplayers = get_maxplayers();
  89.  
  90. toggle_plugin = register_cvar("amx_fre","1");
  91. g_show_adv = register_cvar("amx_fre_adv","1");
  92. g_recive_weapons = register_cvar("amx_fre_rw","0");
  93. }
  94.  
  95.  
  96. public round_start() {
  97.  
  98. if(get_pcvar_num(g_recive_weapons))
  99. {
  100. give_weapons();
  101. }
  102. g_round_started = true;
  103. }
  104.  
  105. public round_end()
  106. remove_task(TASK_ID);
  107.  
  108. public round_restart()
  109. remove_task(TASK_ID);
  110.  
  111.  
  112. public Round_Timer()
  113. {
  114. if(g_round_started)
  115. g_round_started = false;
  116. else
  117. return;
  118.  
  119. g_roundtime = get_msg_arg_int(1);
  120. g_adv_time = (g_roundtime - 11); //Postponement fix. (11) - Round is ending after 0:00
  121.  
  122. if(get_pcvar_num(toggle_plugin))
  123. {
  124. set_task(float(g_roundtime), "force_end",TASK_ID);
  125. if(get_pcvar_num(g_show_adv))
  126. {
  127. set_task(float(g_adv_time), "show_adv",TASK_ID);
  128. }
  129. }
  130. }
  131.  
  132. public force_end()
  133. {
  134. new g_players[32], num;
  135. get_players(g_players, num);
  136.  
  137. new x;
  138. for(new i = 0; i < num; i++)
  139. {
  140. x = g_players[i];
  141.  
  142. user_silentkill(x);
  143. cs_set_user_deaths(x, get_user_deaths(x) - 1);
  144. }
  145. }
  146.  
  147. public show_adv()
  148. {
  149. set_hudmessage(0, 255, 0, -1.0, -1.0, 1, 6.0, 3.0,_,_,-1);
  150. show_hudmessage(0, "10 Masodperc van hatra a kor vegeig!");
  151.  
  152. if(get_pcvar_num(g_recive_weapons))
  153. {
  154. get_weapons();
  155. }
  156. }
  157.  
  158. public get_weapons()
  159. {
  160. static i, i2
  161. for( i=0 ; i<=g_maxplayers ; i++)
  162. {
  163. arrayset(weapon[i],0,31)
  164. if(is_user_alive(i))
  165. {
  166. armoramount[i] = cs_get_user_armor(i,armortype[i])
  167. for(i2=1;i2<=30;i2++)
  168. {
  169. if(i2!=2 && i2!=6 && i2!=29)
  170. {
  171. if(user_has_weapon(i,i2))
  172. {
  173. weapon[i][i2] = cs_get_user_bpammo(i,i2)
  174. if(!weapon[i][i2]) weapon[i][i2] = 1
  175. }
  176. }
  177. }
  178. }
  179. }
  180. }
  181.  
  182. public give_weapons()
  183. {
  184. new i, i2
  185. for( i=0 ; i<=g_maxplayers ; i++)
  186. {
  187. if(is_user_alive(i))
  188. {
  189.  
  190. cs_set_user_armor(i,armoramount[i],armortype[i])
  191. strip_user_weapons(i)
  192. for(i2=1;i2<=30;i2++)
  193. {
  194. if(i2!=2 && i2!=6 && i2!=29)
  195. {
  196. if(weapon[i][i2])
  197. {
  198. give_item(i,WeaponNames[i2])
  199. cs_set_user_bpammo(i,i2,weapon[i][i2])
  200. }
  201. }
  202. }
  203. give_item(i,"weapon_knife")
  204. }
  205. }
  206. }
  207.  
  208. public check_map()
  209. {
  210. for (new a = 0; a < sizeof ents_list; a++)
  211. {
  212. if (engfunc(EngFunc_FindEntityByString, -1, "classname", ents_list[a]))
  213. {
  214. pause("a");
  215. }
  216. }
  217. }
  218.