Команды JMC
- #action
- #alias
- #antisubstitute
- #autoreconnect
- #bell
- #break
- #char
- #clean
- #colon
- #comment
- #connect
- #cr
- #daa
- #drop
- #echo
- #feed
- #flash
- #gag
- #grab
- #group
- #help
- #hide
- #hidewindow
- #highlight
- #hotkey
- #if
- #ignore
- #info
- #kickall
- #killall
- #lick
- #llist
- #log
- #logadd
- #logpass
- #loop
- #map
- #mark
- #math
- #message
- #multiaction
- #multihighlight
- #multisubstitute
- #next
- #nodrop
- #nope
- #output
- #path
- #pathdir
- #pinch
- #play
- #prefix
- #presub
- #ps
- #quit
- #race
- #read
- #reloadscripts
- #restorewindow
- #resume
- #return
- #run
- #savepath
- #scriptlet
- #showme
- #sos
- #speedwalk
- #spit
- #status
- #stick
- #substitute
- #systemexec
- #tabadd
- #tabdel
- #terminate
- #textin
- #tick
- #tmlist
- #togglesubs
- #tolower
- #toupper
- #tray
- #tskill
- #tslist
- #unaction
- #unalias
- #unantisubstitute
- #unhotkey
- #unpath
- #unsubstitute
- #unuse
- #unvar
- #use
- #variable
- #verbatim
- #wait
- #wamp
- #wdock
- #whisper
- #winamp
- #wlog
- #wname
- #woutput
- #wpos
- #write
- #wshow
- #wt
- #zap
#action
Syntax:
#action {входная строка} {действия} {приоритет}
Эта команда позволяет запрограммировать действие (или несколько), которое должно быть выполнено при поступлении из MUD’а какого-либо текста. Подобные макрокоманды называют триггерами. Отдельные слова входной строки могут быть заменены на переменные %0-%9
, которые можно затем использовать в ключе “действия”.
Все триггеры сохраняются единым списком. Любая строка, поступающая из игры, проверяется на соответствие условиям триггера. Если она соответствует нескольким сразу - триггеры выполняются в очередности согласно установленному приоритету. Т.е., если вы хотите указать, какой триггер более важен - назначьте ему более высокую приоритетность выполнения. Самая высокая степень приоритета - “0”, самая низкая - “9”.
Если входная строка начинается с символа ^
, то поступившая из игры строка будет считаться соответствующей триггеру только в том случае, если совпадение происходит с самого начала строки.
Если команду #action
отдать без всяких аргументов, будет выведен полный список заданных триггеров.
Ели команда #action
задана только с одним аргументом, будет выведен список всех триггеров, в составе входной строки которых содержится данное слово или сочетание слов. Допустимо использование символа *
. См. примеры.
Примеры:
#action {You are hungry.} {eat bread} {2}
Когда игра сообщает, что вы голодны, вы будете есть хлеб автоматически.
#action {^%0 arrived from the %1} {kill %0} {0}
Когда кто-либо входит в локацию, в которой вы находитесь, вы автоматически будете атаковать его.
#action {^Nice white fountain is here} {drink water from fountain} {5}
Если из игры поступает строка, начинающаяся со слов “Nice white fountain is here”, вы автоматически будете пить воду из фонтана. Таким образом предупреждается недобросовестное поведение других игроков, которые могут, например, сказать вам такую фразу возле ядовитого источника - в этом случае поступит строка “NAME tell you: Nice white fountain is here”, и триггер не сработает.
#action
Вывод всех заданных триггеров:
{The momentum of your kick}={sta} @ {5}
{You try to bash}={sta} @ {5}
{are hungry}={get $food $chest;eat $food} @ {5}
{are thirsty}={drink water} @ {5}
{crashes into you}={sta} @ {5}
{disarms your weapon}={get axe} @ {5}
#action *you*
Вывод всех триггеров, содержащих во входной строке слово “you”:
{The momentum of your kick}={sta} @ {5}
{You try to bash}={sta} @ {5}
{crashes into you}={sta} @ {5}
{disarms your weapon}={get axe} @ {5}
Вы можете временно запретить исполнение триггеров с помощью команды #ignore. Повторная отдача этой команды включит триггера снова.
Вы можете включить показ команд, выполняемых в триггере, командой #echo. Повторная отдача #echo выключит показ.
Для удаления триггеров используйте команду #unaction.
См. также: #unaction, #ignore, #multiaction
#alias
Syntax:
#alias {ИМЯ МАКРОСА} {КОМАНДЫ}
Макрос (алиас) позволяет задать новую команду, составив ее из последовательности более простых. При отдаче команды с именем существующего алиаса JMC заменит его на последовательность команд, заданную в данном алиасе. В командах могут использовать специальные переменные: %0…%9, предназначенные для косвенного указания слов строки, на которую применяется алиас. Переменная %0 обозначает последние слова в команде с использованием алиаса, переменные %1-%9 содержат слова строки.
Примеры:
#alias {k} {kill %1}
Каждый раз, когда вы отдадите команду k ИМЯ
, игровому серверу будет отправлена строка kill ИМЯ
. Т.е. k dragon
заменится на kill dragon
.
#alias putex {put %1 into %2; #showme {done: %0}}
Теперь вы можете отдать команду вроде putex bread chest
. При этом игровому серверу отошлется строка put bread into chest
а вам ответят строкой done: bread chest
. В данном примере переменная %0
содержит bread chest
, %1
содержит bread
и %2
содержит chest
.
Если второй параметр алиаса отсутствует, JMC покажет вам все алиасы, имя которых совпадает с указанным.
Примеры:
#alias k
JMC покажет информацию об алиасе с именем “k”.
#alias *get*
JMC покажет информацию обо всех алиасах, в имени которых содержится сочетание букв “get”.
Если команда #alias
отдана вообще без параметров, JMC выведет информацию обо всех заданных алиасах.
См. также: #unalias
#antisubstitute
Syntax:
#antisubstitute {участок строки}
Описание: Данная команда предотвращает влияние команд #substitute и #gag на строки, содержащие заданный участок.
Примеры:
#gag {^%0 пришел с %1}
Теперь вы не будете получать информацию, когда кто-либо приходит в вашу локацию.
#antisubstitute {Стражник пришел с %1}
Теперь вы будете получать информацию только когда в вашу локацию входит стражник. Все остальные монстры/персонажи по-прежнему подпадают под действие команды #gag
.
См. также: #substitute, #gag
#autoreconnect
#autoreconnect [on|off]
Включает - выключает автоматический реконнект. Можно юзать в #action.
#bell
Syntax:
#bell
Описание: Воспроизводит звук, заданный в Windows по умолчанию.
Если таковой не задан или у вашего компьютера нет звуковой карты, то будет задействован PC-спикер.
См. также: #flash
#break
См. #loop
#char
Syntax:
#char {СИМВОЛ}
Данная команда предназначена для задания символа, с котрого должны начинаться все команды JMC.
Вы можете сделать то же самое из диалога “Options”. По умолчанию задан символ #
.
Пример:
#char {/}
Меняет командный символ на /
.
#clean
Syntax:
#clean
Отправляет PostMessage(hwnd, WM_USER+600)
Рано или поздно - но мы разгадаем, что же здесь происходит
#colon
Syntax:
#colon {leave|replace}
При replace
считает при парсинге неэкранированный semicolon ;
как разделитель команд
#comment
Syntax:
#comment <текст>
## <текст>
#nope <текст>
Эта команда не делает ровным счетом ничего. Используется для написания комментариев в файлах макросов.
Увы, но при первой же записи в файл средствами JMC все команды #nope
будут безжалостно потерты, поэтому имеет смысл
снабжать файл комментариями только в случае, когда вы убеждены, что запись в процессе игры в данный файл вам не нужна.
Устанавливает символ комментария.
Все команды, начинающиеся с такого символа либо с ##
, будут игнорированы.
Пример:
#comment алиасы для использования в бою.
## алиасы для использования в бою.
#nope алиасы для использования в бою.
#connect
Syntax:
#connect <адрес MUD'а> <номер порта>
Команда используется для установки соединения с игровым сервером.
Если вы уже подсоединены куда-либо, то выведется сообщение “Close current connection first” (Сначала закройте текущее соединение).
Текущий статус сединения показывается в строке состояния JMC.
См. также: #zap, #autoreconnect
#cr
Syntax:
#cr
Отправляет на сервер код перевода строки. Это полезно для создания алиасов, требующих при исполнении промежуточного ввода. Работает как клавиша “ENTER”.
#daa
Syntax:
#daa <message>
Синонимы: #whisper
, #hide
Команда для посылки текста в МУД без показа на экране и записи в лог независимо от настроек.
#daa <message>
- посылает message в муд; показывает (если разрешено) и пишет в лог (если включен) строку, равную по длине, но содержащую только ***
.
Может понадобиться, например, когда вы не хотите чтобы в логи и на экран не попал ваш пароль от персонажа.
#alias {_mall} {mall;#daa TRU_SOTANEC_PAROL;#var charname mall;#read mall.vars;#group enable mall}
#drop
Syntax:
#drop
Документация может быть не точна
Используется в триггерах #action - “выкидывает” входящую строку, на которую сработал триггер, не выводя ее на экран и не записывая в лог
Очень похоже на #gag, только позволяет дополнительно выполнить какие-то действия в триггере
#echo
Syntax:
#echo
Описание: Включает/выключает показ команд, исходящих из триггеров. Если ECHO-режим выключен (off), команды, исходящие из триггеров, не будут воспроизводиться на экране.
См. также: #message
#feed
См.: #spit
#flash
Syntax:
#flash
Команда, которая устанавливает фокус на окне жабы, если пользователь в это время работал с другим окном.
Бывает необходимо в некоторых важных случаях (мало здоровья, приватные сообщения и т.п.).
Например,
#act {^Солнечный свет наполнЯет все ваше тело болью!} {#play allods troll burnin.wav;#flash}
См. также: #bell
#gag
Syntax:
#gag {участок строки}
Описание: Данная команда предотвращает показ любой строки, исходящей с сервера MUD, содержащей заданный участок текста. Фактически, представляет собой упрощенный вариант команды #substitute, где второй аргумент - пустая строка.
Пример:
#gag {is arrived}
Любая строка текста, исходящая от MUD-сервера, содержащая участок “is arrived”, не будет вам показываться.
См. также: #substitute, #ungag
#grab
Syntax:
#grab [num] {filename} [format]
#grab [num] <char> [format]
Достает строку номер num
из filename
и замещает ей %0
в format
. Итог посылает в муд.
if num
is not defined then it is next line if last usage was for this file too. else it is 1.
#group
Syntax:
#group {list|delete|disable|enable|info|global|local} [имя_группы]
Управляет группами команд.
Удобно использовать, разбив триггеры, хоткеи на группы и включать/выключать группы в зависимости от окружения - ПК/неПК, маг/воин, режим боя/отдых …
#help
Syntax:
#help <command>
Показывает встроенную справку по команде command
. Файлы со справкой хранятся в папке help/command.jht
#hide
См.: #daa
#hidewindow
Syntax:
#hidewindow
Сворачивает окно JMC на панель задач (вне зависимости от галочки в настройках “Minimize to system tray”)
См. #tray, #restorewindow
#highlight
Syntax:
#highlight {цвет} {строка}
Описание: Все строки, исходящие из MUD, содержащие заданный участок, будут подсвечиваться указанным цветом.
Если вы хотите подсветить строку, содержающую заданный участок, полностью - используйте переменные %0-%9
для указания меняющихся слов строки.
Параметр цвет
может быть следующим:
- reverse, bold, blink, faint, italic, или число от 1 до 8 (соответствует цветам основной палитры).
Также вы можете напрямую использовать название цвета или эффекта или их комбинации. Например, вы можете задать {red, bold}
.
Доступные названия:
red, blue, cyan, green, yellow, magenta, white, grey, black, brown, charcoal, light red, light blue, light cyan, light magenta, light green, b red, b blue, b cyan, b green, b yellow, b magenta, b white, b grey, b black, b brown, b charcoal, b light red, b light blue, b light cyan, b light magenta, b light green, bold, faint, blink, italic, reverse
Примеры:
#highlight {light red, italic} {тяжело ранил вас}
Когда кто-либо тяжело ранит вас, строка с информацией об этом будет показана наклонным шрифтом ярко-красного цвета.
#highlight {yellow} {^%0 дал вам %1 монет}
Теперь строки типа “Вася дал вам 1000 монет” будут показываться желтым цветом.
См. также: #substitute, #multihightlight
#hotkey
Syntax:
#hotkey {имя клавиши} {команды} {группа}
Данная команда позволяет задать новую или переопределить существующую быструю клавишу. Нажав заданную клавишу (или комбинацию клавиш), указанные команды будут отправлены серверу, как если бы вы отдали их непосредственно с клавиатуры.
Синтаксис составного имени клавиши:
[shift+][ctrl+][alt+][ИМЯ КЛАВИШИ] [КОМАНДЫ] [ГРУППА]
Имя клавиши может быть цифрой, буквой или специальным именем.
Специальные имена:
BACK
Backspace keyENTER
EnterSP
ПробелPGDN
Page DownHOME
HomeUP
Стрелка вверхDOWN
Стрелка внизDEL
DeleteDIV
Серый/
MULT
Серый*
TAB
TabESC
EscapePGUP
Page UpEND
EndLEFT
Стрелка влевоRIGHT
Стрелка вправоINS
InsertNUM0-9
Серые цифрыF1-F12
Функциональные клавиши
Примеры:
#hotkey Ctrl+z {#zap}
#hotkey {alt+c} { #connect mud.arctic.org 2700} {hotkey}
#hotkey f1 flee
#hotkey {ctrl+f5} {спасти $aim}
См. #unhotkey
#if
Syntax:
#if {УСЛОВИЕ} {КОМАНДЫ}
#if {expression} {then} [{else}]
Когда вы используете команду #if
, JMC оценивает условие и, если его результат отличается от 0, т.е., условие истинно, выполняются команды, определенные вторым параметром.
Сравнивать строки вы можете только с помощью скриптовой команды:
if(УСЛОВИЕ) {КОМАНДЫ С ИСПОЛЬЗОВАНИЕМ СКРИПТОВЫХ ВЫРАЖЕНИЙ, типа: jmc.parse("") и т.д.}
Примеры:
#action {HP:%0>} {#if { %%0<50 } {recite recall}}
Если количество хитпойнтов, показывающееся в строке состояния персонажа, меньше 50, вы зачитаете свиток возврата.
Переменная %%0
относится к команде #action
, а не команде #if
, поэтому необходимо двойное %
.
#alias {^%1 посмотрел на тебя} { #script if("%1"=="$aim") {jmc.parse("сказ $aim привет");} }
Если на вас посмотрит Вася, вы скажете ZZZ.
См. также: #math
#ignore
Syntax:
#ignore
Включает/выключает триггеры.
Пример:
#ignore
До повторной отдачи этой команды все триггеры не будут действовать.
См. также: #action
#info
Syntax:
#info
Описание: Показывает количество заданных триггеров, алиасов, переменных, замен, антизамен и подсветок. Также сообщается о состоянии триггеров (вкл/выкл).
См. также: #message
#kickall
См.: #killall
#killall
Syntax:
#killall
Синоним: #kickall
Эта команда удаляет все заданные алиасы, триггеры, переменные, подсветки, замены и антизамены. Обычно используется при перезагрузке установок.
#lick
См.: #spit
#llist
См. #loop
#log
Syntax:
#log {имя файла} {append/overwrite}
Начинает запись в указанный файл всей текстовой информации, поступающей с сервера (кроме спецсимволов ANSI) и текста, введенного пользователем.
Если JMC уже работает с каким-либо файлом, текущий лог закрывается и открывается указанный.
Если эту команду отдать без параметров, текущий лог закроется.
Если отсутствует второй параметр, лог будет вестись в режиме, установленном по умолчанию (задается в диалоге ПАРАМЕТРЫ/LOGGING).
В режиме “append” JMC при старте лога добавляет текст в конец существующего файла, в режиме overwrite весь текст, существовавший в файле ранее, уничтожается.
Примеры:
#log castle.log
Начать ведение лога в файле castle.log
#log town.log overwrite
Закрывает файл “castle.log” и начинает запись в файл “town.log”. Если такой файл существует, он будет предварительно очищен.
#log
Остановить ведение лога.
См. также: #read, #write, #textin, #logadd, #logpass, #wlog
#logadd
Syntax:
#logadd <строка>
Добавляет строку в файл лога основного окна.
См. также: #log
#logpass
Syntax:
#logpass
Используется в списке команд в action’ах, запрещает сохранение обрабатываемой строки в файле лога.
См. также: #log
#loop
Syntax:
#<num>, #loop
Обе команды переданы под контроль отдельного цикла, каждой добавлена возможность задержки (в децисекундах, 1/10 секунды).
Эта команда повторяет заданную последовательность команд указанное число раз.
#<num>[:<delay>]
цикл от 1 до num.
#loop {<from>[,<to>][:<delay>]}
#loop
начинает выполнять указанные команды в цикле, сохраняя текущее значение счетчика в переменной %0
.
если указан второй параметр, то от from
до to
, иначе от from
до 0.
Если delay
не указан, считается нулем и цикл не задействует таймер, иначе ищется свободный таймер и цикл передается под его контроль.
Всего выделены под это дело 16 таймеров (0..15). если свободный таймер не найден, то и цикла не получится.
Может быть, позже будет выделено больше. Пока нет необходимости, 16 - это много.
#break {<tID>|all}
Прерывает цикл(ы). второй вызов убивает (обнуляет).
#abort {<tID>|all}
Убивает (обнуляет) цикл(ы) сразу.
#resume {<tID>|all}, #pinch [all]
Возобновляет цикл(ы), если он неактивен и работоспособен (есть первая/вторая граница, команда и задержка)
#llist, #tmlist
Список активных циклов.
Примеры:
#5 {sing}
В мад уйдет команда sing;sing;sing;sing;sing
- Вы споете (sing) 5 песен.
#10 {eat bread;drink water}
Вы поедите хлеба (eat bread) и выпьете воды (drink water) 10 раз.
#loop {2,5} {взять все %0.сундук}
Вы возьмете все предметы из 2-го, 3-го, 4-го и 5-го сундуков.
#map
Syntax:
#map <направление>
Данная команда добавляет указанное направление к текущему сохраняемому пути. Это полезно для записи пути при следовании за кем-либо.
Примеры:
#action {Вася ушел на %0.} {#map { %%0}}
Если персонаж Вася покидает вашу локацию, направление, в котором он ушел, добавится к текущему пути.
См. также: #mark, #path, #pathdir, #savepath, #return, #unpath
#mark
Syntax:
#mark {start/stop}
Эта команда имеет может быть использована либо с одним аргументом, либо вообще без аргументов.
Если задан параметр “start” (или никакого), то данная команда обнуляет текущую запись пути и включает “path mode” (режим записи пути).
В этом режиме JMC автоматически сохраняет все передвижения в отдельном буфере.
Примеры:
#mark
Обнуляется буфер передвижений и включается режим записи пути.
#mark stop
Выключает режим записи пути.
См. также: #map, #path, #pathdir, #savepath, #return, #unpath
#math
Syntax:
#math {переменная} {математическое выражение}
Данная команда вычисляет заданное математическое выражение и сохраняет его результат в указанной переменной. Работает только с целыми числами.
Примеры:
#action {Perfect: HP:%0} {#math {half} { %0/2}}
Теперь переменная half
содержит величину, равную половине ваших хитпоинтов (триггер будет работать до тех пор, пока ваше состояние - perfect).
#action {HP:%0} { #if { %%0<$half} {flee}}
Бежать, если количество хитпоинтов меньше половины.
См. также: #if
#message
Syntax:
#message {ТИП}
Эта команда включает/выключает выдачу сообщений, исходящих при определении/удалении алиасов, переменных, замен, антизамен или подсветок.
Допустимые значения аргумента ТИП: alias, action, substitute, antisubstitute, highlights, variable, uses
.
Данная команда полезно для предупреждения захламления экрана и излишнего спамминга.
Например, часто какие либо триггеры повешены на команды передвижения. Чтобы не получать каждый раз при передвижении надоедливые сообщения о переопределении триггера, используйте команду #message
с соответствующим аргументом.
Пример:
#message {variable}
Вы больше не будете получать сообщений типа:
#Variable start now set to 1
#multiaction
Syntax:
#multiaction
Включает/выключает “мультитриггерный режим”. При выключенном мультирежиме JMC прекращает обработку текущей строки после нахождения первого подходящего триггера. При включенном режиме JMC будет проверять все заданные триггеры на необходимость применения к текущей строке. Если количество заданных вами триггеров исчисляется сотнями, для ускорения работы лучше держать данный режим выключенным, используя приоритеты триггеров.
Пример:
#alias get_stats { #action{HP:%1} { #var hp %1}; #action {MVS:%1} { #var mvs%1; #multiaction; #unact {HP:%1}; { #unact MVS:%1}}; #multiaction; #cr}
Что ж, весьма сложный алиас. Давайте разбираться. Вначале происходит задание двух триггеров.
Первый триггер извлекает количество хитпоинтов из строки состояния и помещает полученное значение в переменную hp
.
Второй извлекает количество единиц бодрости (movement points) и помещает полученное значение в переменную mvs
.
Затем выключает мультитриггерный режим и удаляет оба заданных триггера.
После определения триггеров алиас отправляет на сервер код перевода строки (чтобы получить строку состояния).
После получения строки состоянии алиас заполняет указанные переменные требуемыми значениями, удаляет триггеры и выключает мультитриггерный режим.
Режим по умолчанию - ВЫКЛ.
См. также: #action
#multihighlight
Syntax:
#multihighlight [on/off]
Включает/выключает режим, при котором на одну строку будут применено несколько команд #hightlight
#multisubstitute
Syntax:
#multisubstitute
Включает/выключает режим, при котором на одну строку будут применено несколько команд #substitute
#next
Syntax:
#next
Команда в #action, позволяет сделать еще 1 итерацию триггера (в случае, если #multiaction выключен)
#nodrop
Syntax:
#nodrop
Отменяет команду #drop.
#nope
См. #comment
#output
Syntax:
#output [цвет] <текст>
Выводит цветной текст в основное окно (можно с ANSI, можно аналогично #status или #woutput).
#path
Syntax:
#path
Показывает текущее содержания буфера передвижений.
Пример:
#path
Покажет что-нибудь вроде: #Path: n e e e s
См. также: #mark, #map, #pathdir, #savepath, #return, #unpath
#pathdir
Syntax:
#pathdir <направление движения> {направление возврата}
Для распознания отданных пользователем команд, как команд передвижения, JMC составляет список направлений.
Когда пользователь отдает ту или иную команду передвижения или использует их комбинации (speedwalk’и), JMC сохраняет их в буфере пути.
Текущее состояние буфера можно просмотреть командой #path. Также, используя команду #savepath,
вы можете сохранить текущий буфер в качестве алиаса и в дальнейшем использовать созданный алиас для перемещения по локациям игры.
По умолчанию JMC определяет шесть направлений - команд передвижения: n s e w d u
. Если вы используете нестандартные команды (типа North, South, Northwest),
вы должны явно указать эти команды с помощью команды #pathdir. Первый аргумент этой команды содержит направление перемещения, второй - обратное ему направление. JMC использует эту информацию для выполнения команды #return.
Как правило, все MUD’ы используют только шесть направлений: n (север), s (юг), e (восток), w (запад), d (вниз), u (вверх) и беспокоиться о новых напрвлениях не требуется.
Пример:
#pathdir {northwest} {southeast}
Каждый раз, когда вы отдадите команду northwest, это слово будет добавлено в текущий буфер пути (если режим записи пути включен).
См. также: #mark, #map, #path, #savepath, #return, #unpath
#pinch
См.: #loop
#play
Syntax:
#play <имя файла>
Поторая проигрывает wav файл.
#prefix
#prefix {string}
command used to add prefix to all strings you will send to MUD.
prefix is set BEFORE alias lookup. does not work on TTcommands.
#presub
Syntax:
#presub
Включает/выключает возможность использования замещенных строк в триггерах.
Примеры:
#sub {^%0 crashes into you %1} {ВАС СБИЛ: %0 !!!}
Теперь вы будете получать строку типа “ВАС СБИЛ: Ghost !!!” каждый раз, когда вас сбивают с ног, вместо стандартного сообщения.
#act {ВАС СБИЛ} {встать}
Если presub выключено, этот триггер никогда не выполнится. Если включено, вы будете автоматически вставать, когда вас сбивают с ног.
См. также: #substitute, #antisubstitute
#ps
См.: #systemexec
#quit
Syntax:
#quit
Команда #quit
, а также метод Jmc.Quit()
для закрытия окна жабы. Имитирует нажатие пункта меню Файл => Выход.
#race
Syntax:
#race
#race format <string>
записывает формат бега (e.g. {run %0|%0}
)
#race move [<speedwalk>]
передает форматную строку с замещением %0
на speedwalk. Сохраняет speedwalk, если спидволк пустой, то берет последний сохранненный.
#race reverse
берет сохраненную переменную, реверсит ее, пересохраняет, запускает #race move
#read
Syntax:
#read {имя файла}
Эта команда считывает содержание указанного файла и выполняет его, как если бы весь полученный текст был введен вручную в командной строке.
Пример:
#read mage.set
Считывает файл mage.set
и устанавливает алиасы, триггеры, переменные и т.п., определенные в нем.
См. также: #write
#reloadscripts
Syntax:
#reloadscripts
Служит для перегрузки скриптов прямо из командной строки. При использовании JScript - очищает текущий JS контекст и считывает заново подключенные скрипты с помощью команды #use
#restorewindow
Syntax:
#restorewindow
Восстанавливает окно JMC на панель задач (команда WinAPI)
См. #tray, #hidewindow
#resume
См. #loop
#return
Syntax:
#return
Эта команда отправляет на сервер направление, противоположное последнему выполненному, после чего удаляет последнее направление из текущего буфера пути.
Пример:
#mark
включить режим записи пути.
n
Теперь последнее направление в буфере пути - это “n”
#return
Отправить на сервер строку s
и удалить n
из буфера пути.
См. также: #mark, #map, #pathdir, #savepath, #path, #unpath
#run
Syntax:
#run <командная_строка>
Команда для запуска приложения (ShellExecute), а также скриптовый метод Jmc.Run(cmdline[, cmdopts])
.
Отличия от команды #systemexec:
- Не перенаправляет вывод в окно жабы, и пользоваться командами #ps и #term нельзя.
- Позволяет открывать документы (
#run example.doc
). - Можно запускать в скриптах с помощью метода
Jmc.Run(cmdline[, cmdopts])
.
#savepath
Syntax:
#savepath <имя алиаса> {reverse}
Записывает текущий буфер пути в алиас с заданным именем. Данная команда полезна, если вы хотите использовать информацию о пройденном пути в дальнейшем.
Ключ reverse
используется для сохранения обратного пути - из текущей локации в исходную.
Пример:
#path
Вы увидите что-то вроде: #Path n n n e e s e e s e e n e
#savepath town-castle
Записывает текущий буфер пути в алиас с именем town-castle
. Теперь данный алиас содержит набор команд n ;n ;n ;e ;e ;s ;e ;e ;s ;e ;e ;n ;e
#savepath castle-town reverse
Записывает путь, обратный содержащемуся в буфере пути, в алиас с именем castle-town
. Т.е., алиас castle-town
будет содержать команды w ;s ;w ;w ;n ;w ;w ;n ;w ;w ;s ;s ;s
См. также: #mark, #map, #pathdir, #path, #return, #unpath
#scriptlet
Syntax:
#scriptlet <plainscript>
Интерпретирует plainscript
через выбранный скриптовый движок
Примеры:
#scr if (jmc.getVar('hp') < 50) { jmc.showme('Убегаем!'); jmc.parse('flee'); }
Если в переменной #var hp
окажется меньше 50 хп - то выводит сообщение на экран и отправляет команду убегать
См. также: #use
#showme
Syntax:
#showme {текст}
Команда выведет заданный текст на экран.
Пример:
#action {^%0 decayed in your hands} {#showme {*** %0 decayed !!!!}}
Теперь вы получите сообщение *** sword decayed !!!
, если меч в ваших руках рассыпется в пыль.
#sos
Syntax:
#sos
sos command used to save some variable stuff to custom file.
#sos list
просмотреть список текущих шаблонов.
#sos clear
очистить список текущих шаблонов.
#sos <group> <name | *>
добавить шаблон, group может принимать значения: action, alias, variable, hotkey
#sos mode [exact]
toggle mode. exact mode should save only full matched strings
#sos save <file>
пройтись по допустимым группам и сохранить в file все объекты, соответствующие шаблону.
Например, #sos hot NUM
сохранит все горячие клавиши, срабатывающие на нажатия на кнопки “калькулятора”, а #sos act ^
сохранит все триггера, считывающиеся с начала строки.
#speedwalk
Syntax:
#speedwalk
Включает/выключает режим быстрого перемещения (speedwalking mode).
Быстрое перемещение - возможность JMC интерпретировать несколько направлений движения одной командой.
Если команда, введенная пользователем, содержит только n, s, e, w, d, u, цифры, она будет интерпретирована, как последовательность движения и передана на сервер соответствующим образом. Цифрами обозначается количество повторов следующего сразу за цифрой направления.
Пример:
2ned4s
На сервер будет отправлена команда n; n; e; d; s; s; s; s
.
При выключенном режиме быстрого перемещения команда подобного рода будет интерпретироваться целиком, без разбиения на составляющие.
ВНИМАНИЕ!!! При включенном режиме вы не можете использовать команду “news”. Для того, чтобы прочитать новости игры, отдавайте ее в виде “News”.
#spit
Syntax:
#spit
Синонимы: #stick
, #lick
, #feed
Построчно переправляет файл в муд в особом формате.
#spit <filename> <format> <options>
открыть filename
и передать каждую строку вставляя ее содержимое вместо %0
в format
.
options
могут содержать:
n
- no empty lines will be catcheds
- silent. no message on finish
Примеры:
#spit {./texts/metallica/unforgiven.txt} {music}
#spit {./etc/player/player.lst} {pload %0;cast disi %0;punload %0}
#status
Syntax:
#status [1|2|3|4|5] {текст} [цвет]
Изменяет статусную строку
#stick
См.: #spit
#substitute
Syntax:
#substitute {участок текста} {текст}
Данная команда заменяет указанный участок текста в любой строке, исходящей с MUD-сервера, на заданный текст.
NB! JMC производит все замены текста до проверки на совпадение поступившей с сервера строки на триггера. Поэтому вы можете настраивать ваши триггера на тот текст, который получается после замены исходных строк.
Примеры:
#substitute {ранил вас} {РАНИЛ ВАС}
Теперь вместо строки типа “Вася тяжело ранил вас” вы будете получать строку “Вася тяжело РАНИЛ ВАС”.
#substitute {^%0 ранил вас} {ОН РАНИЛ ВАС!}
Теперь строки будут меняться следующим образом:
“Вася ранил вас” - “ОН РАНИЛ ВАС!”
“Стражник тяжело ранил вас” - “ОН РАНИЛ ВАС!”
См. также: #antisubstitute, #unsubstitute, #presub, #togglesubs, #multisubstitute
#systemexec
Syntax:
#systemexec <cmd>
execute cmd
and redirect output flow to JMC main window
#tslist
#ps
lists all executed processes with their pIDs
#tskill {<pID>|all|last}
#terminate {<pID>|all|last}
kills specified, last process or all processes
Добавлено три команды (#systemexec, #ps и #terminate):
#systemexec <командная_строка>
запускает процесс, указанный в параметре командная_строка, и отображает вывод программы прямо в окне жабы. В общем, аналогично команде /system в MMC.
#ps
выводит список запущенных процессов, которые еще не завершили свою работу. Номера pid можно использовать в следующей команде.
#terminate <pid>|all|last
завершает запущенные активные процессы. Если в параметре указан верный pid, то будет остановлен процесс с этим pid, если указать “all”, то будут остановлены все процессы, а если - “last”, то только последний вызванный.
Вместо #ps
и #term
можно использовать #tslist
и #tskill
(#terminate
).
#tabadd
Syntax:
#tabadd <слово>
Добавляет слово в кейворды (tabwords).
Если набрать часть слова и нажать Tab
- то слово автодополнится из словаря
См. также: #tabdel
#tabdel
Syntax:
#tabdel <слово>
Удаляет слово из кейвордов (tabwords)
См. также: #tabadd
#terminate
См.: #systemexec
#textin
Syntax:
#textin {имя файла}
Эта команда считывает текст из указанного файла и отправляет его на сервер без какой-либо обработки. Полезна для управления игрой или написания больших сообщений.
#tick
Syntax:
#tick
Команда показывает количество секунд, оставшееся до следующего тика (окончания внутреннего временного интервала игры). Текст, выдаваемый командой, может обрабатываться триггерами.
#tickon
#tickoff
Обнуляет, а также включает/выключает встроенный счетчик тиков.
#ticksize <число секунд>
Устанавливает длительность тика в секундах. Наиболее часто в MUD-серверах величина тика составляет 60 секунд.
#tickset
Обнуляет встроенный счетчик тиков. Команда используется для синхронизации вашего счетчика и счетчика игрового сервера.
Размер тика на сервере - величина непостоянная, потому что часть времени может теряться при пересылке пакетов и других проблемах соединения.
Поэтому для точного измерения вы должны время от времени синхронизировать счетчик JMC со счетчиком игрового сервера.
Это легко сделать сделав триггер с использованием данной команд на какое-либо игровое событие, появляющееся только с новым тиком (например, сообщение о том, что вы голодны, что начался день/ночь и т.п.).
#tmlist
См. #loop
#togglesubs
Syntax:
#togglesubs
Сходна с #ignore - команда #togglesubs
включает/выключает обработку замен текста. По умолчанию включено.
См. также: #substitute
#tolower
#toupper <varname> <text>
sets varname as UPPER(text)
#tolower <varname> <text>
sets varname as LOWER(text)
#toupper
#toupper <varname> <text>
sets varname as UPPER(text)
#tolower <varname> <text>
sets varname as LOWER(text)
#tray
Syntax:
#tray <hide|show>
Сворачивает / разворачивает окно JMC в system tray
См. #restorewindow, #hidewindow
#tskill
См.: #systemexec
#tslist
См.: #systemexec
#unaction
Syntax:
#unaction {отрезок текста}
Удаляет триггер, повешенный на заданный отрезок текста.
Примеры:
#unaction {crash into you}
Удаляет триггер, повешенный на строку “crash into you”
#unaction {*you*}
Удаляет все триггеры, повешенные на строки, в составе которых есть слово “you”.
См. также: #action
#unalias
Syntax:
#unalias {имя удалаемого алиаса}
Данная команда удаляет алиас с указанным именем.
Примеры:
#unalias {cc}
Удаляет алиас с именем cc
#unalias {c*}
Удаляет все алиасы, имена которых начинаются на с
.
См. также: #alias
#unantisubstitute
Syntax:
#unantisub {строка удаляемой антизамены}
Команда удаляет указанную(ые) антизамену(ы).
См. также: #antisubstitute, #unaction
#unhotkey
Syntax:
#unhotkey <код клавиши>
Удаляет хоткей
См. #hotkey
#unpath
Syntax:
#unpath
Удаляет последнюю запись из текущего буфера пути.
См. также: #path, #mark, #map, #pathdir, #savepath, #return
#unsubstitute
Syntax:
#unsubs {строка удаляемой замены}
Эта команда удаляет замену, заданную по отношению к указанной строке.
См. также: #substitute, #unaction
#unuse
Syntax:
#unuse [<имя>]
Удалить имя из списка скриптовых файлов. Если опустить параметр, то будет показан сам список.
См. также: #use
#unvar
Syntax:
#unvar {имя переменной}
Удаляет переменную с указанным именем.
См. также: #variable
#use
Syntax:
#use <имя_файла>
Дает возможность подключать несколько файлов со скриптами.
Если опустить параметр, то будет показан сам список. Список сохраняется в .set
файле профиля в виде последовательности команд #use
.
По умолчанию и самыми первыми грузятся commonlib.scr
и файл, имя которого совпадает с именем профиля (settings/<profile>.scr
), если они есть.
Кроме этого, есть список дополнительных файлов, которые будут загружаться во время перезагрузки. Изменить этот список можно двумя способами:
- Командой
#use <имя_файла>
. Имя приводится относительно папкиsettings
. Команда добавляет имя в список файлов, которые будут загружены при перезагрузке скриптов. - Через закладку “Файлы скриптов” в диалоговом окне Правка.
См. также: #unuse, #scriptlet
#variable
Syntax:
#variable {имя переменной} {значение}
Эта команда создает переменную с указанным именем и присваивает ей заданное значение.
Значение переменной может быть использовано для построения триггеров/алиасов и иных команд.
Имя переменной должно начинаться с буквы. Для последующего использования указателем на переменную служит знак $
.
Переменная может быть использована как часть любой строки или команды.
Появились встроенные переменные $YEAR, $MONTH, $DAY, $HOUR, $MINUTE, $SECOND
.
Они чаще всего являются глобальными.
А так же $INPUT
— в этой переменной всегда хранится содержимое строки ввода.
Примеры:
#variable food bread
Создается переменная с именем food
и ей присваивается значение bread
.
#variable container chest
Создается переменная с именем container
и ей присваивается значение chest
.
#action {are hungry} {get $food $container;eat $food}
Когда вы получите сообщение сервера о том, что вы чувствуете голод, вы автоматически возьмете хлеб из сундука и съедите его.
Если хлеба нет, но есть много мяса, присвойте переменной food
соответствующее значение, и процесс автонасыщения сохранится.
Вы можете использовать переменные в командах #math и #if:
#variable hp 100
#action {HP:%1} {#variable hp %1 ; #if{$hp<50} { #showme TIME TO FLEE!}}
Создается переменная hp
, ей присваивается значение 100.
В дальнейшем значение переменной корректируется триггером и содержит количество имеющихся хитпоинтов.
При этом это количество проверяется, и если оно меньше 50, выдается сообщение о том, что пора убегать.
См. также: #unvariable, #math, #if
#verbatim
Syntax:
#verbatim
Включает/выключает “verbatim” режим. В данном режиме строка, введенная пользователем, никак не обрабатывается и отправляется на игровой сервер без каких-либо изменений. Режим используется для управления игрой, создания сообщений и других подобных целей.
#wait
Syntax:
#wait <время задержки>
#wt <время задержки>
Задает задержку на отправку всех команд в мад, задается в децисекундах (1/10 секунды).
Не учитываются TTcommands, прямой вывод в МУД (например jmc->send()
)
#wt 0
#wait cancel
#wt cancel
Отключают задержку и очищают очередь команд
Работает только для первой команды, остальные отправляются без задержки. Кажется баг
#wamp
См.: #winamp
#wdock
Syntax:
#wdock <окно> [disable]
Запрещает докинг окна к сторонам главного окна и другим окнам вывода.
if this window never was target of wpos then it will be in free fly.
#whisper
См.: #daa
#winamp
WINAMP - command for controlling WinAMP media player from JMC itself.
syntax:
#winamp {command}
#wamp {command}
command can be on of the following:
- previous - plays previous in list track
- next - plays next in list track
- play - starts playing
- pause - pause/unpause
- stop - stop playing
- fadeout - fadeout and stop
- stopafter - play current track and stop after
- rewind - fast-rewind, 5 sec back
- forward - fast-forward, 5 sec forward
- start - to the beginning of the playlist (not in shuffle mode)
- end - to the beginning of the playlist (not in shuffle mode)
- elapsed - set time showing to elapsed (positive number)
- remaining - set time showing to remaining (negative number)
- ontop - make WinAmp window ‘always on top’
- doublesize - make WinAmp window doublisized
- volume+ - raise volume by 1%
- volume- - lower volume by 1%
- repeat - toggle repeat mode
- shuffle - toggle shuffle mode
- close - close WinAmp
#wlog
Syntax:
#wlog <окно> <файл> [append|overwrite|html]
Создает отдельный лог для окна.
См. также: #log
#wname
Syntax:
#wname <окно> [название_окна]
Устанавливает новое название окна.
#woutput
Syntax:
#woutput <окно> [цвет] <текст>
Выводит цветной текст в заданное окно (можно с ANSI, можно аналогично #status или #output).
Скриптовый аналог: Jmc.woutput(wnd, text [, color]);
Окно 0
является обычным окном вывода в старой жабе. Номера окон - от 1 до 10.
Также метод Jmc.woutput()
можно использовать в скриптах.
#wpos
Syntax:
#wpos {окно} {x} {y}
Позиционирование окна. При перезагрузке жабы окно (если недоченное) встанет именно в это место.
Это единственный способ заставить окно висеть в нужном месте постоянно.
#wpos {wnd} {x} {y}
used for non-docked output windows to position it to defined
point. After relaunch this window (if not hidden) will be set
to same place. it is the only method to make window stay at
one point. coordinates are in screen coordinates system, not client
#wpos {wnd}
shows coordinates window must be at
#wpos {wnd} reposition
positions window to coordinates it must be at
#write
Syntax:
#write {имя файла}
Эта команда сохраняет все текущие заданные макросы, алиасы, триггеры, замены, гэги, антизамены, переменные и подсветки в файл с указанным именем.
#wshow
Syntax:
#wshow <окно> [toggle|show|hide]
Показывает или скрывает окно. Недоченное показанное, но не скрытое, а только закрытое, окно считается показанным
#wt
См.: #wait
#zap
Syntax:
#zap
Закрывает текущее соединение. Используется для разрывания связи с игровым MUD-сервером.
См. также: #connect