Файлы сущности
Сущность обычно содержит shared.lua, init.lua и cl_init.lua. Сервер создаёт физику и меняет состояние, клиент рисует дополнительную информацию.
function ENT:SetupDataTables()
self:NetworkVar("Int", 0, "StoredAmount")
self:NetworkVar("Bool", 0, "Active")
endNetworkVar удобнее ручной постоянной отправки net-сообщений для небольшого состояния сущности. Индексы должны быть уникальны внутри каждого типа.
Initialize и Use
В Initialize на сервере задайте модель, физику, тип движения и use type. В Use проверяйте игрока, расстояние, кулдаун, профессию и состояние сущности. Не доверяйте интерфейсу клиента право забрать предмет или начислить деньги.
Удаляйте таймеры и внешние ссылки в OnRemove, либо связывайте имя таймера с EntIndex и проверяйте валидность. Ограничивайте количество сущностей на игрока.
