Physgun Wiki

PLAYER:SellAllDoors

 PLAYER:SellAllDoors()

Продаёт все двери, где игрок: главный владелец. Обходит копию серверного кеша ply._OwnedDoors и вызывает SellDoor для каждой двери, поэтому все проверки и хуки (OnPlayerSellDoor, PlayerSoldDoor) срабатывают для каждой двери отдельно.

Копия таблицы нужна, потому что SellDoor изменяет _OwnedDoors прямо во время обхода, а подписчики хуков могут менять её произвольно: добавление ключей в таблицу во время итерации по ней в Lua не допускается.

Пример

Типовое применение: продать все двери при уходе игрока с сервера, чтобы двери не остались «замурованными» за офлайн-владельцем:

hook.Add("PlayerDisconnected", "SellDoorsOnLeave", function(ply) ply:SellAllDoors() end)