HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <hamsandwich>
  4.  
  5. #define PLUGIN "Bomb Defuse"
  6. #define VERSION "1.2"
  7. #define AUTHOR "Starsailor"
  8.  
  9. new HamHook:g_iHamForward
  10.  
  11. new g_C4Ent, g_iTime = -1
  12.  
  13. new Float:fC4Timer
  14. new pEnabled
  15. new bIsEnabled
  16. new bForwardEnabled
  17.  
  18. public plugin_init()
  19. {
  20. new szPluginName[32]
  21.  
  22. if(engfunc(EngFunc_FindEntityByString, -1, "classname","func_bomb_target") || engfunc(EngFunc_FindEntityByString, -1, "classname","info_bomb_target"))
  23. {
  24. register_event("BarTime", "event_defusing", "be", "1=5", "1=10")
  25.  
  26. register_logevent("logevent_bomb_planted", 3, "2=Planted_The_Bomb")
  27. register_logevent("logevent_bomb_defused", 3, "2=Defused_The_Bomb")
  28.  
  29. register_event("HLTV","event_new_round","a","1=0","2=0")
  30.  
  31.  
  32. g_iHamForward = RegisterHam(Ham_Think, "grenade", "C4_Think", 1)
  33.  
  34. pEnabled = register_cvar("bdp_enabled","1")
  35. register_cvar("bdp_version",VERSION,FCVAR_SERVER|FCVAR_SPONLY)
  36.  
  37. format(szPluginName,charsmax(szPluginName),"%s (On)",PLUGIN)
  38.  
  39. register_dictionary("bomb_defuse_predictions.txt")
  40.  
  41. register_plugin(szPluginName,VERSION,AUTHOR)
  42. }
  43. else
  44. {
  45. format(szPluginName,charsmax(szPluginName),"%s (Off)",PLUGIN)
  46.  
  47. register_plugin(szPluginName, VERSION, AUTHOR)
  48.  
  49. pause("ad")
  50.  
  51. return
  52. }
  53.  
  54.  
  55. }
  56.  
  57. public event_defusing(id)
  58. {
  59. if(!bIsEnabled)
  60. {
  61. return
  62. }
  63.  
  64. const m_flDefuseCountDown = 99
  65.  
  66. new Float:flTime = get_pdata_float(g_C4Ent, m_flDefuseCountDown,5) - get_gametime()
  67.  
  68. if(g_iTime > floatround(flTime))
  69. {
  70. client_print(id,print_center,"%L",id,"YOU_HAVE_TIME")
  71. }
  72. else
  73. {
  74. client_print(id,print_center,"%L",id,"YOU_DONT_HAVE_TIME")
  75. }
  76.  
  77.  
  78. }
  79.  
  80. public event_new_round()
  81. {
  82. if((bIsEnabled = get_pcvar_num(pEnabled)) == 1 || bForwardEnabled)
  83. {
  84. DisableHamForward(g_iHamForward)
  85. bForwardEnabled = 0
  86. g_iTime = -1
  87. }
  88.  
  89. }
  90.  
  91. public logevent_bomb_planted()
  92. {
  93. if(bIsEnabled)
  94. {
  95. new iC4Ent = FM_NULLENT
  96.  
  97. const m_bIsC4 = 96
  98. const m_flC4Blow = 100
  99.  
  100. while((iC4Ent = engfunc(EngFunc_FindEntityByString, iC4Ent, "classname","grenade")))
  101. {
  102. if(get_pdata_int(iC4Ent, m_bIsC4, 5) & (1<<8))
  103. {
  104. g_C4Ent = iC4Ent
  105.  
  106. fC4Timer = get_pdata_float(g_C4Ent, m_flC4Blow, 5)
  107.  
  108. EnableHamForward(g_iHamForward)
  109.  
  110. bForwardEnabled = 1
  111.  
  112. return
  113. }
  114. }
  115.  
  116. }
  117. }
  118.  
  119. public logevent_bomb_defused()
  120. {
  121. if(bIsEnabled || bForwardEnabled)
  122. {
  123. DisableHamForward(g_iHamForward)
  124. bForwardEnabled = 0
  125. }
  126. }
  127.  
  128. public C4_Think(iC4)
  129. {
  130. if(g_C4Ent != iC4)
  131. {
  132. return
  133. }
  134.  
  135. static Float:flTime, iTime
  136.  
  137. flTime = fC4Timer - get_gametime()
  138. iTime = floatround(flTime, floatround_ceil)
  139.  
  140. if(g_iTime != iTime)
  141. {
  142. g_iTime = iTime
  143. }
  144. }
  145. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  146. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
  147. */
  148.