#pragma semicolon 1
#include <sourcemod>
#include <sdktools_entoutput>
#include <sdktools_entinput>
public Plugin:myinfo =
{
name = "Open Door Time",
author = "wS / Schmidt",
version = "1.0",
url = "http://world-source.ru/"
};
new Handle:open_door_time;
new Handle:g_AddOutput_Array;
public OnPluginStart()
{
open_door_time = CreateConVar("open_door_time", "1.0", "Через сколько секунд закрываются двери после открытия", _, true, 0.0);
g_AddOutput_Array = CreateArray(1);
new const String:doors[][] =
{
"func_door",
"func_door_rotating",
"momentary_door",
"prop_door_rotating"
};
new doors_count = sizeof(doors);
for (new i = 0; i < doors_count; i++)
{
HookEntityOutput(doors[i], "OnFullyOpen", EntityOutput:Event_DoorOpen);
}
HookEvent("round_start", round_start, EventHookMode_PostNoCopy);
}
public round_start(Handle:event, const String:name[], bool:silent)
{
ClearArray(g_AddOutput_Array);
}
public Event_DoorOpen(const String:output[], door, activator, Float:delay)
{
if (FindValueInArray(g_AddOutput_Array, door) == -1)
{
decl String:Info[65];
new Float:fSec = GetConVarFloat(open_door_time);
Format(Info, 65, "OnUser3 !self:Unlock::%f:0", fSec);
SetVariantString(Info); AcceptEntityInput(door, "AddOutput");
Format(Info, 65, "OnUser3 !self:Close::%f:0", fSec);
SetVariantString(Info); AcceptEntityInput(door, "AddOutput");
PushArrayCell(g_AddOutput_Array, door);
}
AcceptEntityInput(door, "Lock");
AcceptEntityInput(door, "FireUser3");
}