Форумы

Серверы Counter-Strike :: Форумы :: Games :: CS plugins
 
Steal the Bomb
Переход на страницу  [1] 2
Модераторы: kapitowka, A1exseder, McNamara, HuKuToC, Jake_One, Meranpocynep6om, Chaos2Order, FizZ
Автор Добавил
HuKuToC
21.03.2010, 18:33
Redneck


STEAM_0:0:34924066

Нет тимы


ID пользователя #1231
Зарегистрирован: 27.09.2009, 18:37

Сообщений: 1717
Отблагодарен: 187 раза в 146 сообщениях
Репутация: 59
Репутация темы: 0 из 0 голосов

Плагин Steal the Bomb aka Take the Bomb.
Позволяет попросить бомбу у товарища-террориста.
Для это нужно "использовать" несущего бомбу игрока, нажав клавишу использования ("Е" по умолчанию).

У товарища с бомбой появится меню:
1. Отдать
2. Не отдавать
3. Не отдавать и не спрашивать более

Если не выбрать ни один из пунктов меню, бомба перейдет к запрашивающему ее игроку автоматически через небольшой промежуток времени.


  1. /* AMX Mod X
  2. *   Steal the Bomb
  3. *
  4. * (c) Copyright 2006 by VEN/Satan
  5. *
  6. * This file is provided as is (no warranties)
  7. *
  8. *       - to take the bomb:
  9. *               - come close to the carrier (distance < 50, configurable)
  10. *               - aim at the carrier
  11. *               - USE the carrier (i.e. "+use" command which usually bound to the "E" key)
  12. *               - appropriate barney speak sound would be played:
  13. *                       - for both persons: to indicate that menu is opened
  14. *                       - for recipient: to indicate that bomb queries is restricted by the current carrier
  15. *       - bomb carrier's menu contains 3 items:
  16. *               - 1. "Yes": transfers the bomb to the recipient (transfers, not just drops)
  17. *               - 2. "No": refuses to transfer the bomb
  18. *               - 3. "No, don't ask me again": refuses and disables menu queries for that carrier for the current round
  19. *               - after selection appropriate barney speak sound would be played for recipient to indicate the carrier's choice
  20. *               - menu display time is 7 seconds (configurable)
  21. *               - if no menu item is selected while menu is opened, bomb would be transferred to the recipient automatically
  22. *       - plugin will have no effect at non-bomb maps
  23. *       - fakemeta module required
  24. *
  25. *       Credits:
  26. *       ^_^Satan^_^: Idea, original coding.
  27. *       VEN: This coding :P
  28. *
  29. *       Versions:
  30. *               3.2 - backpack transfer method improved
  31. *               3.1 - now it's not possible to "ask" if bomb is planting
  32. *                     now "ask" restriction clears after bomb drop
  33. *                     get carrier id method changed to more efficient one
  34. *               3.0 - now fakemeta module instead of engine required
  35. *                     prethink method changed to use-sound hook
  36. *                     some other changes
  37. */
  38.  
  39. #include <amxmodx>#include <fakemeta>// plugin's main information
  40. #define PLUGIN_NAME "Steal the Bomb"
  41. #define PLUGIN_VERSION "3.2"
  42. #define PLUGIN_AUTHOR "VEN/Satan"
  43.  
  44. #define MAX_DISTANCE 50
  45. #define MENU_TIME 7
  46. #define MENU_KEYS (1<<0)|(1<<1)|(1<<2)
  47.  
  48. new MENU_HEADER[] = "Give the bomb?"
  49. new MENU_BODY[] = "\yGive the bomb?^n^n\w1. Yes^n2. No^n3. No, don't ask me again^n"
  50.  
  51. #define TASK_ID 594753
  52. #define TEAM_T 1
  53.  
  54. #define IN_USE (1<<5)
  55. #define FL_ONGROUND (1<<9)
  56.  
  57. new SOUND_MENU[] = "spk barney/thinking"
  58. new SOUND_YES[] = "spk barney/yup"
  59. new SOUND_NO[] = "spk barney/nope"
  60. new SOUND_DONT[] = "spk barney/dontaskme"
  61.  
  62. new USE_SOUND[] = "common/wpn_denyselect.wav"
  63.  
  64. new DROP[] = "drop"
  65. new WEAPON[] = "weapon_c4"
  66. new CLASSNAME[] = "classname"
  67.  
  68. new g_stealer
  69. new g_carrier
  70.  
  71. new bool:g_dontask
  72. new bool:g_planting
  73.  
  74. new g_maxplayers
  75.  
  76. public plugin_init() {
  77.         register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
  78.  
  79.         if (!engfunc(EngFunc_FindEntityByString, -1, CLASSNAME, "func_bomb_target"))
  80.                 return
  81.  
  82.         register_event("WeapPickup", "event_got_bomb", "be", "1=6")
  83.         register_event("BarTime", "event_bar_time", "be")
  84.         register_event("TextMsg", "clear", "bc", "2=#Game_bomb_drop")
  85.         register_event("TextMsg", "clear", "a", "2=#Bomb_Planted")
  86.         register_event("HLTV", "clear", "a", "1=0", "2=0")
  87.  
  88.         register_forward(FM_EmitSound, "forward_emit_sound")
  89.  
  90.         register_menucmd(register_menuid(MENU_HEADER), MENU_KEYS, "menu_give_bomb")
  91.  
  92.         g_maxplayers = get_maxplayers()
  93. }
  94.  
  95. public forward_emit_sound(id, channel, sound[]) {
  96.         if (id > g_maxplayers || !id || !equali(sound, USE_SOUND) || !g_carrier || g_planting || !is_user_alive(id) ||
  97.         get_user_team(id) != TEAM_T || !(pev(id, pev_button) &amp; IN_USE) || task_exists(TASK_ID))
  98.                 return FMRES_IGNORED
  99.  
  100.         new id2, body, Float:distance = get_user_aiming(id, id2, body)
  101.         if (id2 != g_carrier || !is_user_alive(id2) || distance > MAX_DISTANCE)
  102.                 return FMRES_IGNORED
  103.  
  104.         if (g_dontask) {
  105.                 client_cmd(id, SOUND_DONT)
  106.                 return FMRES_SUPERCEDE
  107.         }
  108.  
  109.         g_stealer = id
  110.         set_task(float(MENU_TIME), "task_bomb_drop", TASK_ID)
  111.  
  112.         client_cmd(id, SOUND_MENU)
  113.         client_cmd(id2, SOUND_MENU)
  114.         show_menu(id2, MENU_KEYS, MENU_BODY, MENU_TIME)
  115.  
  116.         return FMRES_SUPERCEDE
  117. }
  118.  
  119. public menu_give_bomb(id, key) {
  120.         if (id != g_carrier || !check())
  121.                 return PLUGIN_HANDLED
  122.  
  123.         clear_task()
  124.  
  125.         switch (key) {
  126.                 case 0: {
  127.                         new stealer = g_stealer
  128.                         if (transfer())
  129.                                 client_cmd(stealer, SOUND_YES)
  130.                 }
  131.                 case 1: {
  132.                         client_cmd(g_stealer, SOUND_NO)
  133.                 }
  134.                 case 2: {
  135.                         g_dontask = true
  136.                         client_cmd(g_stealer, SOUND_DONT)
  137.                 }
  138.         }
  139.  
  140.         return PLUGIN_HANDLED
  141. }
  142.  
  143. public task_bomb_drop() {
  144.         if (!g_planting && check())
  145.                 transfer()
  146. }
  147.  
  148. bool:check() {
  149.         if (!is_user_alive(g_stealer) || !is_user_alive(g_carrier) || get_user_team(g_stealer) != TEAM_T)
  150.                 return false
  151.  
  152.         return true
  153. }
  154.  
  155. bool:transfer() {
  156.         new stealer = g_stealer
  157.         engclient_cmd(g_carrier, DROP, WEAPON)
  158.         new c4 = engfunc(EngFunc_FindEntityByString, -1, CLASSNAME, WEAPON)
  159.         if (!c4)
  160.                 return false
  161.  
  162.         new backpack = pev(c4, pev_owner)
  163.         if (backpack <= g_maxplayers)
  164.                 return false
  165.  
  166.         set_pev(backpack, pev_flags, pev(backpack, pev_flags) | FL_ONGROUND)
  167.         dllfunc(DLLFunc_Touch, backpack, stealer)
  168.  
  169.         return true
  170. }
  171.  
  172. clear_task() {
  173.         if (task_exists(TASK_ID))
  174.                 remove_task(TASK_ID)
  175. }
  176.  
  177. public event_got_bomb(id) {
  178.         g_carrier = id
  179. }
  180.  
  181. public event_bar_time(id) {
  182.         if (id == g_carrier)
  183.                 g_planting = bool:read_data(1)
  184. }
  185.  
  186. public clear() {
  187.         clear_task()
  188.         g_stealer = 0
  189.         g_carrier = 0
  190.         g_dontask = false
  191.         g_planting = false
  192. }
  193.  


