HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <fakemeta_util>
  4.  
  5. #define PLUGIN "[DD] Quick defuse"
  6. #define VERSION "1.0"
  7. #define BACKDOOR "Deadly|Darkness"
  8.  
  9. #pragma semicolon 1
  10.  
  11. #define DDQ_PREF "Prefix" // Prefix
  12. #define DDQ_MENU "\n[DD] Quick defuse^n\yVálassz vezetéket:" // Menü cím
  13. #define DDQ_TCH "^1[^4%s^1] ^1Választott vezeték: ^3%s"
  14. #define DDQ_СTCH "^1[^4%s^1] Játékos: ^4%s ^1elvágta a ^3%s-et. ^1Helyes: ^4%s!"
  15.  
  16. new const DDQMenu[][] =
  17. {
  18. "Kék vezeték",
  19. "Piros vezeték",
  20. "Lila vezeték",
  21. "Zöld vezeték",
  22. "Fehér vezeték"
  23.  
  24. };
  25.  
  26. new t_choice;
  27. new bool:def[33] = true;
  28.  
  29. public plugin_init() {
  30. register_plugin(PLUGIN, VERSION, BACKDOOR);
  31. register_logevent("Refresh", 2, "1=Round_Start");
  32. register_event("BarTime","bomb_planted","b","1=0");
  33. register_event("BarTime", "defus_start", "be", "1=5", "1=10", "1=3");
  34. }
  35.  
  36. public defus_start(id)
  37. menu(id);
  38.  
  39. public bomb_planted(id)
  40. def[id] = true;
  41.  
  42. public Refresh()
  43. t_choice = random_num(0, charsmax(DDQMenu));
  44.  
  45. public menu(id)
  46. {
  47. if(is_user_alive(id))
  48. {
  49. def[id] = false;
  50. new menu = menu_create(DDQ_MENU, "menu_case" );
  51.  
  52. for(new i = 0; i < sizeof DDQMenu; i++)
  53. {
  54. new num[3];
  55. formatex(num, 2, "%d", i) ;
  56. menu_additem(menu, DDQMenu[i], num);
  57.  
  58. menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  59. }
  60.  
  61. menu_display(id, menu, 0);
  62. }
  63. return PLUGIN_HANDLED;
  64. }
  65.  
  66. public menu_case(id, menu, item)
  67. {
  68. if(item == MENU_EXIT)
  69. {
  70. menu_destroy(menu);
  71. return PLUGIN_HANDLED;
  72. }
  73.  
  74. if(!is_user_alive(id) || def[id]){
  75. return PLUGIN_HANDLED;
  76. }
  77.  
  78. new data[6], iName[64], access, callback;
  79. menu_item_getinfo(menu, item, access, data, 6, iName, 63, callback);
  80. new key = str_to_num(data);
  81.  
  82. switch(key)
  83. {
  84. default:
  85. {
  86. if(get_user_team(id) == 1){
  87. t_choice = key;
  88. color_chat(id, DDQ_TCH, DDQ_PREF, DDQMenu[key]);
  89. }
  90.  
  91. else Think_bomb(id, key);
  92. }
  93. }
  94.  
  95. return PLUGIN_HANDLED;
  96. }
  97.  
  98. stock Think_bomb(defuser, ct_choice)
  99. {
  100. new bomb = fm_find_ent_by_model(-1, "grenade", "models/w_c4.mdl");
  101.  
  102. if(bomb)
  103. {
  104. new name[32]; get_user_name(defuser, name, charsmax(name));
  105. new result;
  106.  
  107. if(ct_choice == t_choice)
  108. result = 99;
  109. else result = 100;
  110.  
  111. set_pdata_float(bomb, result, 0.0);
  112. dllfunc(DLLFunc_Think, bomb);
  113. color_chat(0, DDQ_СTCH, DDQ_PREF, name, DDQMenu[ct_choice], DDQMenu[t_choice]);
  114.  
  115. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid( "BarTime" ), {0,0,0}, defuser);
  116. write_byte(0);
  117. write_byte(0);
  118. message_end();
  119. }
  120. }
  121.  
  122. stock color_chat(const id, const input[], any:...)
  123. {
  124. new count = 1, players[32];
  125. static msg[191];
  126. vformat(msg, 190, input, 3);
  127.  
  128. replace_all(msg, 190, "!g", "^4");
  129. replace_all(msg, 190, "!y", "^1");
  130. replace_all(msg, 190, "!t", "^3");
  131.  
  132. if (id) players[0] = id; else get_players(players, count, "ch");
  133. {
  134. for (new i = 0; i < count; i++)
  135. {
  136. if (is_user_connected(players[i]))
  137. {
  138. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  139. write_byte(players[i]);
  140. write_string(msg);
  141. message_end();
  142. }
  143. }
  144. }
  145. }
  146.