HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* AK47 Vs. M4A1
  2.  * This forces each team to have the ak47 or the m4a1. This plugins blocks all menus
  3.  * (for no buy) and drop. At the end of the aloted rounds the winner will be said and
  4.  * then the teams will switch guns.
  5. */
  6. /*
  7.   Fordította: BBk - Death of Legend
  8. */
  9.  
  10. #include <amxmodx>
  11. #include <amxmisc>
  12. #include <fun>
  13. #include <engine>
  14. #include <engine_stocks>
  15.  
  16. #define MAX_BLOCKED 39
  17. #define START_STOP_ACCESS ADMIN_SLAY
  18.  
  19. new rounds = 0
  20. new bool:ctak = true
  21. new bool:tak = false
  22. new twins = 0
  23. new ctwins = 0
  24. new check = true
  25. new check2 = true
  26.  
  27. new Blocked_Items[MAX_BLOCKED][] = {
  28. /* Commands */
  29. "buy",
  30. "buyequip",
  31. "cl_autobuy",
  32. "cl_rebuy",
  33. "cl_setautobuy",
  34. "cl_setrebuy",
  35. "drop",
  36. /* Pistols */
  37. "km45",
  38. "9x19mm",
  39. "nighthawk",
  40. "228compact",
  41. "elites",
  42. "fiveseven",
  43. /* Shotguns */
  44. "12gauge",
  45. "autoshotgun",
  46. /* Sub Machine Guns */
  47. "smg",
  48. "mp5",
  49. "c90",
  50. "mac10",
  51. "ump45",
  52. /* Rifles */
  53. "cv47",
  54. "defender",
  55. "clarion",
  56. "krieg552",
  57. "m4a1",
  58. "bullpup",
  59. "scout",
  60. "magnum",
  61. "d3au1",
  62. "krieg550",
  63. /* Machine Gun */
  64. "m249",
  65. /* Equipment */
  66. "vest",
  67. "vesthelm",
  68. "flash",
  69. "hegren",
  70. "sgren",
  71. "defuser",
  72. "nvgs",
  73. "shield"
  74. }
  75.  
  76. new prim_weapons[18] = {3, 5, 7, 8, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 27, 28, 30}
  77.  
  78. public client_connect(id) {
  79. if(!get_cvar_num("amx_akm4war")) return PLUGIN_CONTINUE
  80. client_cmd(id, "setinfo _vgui_menus 0")
  81. return PLUGIN_CONTINUE
  82. }
  83.  
  84. public client_infochanged(id) {
  85. if(!get_cvar_num("amx_akm4war")) return PLUGIN_CONTINUE
  86. new vgui_set[3]
  87. get_user_info(id, "_vgui_menus", vgui_set, 2)
  88. if(str_to_num(vgui_set) > 0) {
  89. client_cmd(id, "setinfo _vgui_menus 0")
  90. }
  91. return PLUGIN_CONTINUE
  92. }
  93.  
  94. public client_command(id) {
  95. if(is_user_alive(id) && get_cvar_num("amx_akm4war")) {
  96. new arg[16], i
  97. read_argv(0, arg, 15)
  98.  
  99. do {
  100. if(equali(arg, Blocked_Items[i])) return PLUGIN_HANDLED
  101. }
  102. while(++i < MAX_BLOCKED)
  103. }
  104. return PLUGIN_CONTINUE
  105. }
  106.  
  107. public start_akm4(id) {
  108. if (!(get_user_flags(id) & START_STOP_ACCESS)) {
  109. if(id != 0){
  110. client_print(id,print_console,"[AMXX] Nincs hozzaferesed!")
  111. return PLUGIN_HANDLED
  112. }
  113. }
  114.  
  115. if (get_cvar_num("amx_akm4war") == 1) {
  116. client_print(id,print_console,"[AMXX] A plugin mar be van kapcsolva!")
  117. return PLUGIN_HANDLED
  118. }
  119.  
  120. set_cvar_num("amx_akm4war", 1)
  121. set_cvar_num("sv_restart", 3)
  122.  
  123. client_print(0, print_chat, "AK-M4 War kezdetet veszi!!")
  124.  
  125. return PLUGIN_HANDLED
  126. }
  127.  
  128. public stop_akm4(id) {
  129. if (!(get_user_flags(id) & START_STOP_ACCESS)) {
  130. if(id != 0){
  131. client_print(id,print_console,"[AMXX] Nincs hozzaferesed!")
  132. return PLUGIN_HANDLED
  133. }
  134. }
  135.  
  136. if (get_cvar_num("amx_akm4war") == 0) {
  137. client_print(id,print_console,"[AMXX] A plugin mar ki van kapcsolva!")
  138. return PLUGIN_HANDLED
  139. }
  140.  
  141. set_cvar_num("amx_akm4war", 0)
  142. set_cvar_num("sv_restart", 3)
  143.  
  144. client_print(0, print_chat, "AK-M4 War leallitva!!")
  145.  
  146. return PLUGIN_HANDLED
  147. }
  148.  
  149. public resethud()
  150. {
  151. if(!get_cvar_num("amx_akm4war")) return PLUGIN_CONTINUE
  152. if(get_cvar_num("amx_akm4war") && get_cvar_num("amx_removebomb") && check2) {
  153. new func_bomb = find_ent_by_class(-1, "func_bomb_target")
  154. while(func_bomb > get_maxplayers()) { // entity would have a higher index than last player
  155. entity_set_int(func_bomb, EV_INT_flags, FL_KILLME) // special flag setting to remove an entity
  156. func_bomb = find_ent_by_class(func_bomb, "func_bomb_target")
  157. }
  158. new info_bomb = find_ent_by_class(-1, "info_bomb_target")
  159. while(info_bomb > get_maxplayers()) { // entity would have a higher index than last player
  160. entity_set_int(func_bomb, EV_INT_flags, FL_KILLME) // special flag setting to remove an entity
  161. info_bomb = find_ent_by_class(info_bomb, "info_bomb_target")
  162. }
  163. check2 = false
  164. }
  165. if(!check) return PLUGIN_CONTINUE
  166.  
  167. if(get_cvar_num("amx_rounds") == rounds)
  168. {
  169. rounds = 0
  170. if(ctwins > twins)
  171. {
  172. set_hudmessage(200,100,255,-1.0,0.35,2,6.0,5.0,0.1,0.5,2)
  173. if(tak)
  174. show_hudmessage(0, "CT csapat (Ak-47) Nyert! %d / %d", ctwins, twins)
  175. else
  176. show_hudmessage(0, "CT csapat (M4a1) Nyert! %d / %d", ctwins, twins)
  177. }
  178. else if(ctwins < twins)
  179. {
  180.  
  181. set_hudmessage(200,100,255,-1.0,0.35,2,6.0,5.0,0.1,0.5,2)
  182. if(ctak)
  183. show_hudmessage(0, "T csapat (Ak-47) Nyert! %d / %d", twins, ctwins)
  184. else
  185. show_hudmessage(0, "T csapat (M4a1) Nyert! %d / %d", twins, ctwins)
  186. }
  187. else if(ctwins == twins)
  188. {
  189.  
  190. set_hudmessage(200,100,255,-1.0,0.35,2,6.0,5.0,0.1,0.5,2)
  191. show_hudmessage(0, "Dontetlen! %d / %d", twins, ctwins)
  192. }
  193.  
  194. ctwins = 0
  195. twins = 0
  196.  
  197. if(ctak)
  198. {
  199. ctak = false
  200. tak = true
  201. }
  202. else
  203. {
  204. tak = false
  205. ctak = true
  206. }
  207. }
  208.  
  209. if(ctak)
  210. client_print(0, print_chat, "Korok: %d Ak gyozelem: %d M4 gyozelem: %d Leadott korok: %d",rounds,twins,ctwins,get_cvar_num("amx_rounds") - rounds)
  211. else if(tak)
  212. client_print(0, print_chat, "Korok: %d Ak gyozelem: %d M4 gyozelem: %d Leadott korok: %d",rounds,ctwins,twins,get_cvar_num("amx_rounds") - rounds)
  213.  
  214. check = false
  215. rounds++
  216.  
  217. if(!get_cvar_num("amx_akm4war")) return PLUGIN_CONTINUE
  218. for(new id = 1; id <= get_maxplayers(); id++)
  219. {
  220. if(is_user_alive(id))
  221. {
  222. new team = get_user_team(id)
  223.  
  224. // drop weapons
  225. new nwpn[32]
  226. for(new i = 0; i < 18; i++)
  227. {
  228. if(user_has_weapon(id, prim_weapons[i]))
  229. {
  230. get_weaponname(prim_weapons[i], nwpn, 31)
  231. engclient_cmd(id, "drop", nwpn)
  232. }
  233. }
  234.  
  235. if(team == 2 && tak && !ctak)
  236. {
  237. //give ak
  238. give_item(id,"weapon_ak47")
  239. give_item(id,"ammo_762nato")
  240. give_item(id,"ammo_762nato")
  241. give_item(id,"ammo_762nato")
  242. }
  243. else if(team == 2 && !tak && ctak)
  244. {
  245. //give m4a1
  246. give_item(id,"weapon_m4a1")
  247. give_item(id,"ammo_556nato")
  248. give_item(id,"ammo_556nato")
  249. give_item(id,"ammo_556nato")
  250. }
  251. else if(team == 1 && ctak && !tak)
  252. {
  253. give_item(id,"weapon_ak47")
  254. give_item(id,"ammo_762nato")
  255. give_item(id,"ammo_762nato")
  256. give_item(id,"ammo_762nato")
  257. }
  258. else if(team == 1 && !ctak && tak)
  259. {
  260. give_item(id,"weapon_m4a1")
  261. give_item(id,"ammo_556nato")
  262. give_item(id,"ammo_556nato")
  263. give_item(id,"ammo_556nato")
  264. }
  265. }
  266. }
  267. return PLUGIN_CONTINUE
  268. }
  269.  
  270. public t_win()
  271. {
  272. if(get_cvar_num("amx_akm4war"))
  273. {
  274. twins++
  275. check = true
  276. }
  277. }
  278.  
  279. public ct_win()
  280. {
  281. if(get_cvar_num("amx_akm4war"))
  282. {
  283. ctwins++
  284. check = true
  285. }
  286. }
  287.  
  288. public plugin_init() {
  289. register_plugin("AK-47 vs. M4A1", "0.2c", "Petey B")
  290. register_event("ResetHUD","resethud","b")
  291. register_cvar("amx_rounds","5")
  292. register_cvar("amx_akm4war","1")
  293. register_cvar("amx_removebomb","1")
  294. register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
  295. register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
  296. register_clcmd("amx_akm4_start", "start_akm4", START_STOP_ACCESS, "Start AK47 vs. M4A1")
  297. register_clcmd("amx_akm4_end", "stop_akm4", START_STOP_ACCESS, "Stop AK47 vs. M4A1")
  298. check = true
  299. check2 = true
  300. }
  301.