большое спасибо
я правильно понимаю, что мне еще нужно знать id двери?
что-то нашел в плагинах, но не пойму, то ли это и как использовать
CoopDoorAntiClose
public OnEntityCreated(entity, const String:classname[])
{
if(StrEqual(classname, "prop_door_rotating_checkpoint"))
{
if(GetEntProp(entity, Prop_Send, "m_eDoorState") == 0)
{
HookSingleEntityOutput(entity, "OnFullyOpen", OnStartSFDoorFullyOpened, true);
}
}
}
public OnStartSFDoorFullyOpened(const String:output[], caller, activator, Float:delay)
{
AcceptEntityInput(caller, "Lock");
}
и Trap Of Door Lock
if(CheckDoor(entity)){
new status = GetEntProp(entity, Prop_Data, "m_eDoorState");
new flags = ((!flagDoorGoal || countDown <= 0) && CheckDoorLock(entity));
if(IsALLinSafeRoom()){
if(status == 2 && flags && GetEntProp(entity, Prop_Data, "m_bLocked")){
SetEntProp(entity, Prop_Data, "m_hasUnlockSequence", 0);
AcceptEntityInput(entity, "Unlock");
AcceptEntityInput(entity, "forceclosed");
AcceptEntityInput(entity, "Close");
}
}
else if(!status && flags){
SetEntProp(entity, Prop_Data, "m_hasUnlockSequence", 0);
AcceptEntityInput(entity, "Unlock");
AcceptEntityInput(entity, "forceclosed");
AcceptEntityInput(entity, "Open");
}
else if((status&3)%3 && !GetEntProp(entity, Prop_Data, "m_bLocked")){
// anti-doorspam
if(GetConVarBool(hDoorLockSpam)){
DoorLockFlag(entity);
AcceptEntityInput(entity, "forceclosed");
AcceptEntityInput(entity, "Lock");
SetEntProp(entity, Prop_Data, "m_hasUnlockSequence", 1);
}
}
else if(status == 2 && GetEntProp(entity, Prop_Data, "m_bLocked")){
decl String:username[MAX_NAME_LENGTH];
new client = GetClientOfUserId(GetEventInt(event, "userid"));
new max = GetMaxClients();
new count = 0;
for(new i=1; i<=max; i++){
if(!isSafeRoom[i]
&& IsClientConnected(i)
&& IsClientInGame(i)
&& IsPlayerAlive(i)
&& !IsFakeClient(i)
&& GetClientTeam(i) == 2
&& (!GetConVarBool(hDoorLockDown)
|| !GetEntProp(i, Prop_Send, "m_isIncapacitated"))){