Команда 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 заменяются на локальные координаты сущности.

Subpages