#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 }
*/