#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#define keszito "Starsailor"
#define pev_no_open pev_iuser4
new pCvarEnabled
new pCvarBlockDoorButtons
new g_iFwdSpawn
public plugin_init()
{
unregister_forward(FM_Spawn,g_iFwdSpawn)
if(engfunc(EngFunc_FindEntityByString, FM_NULLENT, "classname","func_door_rotating") || engfunc(EngFunc_FindEntityByString, FM_NULLENT, "classname","func_door"))
{
register_plugin("(ON) Open doors with a shot", "1.0", "Starsailor")
register_cvar("open_doors_version","1.0",FCVAR_SERVER|FCVAR_SPONLY)
pCvarEnabled = register_cvar("od_enabled", "1")
pCvarBlockDoorButtons = register_cvar("od_filterdoors","0")
RegisterHam(Ham_TraceAttack, "func_door_rotating", "ham_open_door")
RegisterHam(Ham_TraceAttack, "func_door", "ham_open_door")
}
else
{
register_plugin("(OFF) Open doors with a shot", "1.0", "Starsailor")
pause("ad")
}
}
public plugin_precache()
{
g_iFwdSpawn = register_forward(FM_Spawn,"fw_Spawn")
}
public ham_open_door(iEnt, iAttacker, Float:fDamage, Float:vDirection[3], TraceHandle, iDamageBits)
{
if(!get_pcvar_num(pCvarEnabled))
{
return HAM_IGNORED
}
if(get_pcvar_num(pCvarBlockDoorButtons) && pev(iEnt,pev_no_open))
{
return HAM_IGNORED
}
dllfunc(DLLFunc_Use, iEnt, iAttacker)
return HAM_IGNORED
}
public fw_Spawn(iEnt)
{
if(!pev_valid(iEnt))
{
return FMRES_IGNORED
}
new szClassName[32]
pev(iEnt,pev_classname,szClassName,charsmax(szClassName))
if(!equal(szClassName,"func_button"))
{
return FMRES_IGNORED
}
new szTargetName[32]
new iTarget
pev(iEnt, pev_target, szTargetName,charsmax(szTargetName))
iTarget = 0
new szClassName2[32]
while((iTarget = engfunc(EngFunc_FindEntityByString, iTarget, "targetname", szTargetName)))
{
pev(iTarget,pev_classname,szClassName2,charsmax(szClassName2))
if(equal(szClassName2,"func_door") || equal(szClassName2,"func_door_rotating"))
{
set_pev(iTarget,pev_no_open,1)
}
}
return FMRES_IGNORED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/