Переменные
Вывод команд Toolshed можно сохранять в именованные переменные с помощью команды присваивания =>. Имена переменных должны начинаться с $. Например, следующее определит простую переменную типа int, а затем увеличит её пару раз:
> i 1 => $x
1
> i 1 + $x => $x
2
> i 1 + $x => $x
3
Список текущих определённых переменных можно вывести с помощью команды vars:
> vars
more = ,
x = 4,
self = 3015
Переменные $self и $more — это специальные переменные, определённые оболочкой. $self указывает на текущую сущность игрока, а $more используется, если вывод команды слишком велик для печати, и в этом случае оставшийся вывод можно запросить, выполнив команду more.
Команда Var
Если вы хотите передать по конвейеру значение, хранящееся в переменной, в другую команду, вы можете использовать команду var, которая фактически просто считывает значение переменной.
например,
> var $x
3
> var $x * 2
6
Команда Val
Поскольку Toolshed — строго типизированный язык, для разбора допустимого запуска команды необходимо знать типы значений, которые вернёт команда. Учитывая, что содержимое переменной может меняться по мере выполнения команды, это означает, что некоторые команды могут не разобраться. В таких случаях вы можете вместо этого использовать команду val, хотя это требует от вас явного указания типа.
> val int $x
3
> val int $x * 2
6
Переменная $marked
Переменные не обязательно должны задаваться через => или другие команды Toolshed — они могут задаваться другими системами. Например, в SS14 есть админ-верб “mark”, который назначает сущность переменной Toolshed $marked, для которой также есть выделенная команда marked для считывания её содержимого. Хотя в этом случае верб и команда в основном существуют просто для удобства.