Physgun Wiki

GM:OnPlayerCanBeOpenDoor

 GM:OnPlayerCanBeOpenDoor( Entity door, Player ply )

Последняя инстанция в ENTITY:CanBeOpenedBy: вызывается, когда игрок не прошёл ни одну из стандартных проверок (владелец, совладелец, команда, профессия). Позволяет аддонам выдавать доступ к замку двери по своим правилам, например, админам или согильдийцам.

Реализация по умолчанию сначала спрашивает класс профессии игрока (метод CanOpenDoor), и только если тот вернул nil, запрещает: у бесхозной двери ключей нет ни у кого.

function GM:OnPlayerCanBeOpenDoor(door, ply) local allow = player_manager.RunClass(ply, "CanOpenDoor", door) if allow != nil then return allow end return false end

Обратите внимание на порядок аргументов: сначала дверь, потом игрок: в отличие от остальных дверных хуков.

Аргументы

1 Entity door
Проверяемая дверь.
2 Player ply
Игрок, запрашивающий доступ.

Возвращает

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

Пример

Админы получают ключи от всех дверей:

hook.Add("OnPlayerCanBeOpenDoor", "AdminKeys", function(door, ply) if ply:IsAdmin() then return true end end)