HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <hamsandwich>
  4. #include <fakemeta>
  5.  
  6. #define keszito "Starsailor"
  7. #define pev_no_open pev_iuser4
  8.  
  9. new pCvarEnabled
  10. new pCvarBlockDoorButtons
  11. new g_iFwdSpawn
  12.  
  13. public plugin_init()
  14. {
  15. unregister_forward(FM_Spawn,g_iFwdSpawn)
  16.  
  17. if(engfunc(EngFunc_FindEntityByString, FM_NULLENT, "classname","func_door_rotating") || engfunc(EngFunc_FindEntityByString, FM_NULLENT, "classname","func_door"))
  18. {
  19. register_plugin("(ON) Open doors with a shot", "1.0", "Starsailor")
  20.  
  21. register_cvar("open_doors_version","1.0",FCVAR_SERVER|FCVAR_SPONLY)
  22.  
  23. pCvarEnabled = register_cvar("od_enabled", "1")
  24. pCvarBlockDoorButtons = register_cvar("od_filterdoors","0")
  25.  
  26. RegisterHam(Ham_TraceAttack, "func_door_rotating", "ham_open_door")
  27. RegisterHam(Ham_TraceAttack, "func_door", "ham_open_door")
  28.  
  29. }
  30. else
  31. {
  32. register_plugin("(OFF) Open doors with a shot", "1.0", "Starsailor")
  33. pause("ad")
  34. }
  35. }
  36.  
  37. public plugin_precache()
  38. {
  39. g_iFwdSpawn = register_forward(FM_Spawn,"fw_Spawn")
  40. }
  41.  
  42. public ham_open_door(iEnt, iAttacker, Float:fDamage, Float:vDirection[3], TraceHandle, iDamageBits)
  43. {
  44. if(!get_pcvar_num(pCvarEnabled))
  45. {
  46. return HAM_IGNORED
  47. }
  48.  
  49. if(get_pcvar_num(pCvarBlockDoorButtons) && pev(iEnt,pev_no_open))
  50. {
  51. return HAM_IGNORED
  52. }
  53.  
  54. dllfunc(DLLFunc_Use, iEnt, iAttacker)
  55. return HAM_IGNORED
  56. }
  57.  
  58. public fw_Spawn(iEnt)
  59. {
  60. if(!pev_valid(iEnt))
  61. {
  62. return FMRES_IGNORED
  63. }
  64.  
  65. new szClassName[32]
  66. pev(iEnt,pev_classname,szClassName,charsmax(szClassName))
  67.  
  68. if(!equal(szClassName,"func_button"))
  69. {
  70. return FMRES_IGNORED
  71. }
  72.  
  73. new szTargetName[32]
  74. new iTarget
  75. pev(iEnt, pev_target, szTargetName,charsmax(szTargetName))
  76.  
  77. iTarget = 0
  78. new szClassName2[32]
  79. while((iTarget = engfunc(EngFunc_FindEntityByString, iTarget, "targetname", szTargetName)))
  80. {
  81. pev(iTarget,pev_classname,szClassName2,charsmax(szClassName2))
  82.  
  83. if(equal(szClassName2,"func_door") || equal(szClassName2,"func_door_rotating"))
  84. {
  85. set_pev(iTarget,pev_no_open,1)
  86. }
  87. }
  88.  
  89. return FMRES_IGNORED
  90. }
  91. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  92. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
  93. */
  94.