Как вам?Удобный плагин, чтобы забрать плант у бота или афк и т.п.



[ Редактирование 21.03.2010, 18:36 ]

Redneck
Наверх
Сайт
detur
21.03.2010, 18:38
Даже мартышки играют в CS



A Hax MHe team?


ID пользователя #963
Зарегистрирован: 09.05.2009, 14:04

Сообщений: 1309
Отблагодарен: 67 раза в 58 сообщениях
Репутация: 52

Мы с Бисквитом уже испытывали этот плагин. Он не хочет его ставить ...






Наверх
HuKuToC
21.03.2010, 18:39
Redneck


STEAM_0:0:34924066

Нет тимы


ID пользователя #1231
Зарегистрирован: 27.09.2009, 18:37

Сообщений: 1717
Отблагодарен: 187 раза в 146 сообщениях
Репутация: 59

а что в нем не так?




Redneck
Наверх
Сайт
detur
21.03.2010, 18:42
Даже мартышки играют в CS



A Hax MHe team?


ID пользователя #963
Зарегистрирован: 09.05.2009, 14:04

Сообщений: 1309
Отблагодарен: 67 раза в 58 сообщениях
Репутация: 52

HuKuToC написал(а) ...

а что в нем не так?


Плагин оч нужный. Я незнаю спроси у Бисквита.






