HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <hamsandwich>
  4. #include <fakemeta>
  5. #include <cstrike>
  6. #include <fun>
  7. #include <colorchat>
  8.  
  9. #define menunev "[szervernév]\y Freerun menü" // a menü elsõ sora (név)
  10. #define szamszin "\w" // fehér
  11. #define szoveg1 "^1Megöltél egy CT-t ezért visszatöltöttük a hp-d 100-ra!" //Ha a t megöl egy ct-t ezt az üzenetet kapja!
  12. #define szoveg3 "^1FreeRun van! Ilyenkor nem használhatsz csapdákat!" // feerunkor ha a ct gombot nyom ezt az üzenetet kapja!
  13. #define szoveg4 "^1Ezt a csapdát már használtad!" // ha nincs freerun és a ct már használta azt a csapdát ezt az üzenetet kapja
  14. #define szoveg5 "^1Vigyázz CT ként csak 3× használhatsz gombokat!!" // ct leszabályzott gombnyomásra való figyelmeztetések:
  15. #define szoveg6 "^1Vigyázz CT ként csak 3× (már csak 2x) használhatsz gombokat!!"
  16. #define szoveg7 "^1Vigyázz CT ként csak 3× (már csak 1x) használhatsz gombokat!!"
  17. #define szoveg8 "^1Te sajnos ebben a körben több gombot nem használhatsz!" // ct 4. gombhasználata után ezt az üzenetet kapja
  18. #define szoveg2 "^1A terrorista nem választott! Nincs free kör!" // ha afk a terrorista akkor automata nincs freerun (15 sec után), ilyenkor errõl ezt az információt kapjuk"
  19. #define szoveg9 "^1A terrorista döntött! Ez a kör freerun lesz!" // a terrorista döntésénél való visszejelzés (freerun)
  20. #define szoveg10 "^1A terrorista döntött! Ez a kör nem lesz freerun!" // a terrorista döntésénél való visszejelzés (nincs freerun)
  21. #define szoveg11 "^1Ez a kör freerun! (Kés/Ruli)" //kör lekérdezésekor ezt kapjuk, ha freerun van.
  22. #define szoveg12 "^1Ez a kör nem freerun (Szabad ölni a Terroirstát!)" //kör lekérdezésekor ezt kapjuk, ha nincs freerun.
  23. #define szoveg13 "^1A terrorista döntött! Ez a kör freerun lesz (RULI!)" // ha amx_dr_matchmode cvar értéke 1, akkor ezeket az üzeneteket írja ki (freerun usp-vel)
  24. #define szoveg14 "^1A terrorista döntött! Ez a kör freerun lesz (KÉS!)" // ha amx_dr_matchmode cvar értéke 1, akkor ezeket az üzeneteket írja ki (freerun késsel)
  25. #define szoveg15 "^1Ez a kör freerun! (KÉS!)" //ha amx_dr_matchmode cvar értéke 1, akkor ezt írja ki ha kés kör van
  26. #define szoveg16 "^1Ez a kör freerun! (RULI!)" //ha amx_dr_matchmode cvar értéke 1, akkor ezt írja ki ha ruli kör van (USP)
  27.  
  28. #define MAX_BUTTONS 3276800
  29.  
  30. new g_menu;
  31. new g_freemenu;
  32. new g_bEnable;
  33. new free = 0
  34. new valasztott;
  35. new g_used[MAX_BUTTONS];
  36. new g_usedid[32];
  37. new prefix[] = "[szervernév]";
  38. new knife = 0;
  39. new g_cvar_hpup;
  40. new g_cvar_freebuttonst;
  41. new g_cvar_freebuttonsct;
  42. new g_cvar_freerunperknifematch;
  43. new g_cvar_pickupinfreerun;
  44.  
  45. public plugin_init() {
  46. register_plugin("FreeRun menu", "1.2", "Random");
  47. g_cvar_hpup = register_cvar("amx_dr_hpup","1"); // ha a terrorista freerun közben megöl egy ct-t és kevesebb a hp-ja mint 100 akkor töltse-e vissza 100-ra? (0- ne, 1, igen)
  48. g_cvar_freebuttonst = register_cvar("amx_dr_tfreebuttons", "1") // Terrorista gombhasználatának szabályzása, ha freerun van nem tudjon gombot nyomni ha nincs freerun csak 1x tudjon egy gombot megnyomni, (0- ne legyen szabályozva, 1-legyen szabályozva)
  49. g_cvar_freebuttonsct = register_cvar("amx_dr_ctfreebuttons", "1") // CT gombhasználatának korlátozása, csak 3x nyomhat gombot egy kör alatt (0-ne legyen korlátozva, 1-legyen korlátozva)
  50. g_cvar_freerunperknifematch = register_cvar("amx_dr_matchmode", "1") //Freerunon belül külön válaszható legyen-e a kés és a ruli vagy egy menüponton belül legyen csak simán freerun? (0-egy menüpont (freerun), 1-külön ruli és külön kés kör)
  51. g_cvar_pickupinfreerun = register_cvar("amx_dr_pickup", "1") // Fegyverfelvétel szabályzása (0- bármikor tudjanak felvenni fegyvert, 1-freerun közben nemtudnak felvenni fegyvert)
  52. RegisterHam(Ham_Spawn,"player","openmenu", 1);
  53. RegisterHam( Ham_Touch, "armoury_entity", "FwdHamPlayerPickup" );
  54. RegisterHam( Ham_Touch, "weaponbox", "FwdHamPlayerPickup" );
  55. RegisterHam(Ham_Use, "func_button", "fwButtonUsed");
  56. RegisterHam(Ham_Use, "func_rot_button", "fwButtonUsed");
  57. RegisterHam(Ham_Use, "button_target", "fwButtonUsed");
  58. register_clcmd("say /fr", "showagain")
  59. register_clcmd("say fr", "showagain")
  60. register_clcmd("say /free", "showagain")
  61. register_clcmd("say free", "showagain")
  62. register_clcmd("say /kor", "checkfree")
  63. register_clcmd("say kor", "checkfree")
  64. register_clcmd("say /kör", "checkfree")
  65. register_clcmd("say kör", "checkfree")
  66. register_event( "DeathMsg" , "DeathMsgEvent" , "a" );
  67. }
  68.  
  69. public DeathMsgEvent()
  70. {
  71. if (get_pcvar_num(g_cvar_hpup) == 1) {
  72. new iKiller = read_data( 1 );
  73. new health = get_user_health(iKiller)
  74. new iVictim = read_data(2)
  75. if (get_user_team(iVictim) == 1) {
  76. client_cmd(iVictim, "slot3");
  77. }
  78.  
  79. if (get_user_team(iKiller) == 1 && free == 1 ) {
  80. if (health < 100){
  81. set_user_health(iKiller, 100)
  82. ColorChat(iKiller, GREEN, "%s %s", prefix, szoveg1)
  83. }
  84. }
  85. }
  86. }
  87. public showagain(id) {
  88. if (valasztott == 0) {
  89. menu_display(id, g_menu, 0)
  90. }
  91. }
  92.  
  93. public openmenu(id) {
  94. g_usedid[id] = 0;
  95. if(get_user_team(id) == 1){
  96. g_menu = menu_create(menunev, "freemenu")
  97. g_freemenu = menu_create(menunev, "freerunmenu");
  98. create_menu();
  99. resetButtons();
  100. free = 0
  101. valasztott = 0
  102. g_bEnable = false;
  103. menu_display(id, g_menu, 0)
  104. set_task(15.0, "stopshow", id)
  105. }
  106. return PLUGIN_HANDLED;
  107. }
  108. public stopshow(id) {
  109. if (get_user_team(id) == 1){
  110. if (free == 0) {
  111. client_cmd(id, "slot3");
  112. }
  113. }
  114. }
  115. public stopdraw(id) {
  116. if (get_user_team(id) == 1) {
  117. ColorChat(0, GREEN, "%s %s", prefix, szoveg2)
  118. free = 2
  119. valasztott = 1
  120. }
  121. }
  122.  
  123. public resetButtons() {
  124. for(new i=0;i<MAX_BUTTONS;i++){
  125. g_used[i] = 0;
  126. }
  127. }
  128.  
  129. public fwButtonUsed(this, id, idactivator, use_type, Float:value){
  130. if(get_user_team(id) == 1 && get_pcvar_num(g_cvar_freebuttonst) == 1 ){
  131. if(id!=idactivator) return HAM_IGNORED;
  132. if (free == 1) {
  133. ColorChat(id,GREEN, "%s %s", prefix, szoveg3);
  134. return HAM_SUPERCEDE;
  135. }
  136. else if ( free == 2 && g_used[this] != 1) {
  137. g_used[this] = 1;
  138. return HAM_IGNORED;
  139. }
  140. else if (free == 2 && g_used[this] <= 1){
  141. ColorChat(id,GREEN, "%s %s", prefix, szoveg4);
  142. return HAM_SUPERCEDE;
  143. }
  144. }
  145. else if (get_user_team(id) == 2 && get_pcvar_num(g_cvar_freebuttonsct) == 1 )
  146. {
  147. if (g_usedid[id] == 0 )
  148. {
  149. ColorChat(id,GREEN, "%s %s", prefix, szoveg5);
  150. g_usedid[idactivator] = 1
  151. return HAM_IGNORED;
  152. }
  153. else if (g_usedid[id] == 1)
  154. {
  155. ColorChat(id,GREEN, "%s %s", prefix, szoveg6);
  156. g_usedid[idactivator] = 2
  157. return HAM_IGNORED;
  158. }
  159. else if (g_usedid[idactivator] == 2)
  160. {
  161. ColorChat(id,GREEN, "%s %s", prefix, szoveg7);
  162. g_usedid[idactivator] = 3
  163. return HAM_IGNORED;
  164. }
  165. else if (g_usedid[id] == 3)
  166. {
  167. ColorChat(id,GREEN, "%s %s", prefix, szoveg8);
  168. return HAM_SUPERCEDE;
  169. }
  170. }
  171. return HAM_IGNORED;
  172. }
  173. public select(id, version) {
  174. if (get_pcvar_num(g_cvar_freerunperknifematch) == 0) {
  175. if (get_user_team(id) == 1) {
  176. menu_destroy(g_freemenu)
  177. if(version == 1) {
  178. free = 1
  179. valasztott = 1
  180. g_bEnable = true;
  181. ColorChat(0, GREEN, "%s %s", prefix, szoveg9)
  182. new players[32], num;
  183. get_players(players, num, "a");
  184.  
  185. for(new i=0;i<num;i++)
  186.  
  187. strip_user_weapons(players[i])
  188. for(new i=0;i<num;i++)
  189. give_item(players[i], "weapon_knife")
  190. for(new i=0;i<num;i++)
  191. give_item(players[i], "weapon_usp")
  192. for(new i=0;i<num;i++)
  193. cs_set_user_bpammo(players[i], CSW_USP, 100)
  194. }
  195. else if(version == 2) {
  196. free = 2
  197. valasztott = 1
  198. g_bEnable = false;
  199. ColorChat(0, GREEN, "%s %s", prefix, szoveg10)
  200. }
  201. }
  202. }
  203. else
  204. {
  205. if (get_user_team(id) == 1) {
  206. if(version == 1) {
  207. menu_display(id, g_freemenu, 0)
  208. valasztott = 1
  209. }
  210. else if(version == 2) {
  211. free = 2
  212. valasztott = 1
  213. g_bEnable = false;
  214. ColorChat(0, GREEN, "%s %s", prefix, szoveg10)
  215. }
  216. else if(version == 3) {
  217. free = 1
  218. knife = 0
  219. valasztott = 1
  220. g_bEnable = true;
  221. ColorChat(0, GREEN, "%s %s", prefix, szoveg13)
  222. new players[32], num;
  223. get_players(players, num, "a");
  224.  
  225. for(new i=0;i<num;i++)
  226.  
  227. strip_user_weapons(players[i])
  228. for(new i=0;i<num;i++)
  229. give_item(players[i], "weapon_knife")
  230. for(new i=0;i<num;i++)
  231. give_item(players[i], "weapon_usp")
  232. for(new i=0;i<num;i++)
  233. cs_set_user_bpammo(players[i], CSW_USP, 100)
  234. }
  235. else if(version == 4) {
  236. free = 1
  237. knife = 1
  238. valasztott = 1
  239. g_bEnable = true;
  240. ColorChat(0, GREEN, "%s %s", prefix, szoveg14)
  241. new players[32], num;
  242. get_players(players, num, "a");
  243. for(new i=0;i<num;i++)
  244. strip_user_weapons(players[i])
  245. for(new i=0;i<num;i++)
  246. give_item(players[i], "weapon_knife")
  247. }
  248. }
  249. }
  250. }
  251. public checkfree(id) {
  252. if (get_pcvar_num(g_cvar_freerunperknifematch) == 0) {
  253. if (free == 1 ) {
  254. ColorChat(id, GREEN, "%s %s",prefix, szoveg11)
  255. }
  256. else
  257. {
  258. ColorChat(id, GREEN, "%s %s",prefix, szoveg12)
  259. }
  260. }
  261. else if(get_pcvar_num(g_cvar_freerunperknifematch) == 1){
  262. if (free == 1 && knife == 1) {
  263. ColorChat(id, GREEN, "%s %s",prefix, szoveg15)
  264. }
  265. else if(free == 1 && knife == 0)
  266. {
  267. ColorChat(id, GREEN, "%s %s",prefix, szoveg16)
  268. }
  269. else
  270. {
  271. ColorChat(id, GREEN, "%s %s",prefix, szoveg12)
  272. }
  273. }
  274. }
  275. public create_menu() {
  276. menu_additem(g_menu, "\yLegyen FreeRun", "", 0);
  277. menu_additem(g_menu, "\yNe legyen FreeRun", "", 0);
  278. menu_additem(g_menu, "\rKilépés!", "", 0)
  279. menu_setprop(g_menu, MPROP_EXIT, MEXIT_NEVER);
  280. menu_setprop(g_menu, MPROP_PERPAGE, 0);
  281. menu_setprop(g_menu, MPROP_NOCOLORS, 1);
  282. menu_setprop(g_menu, MPROP_NUMBER_COLOR, szamszin);
  283. menu_additem(g_freemenu, "\yRuli kör legyen", "", 0);
  284. menu_additem(g_freemenu, "\yKés kör legyen", "", 0);
  285. menu_setprop(g_freemenu, MPROP_EXIT, MEXIT_ALL);
  286. menu_setprop(g_freemenu, MPROP_PERPAGE, 0);
  287. menu_setprop(g_freemenu, MPROP_NOCOLORS, 1);
  288. menu_setprop(g_freemenu, MPROP_NUMBER_COLOR, szamszin);
  289. }
  290.  
  291. public freemenu(id, menu, item)
  292. {
  293. new command[6], name[64], access, callback;
  294.  
  295. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  296.  
  297. switch(item)
  298. {
  299. case 0: select(id, 1);
  300. case 1: select(id, 2);
  301. case 2: stopdraw(id);
  302. }
  303.  
  304. menu_cancel(menu);
  305.  
  306. return PLUGIN_HANDLED;
  307. }
  308. public freerunmenu(id,menu, item)
  309. {
  310. if(item == MENU_EXIT)
  311. {
  312. menu_cancel(id);
  313. return PLUGIN_HANDLED;
  314. }
  315.  
  316. new command[6], name[64], access, callback;
  317.  
  318. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  319.  
  320. switch(item)
  321. {
  322. case 0: select(id, 3);
  323. case 1: select(id, 4);
  324. }
  325.  
  326. menu_cancel(menu);
  327.  
  328. return PLUGIN_HANDLED;
  329. }
  330. public FwdHamPlayerPickup( iEntity, id ) {
  331. if (get_pcvar_num(g_cvar_pickupinfreerun) == 1) {
  332. return g_bEnable ? HAM_SUPERCEDE : HAM_IGNORED
  333. }
  334. else
  335. {
  336. return HAM_IGNORED;
  337. }
  338. return HAM_IGNORED;
  339. }
  340. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  341. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  342. */
  343.