#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.

См. также: #connect, #zap

Обсуждение


#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 key
  • ENTER Enter
  • SP Пробел
  • PGDN Page Down
  • HOME Home
  • UP Стрелка вверх
  • DOWN Стрелка вниз
  • DEL Delete
  • DIV Серый /
  • MULT Серый *
  • TAB Tab
  • ESC Escape
  • PGUP Page Up
  • END End
  • LEFT Стрелка влево
  • RIGHT Стрелка вправо
  • INS Insert
  • NUM0-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

См. также: #info, #echo

Обсуждение


#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 catched
  • s - 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] {текст} [цвет]

Изменяет статусную строку

См. также: #output, #woutput

Обсуждение


#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 {имя файла}

Эта команда считывает текст из указанного файла и отправляет его на сервер без какой-либо обработки. Полезна для управления игрой или написания больших сообщений.

См. также: #write, #read

Обсуждение


#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 {имя файла}

Эта команда сохраняет все текущие заданные макросы, алиасы, триггеры, замены, гэги, антизамены, переменные и подсветки в файл с указанным именем.

См. также: #read, #textin

Обсуждение


#wshow

Syntax:
#wshow <окно> [toggle|show|hide]

Показывает или скрывает окно. Недоченное показанное, но не скрытое, а только закрытое, окно считается показанным

Обсуждение


#wt

См.: #wait

Обсуждение


#zap

Syntax:
#zap

Закрывает текущее соединение. Используется для разрывания связи с игровым MUD-сервером.

См. также: #connect

Обсуждение