Skip to main content

Объект сущности

e.index

Индекс edict’а.

Возвращает

Поле, а не метод. Годится ключом в своих таблицах.

e:origin

Читает или задаёт позицию сущности.

Аргументы

Возвращает

Запись идёт через движок и перелинковывает сущность в мире; присваивание pev->origin напрямую оставило бы её сталкиваться там, где она была.
Объект от удалённой сущности — или переживший changelevel — бросает entity #N is gone. Проверяй e:valid().

e:angles

Читает или задаёт поворот сущности.

Аргументы

Возвращает

Объект от удалённой сущности — или переживший changelevel — бросает entity #N is gone. Проверяй e:valid().

e:model

Читает или задаёт модель сущности.

Аргументы

Возвращает

Модель обязана быть предкэширована через res.model. Не предкэшированная стоит серверу ошибки, а сущность рисуется ничем.
Объект от удалённой сущности — или переживший changelevel — бросает entity #N is gone. Проверяй e:valid().

e:classname

Classname сущности.

Возвращает

Объект от удалённой сущности — или переживший changelevel — бросает entity #N is gone. Проверяй e:valid().

e:valid

Жива ли сущность.

Возвращает

Пример

Единственный метод, который отвечает, а не бросает ошибку. Всё, что переживает раунд или смену карты, проверяй им.

e:spawn

Запускает Spawn сущности.

Возвращает

Ничего. Именно это превращает голый edict в объект с хитбоксом и think-функцией. Вызывать после того, как выставлены модель и позиция.
Объект от удалённой сущности — или переживший changelevel — бросает entity #N is gone. Проверяй e:valid().

e:remove

Убирает сущность из мира.

Возвращает

Ничего. На уже удалённой сущности ошибкой не является и ничего не делает.

e:detonate_on_touch

Следующее касание сразу запускает think сущности.

Возвращает

Ничего.

Пример

Одноразово: при первом касании чего угодно — стены, пола, игрока — движок на следующем кадре сам вызовет think сущности, вместо того чтобы ждать её обычный таймер. Для брошенной гранаты это и есть «взрыв при попадании»: ExplodeHeGrenade/ExplodeSmokeGrenade — это и есть её think, только случившийся сразу, а не через несколько секунд. Не колбэк: Lua не узнаёт, что было касание, и не может решить, стоило ли его ловить — только форсирует то, что сущность и так должна была сделать рано или поздно. Для гранаты это ровно то, что нужно; для чего-то с другим think эффект будет другим.
Объект от удалённой сущности — или переживший changelevel — бросает entity #N is gone. Проверяй e:valid().

Смотри также

e:keyvalue

Задаёт keyvalue — то же, что делает карта.

Аргументы

Возвращает

Пример

Всё, что дизайнер уровня выставляет на сущности в редакторе, доступно отсюда.
Только до e:spawn(): значения читает именно Spawn.

e:solid

Читает или задаёт тип столкновений.

Аргументы

Возвращает

Значения

e:spawn() может выставить своё значение: у многих classname Spawn задаёт solid сам. Ставь после спавна, если важно.

e:movetype

Читает или задаёт, как движок двигает сущность.

Аргументы

Возвращает

Частые значения

e:size

Читает или задаёт ограничивающий объём.

Аргументы

Возвращает

Пример

Из этого и e:solid(1) получается зона-триггер. Запись идёт через движок и перелинковывает сущность: присваивание напрямую оставило бы её со старым объёмом.

e:render

Читает или задаёт прозрачность и свечение.

Аргументы

Возвращает

Опции

Пример

Таблица опций, а не пять чисел подряд: который из них renderfx, никто не помнит.

e:render_for

То же самое, что e:render(), но только для одного игрока — остальные видят сущность как обычно.

Аргументы

Возвращает

Опции

Пример

Поле, которого нет в opts, остаётся тем, что уже было в этом override — а при первой установке берётся из обычного e:render() сущности. Работает только через pfnAddToFullPack — движок собирает копию сущности отдельно на каждого клиента, и только тут возможна разница между зрителями. Обычные entvars (то, что меняет e:render()) — одно значение на сущность, разлетается всем одинаково.

Смотри также

e:clear_render_for

Убирает override, поставленный e:render_for()/e:visible_to().

Аргументы

Возвращает

Ничего. Игрок снова видит сущность как обычно.

Смотри также

e:visible_to

Делает сущность видимой или невидимой для одного игрока.

Аргументы

Возвращает

Ничего.

Пример

Частый случай e:render_for(): visible_to(p, false) то же самое, что render_for(p, { mode = 4, amount = 0 }); visible_to(p, true) то же самое, что clear_render_for(p).

Смотри также

e:pev

Читает или задаёт произвольное поле entvars_t по имени — то, для чего нет готового метода вроде e:origin() или e:solid().

Аргументы

Возвращает

Пример

Имена — буквально из entvars_t (progdefs.h), без переименований: плагин, портируемый с fakemeta, не требует таблицы соответствий. Полей нет для controller/blending (байтовые массивы) — если понадобятся, это будет отдельным методом. Неизвестное имя поля бросает ошибку, а не возвращает nil — опечатка в имени поля ловится сразу, а не где-то в логике плагина.
Объект от удалённой сущности — или переживший changelevel — бросает entity #N is gone. Проверяй e:valid().

Смотри также