Наверх
HuKuToC
21.03.2010, 18:44
Redneck


STEAM_0:0:34924066

Нет тимы


ID пользователя #1231
Зарегистрирован: 27.09.2009, 18:37

Сообщений: 1717
Отблагодарен: 187 раза в 146 сообщениях
Репутация: 59

подождем Печенько значит =)




Redneck
Наверх
Сайт
Jake_One
21.03.2010, 19:37
!magine

418803222 статус Skype


TEAM LOMACHENKO


ID пользователя #1812
Зарегистрирован: 18.03.2010, 11:00

Сообщений: 1147
Отблагодарен: 98 раза в 80 сообщениях
Репутация: 13

Было бы круто . -)




I guess we are who we are
Наверх
kapitowka
21.03.2010, 19:53
FreeBSD The Power To Serve

статус Skype
STEAM_0:0:34602107

[RAT]


ID пользователя #1
Зарегистрирован: 01.01.1970, 03:00

Сообщений: 3361
Отблагодарен: 255 раза в 192 сообщениях
Репутация: 64

Думаю спомощью него можно читерить так сказать




-------------------------------------------------------
Правила сервера

Банлист
Наверх
Сайт
HuKuToC
21.03.2010, 19:59
Redneck


STEAM_0:0:34924066

Нет тимы


ID пользователя #1231
Зарегистрирован: 27.09.2009, 18:37

Сообщений: 1717
Отблагодарен: 187 раза в 146 сообщениях
Репутация: 59

как ?




Redneck
Наверх
Сайт
detur
21.03.2010, 20:05
Даже мартышки играют в CS



A Hax MHe team?


ID пользователя #963
Зарегистрирован: 09.05.2009, 14:04

Сообщений: 1309
Отблагодарен: 67 раза в 58 сообщениях
Репутация: 52

redacid написал(а) ...

Думаю спомощью него можно читерить так сказать


Там если игрок не соглашается то в течении нескольких секунды бомба передается. Так что нельзя передавать на большом расстоянии).






Наверх
HuKuToC
21.03.2010, 20:09
Redneck


STEAM_0:0:34924066

Нет тимы


ID пользователя #1231
Зарегистрирован: 27.09.2009, 18:37

Сообщений: 1717
Отблагодарен: 187 раза в 146 сообщениях
Репутация: 59

по-моему плагин актуальный, удобный и продуманый.




Redneck
Наверх
Сайт
Переход на страницу  [1] 2  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System