Physgun Wiki

ENTITY:CanBeOpenedBy

 ENTITY:CanBeOpenedBy( Player ply )

Возвращает, есть ли у игрока «ключи» от двери: право запирать и отпирать её (например, из SWEP-а ключей).

Проверка доступа к замку, а не к +use. Применяется в SWEP-е ключей, см. туториал.

Проверки по порядку, первое совпадение решает:

  1. игрок является главным владельцем;
  2. игрок является совладельцем (среди онлайн-совладельцев);
  3. дверь командная и ply:Team() совпадает с DoorTeam;
  4. дверь профессиональная и player_manager.GetPlayerClass(ply) совпадает с DoorJob;
  5. решение хука OnPlayerCanBeOpenDoor, по умолчанию false (у бесхозной двери ключей нет ни у кого).

Аргументы

1 Player ply
Проверяемый игрок.

Возвращает

1 boolean
true, если у игрока есть доступ к замку двери.

Пример

Типовое использование в SWEP-е ключей:

function SWEP:PrimaryAttack() if CLIENT then return end local door = self:GetOwner():GetEyeTrace().Entity if IsValid(door) and door:IsDoor() and door:CanBeOpenedBy(self:GetOwner()) then door:Fire("lock") end end