> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ss14.art/llms.txt
> Use this file to discover all available pages before exploring further.

# Команда Emplace

Команда `emplace` принимает некоторое перечисление и многократно выполняет блок команд, предоставляя при этом несколько специальных переменных только для чтения, локальных для этого блока. Переменные, которые предоставляются, зависят от типа входа, хотя само значение всегда доступно через переменную `$value`. В частности, для сущностей определяются локальные переменные, дающие доступ к некоторым свойствам этой сущности, включая:

* Координаты сущности на карте `$wx`, `$wy`
* Прототип сущности `$proto`
* Имя сущности `$name`
* Описание сущности `$desc`
* Приостановлена ли сущность `$paused`
  Аналогично, `ICommonSession` предоставляет прикреплённую сущность сессии `$ent`, имя пользователя `$name` и `NetUserId` через `$userid`.

Например, эта простая команда просто вернёт Y-координаты всех сущностей:

```
entities emplace { var $wy } 
```

В целом команда `emplace` полезна, если вы хотите использовать свойства сущностей в качестве аргументов для другой команды Toolshed.

# Команда Do

Команда `do` похожа на команду emplace. Она принимает некоторое перечисление и строку команды, а затем многократно пытается выполнить строку команды (как если бы она была введена в консоль), возможно, после выполнения некоторых замен строк.

Команда `do` существует в основном для обратной совместимости с командами, не являющимися Toolshed, которые не поддерживают переменные Toolshed. Например, на момент написания команда `say` не является командой Toolshed. Поэтому, если вы хотите, чтобы ваш персонаж произнёс позиции всех мобов, вам нужно использовать команду `do`:

```
entities with MobState do "say $WX $WY"
```

Возможные замены строк отличаются от переменных, доступных в блоке emplace. В частности, текущее значение заменяется на `$SELF` вместо `$value`. Для сущности выполняются следующие замены строк:

* `$ID` заменяется на текущий EntityUid.
* `$PID` заменяется на EntityUid, прикреплённый к выполняющему игроку.
* `$WX`, `$WY` заменяются на координаты сущности на карте.
* `$LX`, `$LY` заменяются на локальные координаты сущности.
