Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: jmc 3.28
DF2 :: ФОРУМЫ > Игровые форумы > MUD DF2 > МАД-клиенты
Страницы: 1, 2
Ennin
я тута подумал и решил выложить урезанную версию беты на обозрение
http://gryphon-clan.ru/jmc/j32813b.rar
Craya
у мня не работает
#log logs/$YEAR/$MONTH/$DAY/$myname.log
хотя все переменные определенны
Ennin
что пишет?

Добавлено ([mergetime]1162240581[/mergetime]):
и да... автоматически жаба не создает, так что все папочки должны быть созданы, а файлик открыт на эксплюзивный доступ (если существует)
#log ./logs/$myname/$YEAR/$MONTH/$DAY/$YEAR-$MONTH-$DAY.log append - у меня все работает
Ennin
http://gryphon-clan.ru/jmc/

Что нового

## - считается за комментарий (как nop). любое количество символов # и все, что идет за ними, будут игнорированы

#comment <char> - задает символ комментария. все команды, начинающиеся с такого символа, будут игнорированы
например, #comment /;/а это коммента, ребяты.
правила для символа такие же, как и для #char

#spit (#lick) <filename> [format [options]]
format - строка для обработки. вместо каждого символа @ будет вставлена
очередная строка из файла. если формат пуст, то считается @. если не пуст, но
собака там отсутствует, то она добавляется в конец.
options может содержать в принципе только символ "n" - все остальные игнорятся
ключ n позволяет игнорировать пустые строки. если считанная строка пуста, то берется
следующая

не помню, было ли в прошлой публичной версии - опция оставлять в строке ввода только первый токен

#multisub - сделал

сделал 5 статусных окошек. больше не имеет смысла без урезания их размера
ибо тупо не будет влезать на меньших разрешениях. каждое статусное окошко
имеет размер 150. при разрешении х1024 еще парочку впихнуть можно, а при меньших?

#wt (#wait) <delay> - задает задержку на вывод в децисекундах. весь ввод для парсинга будет задержан в очереди.
с другой стороны, во-первых, не блокируются команды клиента, во-вторых прямой вывод в МУД.
то есть, например, можно использовать что-то типа #script $main::jmc->send("ааа, ахтунг, у меня вывод задержан");

#<num>, #loop - изменены. обе команды переданы под контроль отдельного цикла, каждой добавлена возможность
задержки (тоже в децисекундах).
#<num>[:<delay>] == цикл от 1 до num.
#loop {<num>[,<num2>][:<delay>]} == если указан второй параметр, то от num до num2
иначе от num до 0.
если delay не указан, считается нулем и цикл не задействует таймер.
иначе ищется свободный таймер и цикл передается под его контроль. всего я выделил
под это дело 16 таймеров (0..15). если свободный таймер не найден, то и цикла не получится
может быть, позже выделю больше. пока не вижу необходимости, 16 - это много.
#break - прерывает цикл. второй вызов убивает (обнуляет).
#ball (#breakall) - вызывает #break для всех циклов
#pinch - возобновляет цикл, если он неактивен и работоспособен (есть первая/вторая граница, команда и задержка)
#pall (#pinchall) - вызывает #pinch для всех циклов
#tmlist - список активных циклов

#race
#race format - формат бега (для ДФ, например, run @)
#race move [<walk>] - запулить бегом.
пример: #race format run; #race move 6e10nd ==> run 6e10nd
без параметра запускает последний путь
#race reverse = реверсит последний путь, запускает move
пример: #race move 6e10nododwsowsd ==> run 6e10nododwsowsd
#race reverse == >run unoeneouou10s6w
на ДФ конечно есть реверсинг, но быстро поставить минус не всегда можно, а
забиндить #race reverse и заалиасить #race move - оч. просто и навсегда...
ну, и на других мирах такой фичи нет.
главное - не алиасить на "#race move" run, если формат начинается с run - получится
бесконечный цикл.

в диалог цветов добавил кнопку рестора дефолтных

в скриптовый движок добавил метод wOutput - но для вас он в лучшем случае работает как wOuput(0,string) -
как аналог метода output. когда будет релиз окон - пригодится

#sos
#sos <group> <name> - добавить шаблон (group=oneof(action,alias,variable,hotkey))
#sos list - просмотреть список текущих шаблонов
#sos clear - очистить список текущих шаблонов
#sos save <file> - пройтись по допустимым группам и сохранить в file все объекты,
соответствующие шаблону. например, #sos hot NUM сохранит все горячие клавиши,
срабатывающие на нажатия на кнопки "калькулятора". #sos act ^ сохранит все
триггера, считывающиеся с начала строки.

кстати, кто не знал - у write не совсем тот формат, что предполагает хэлп. можно указать и группу.
то есть записано будет только то, что относится к данной группе. вот.

что касается нулевой задержки -
if ( more_coming && GetTickCount() - lastRecvd >= MoreComingDelay )
то есть куда уж дальше-то?

копирование с АНСИ - вряд ли будет.

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

кстати, два вопроса (подозреваются баги):
а) у всех ли не работают на хоткеях Shift?
б) у всех ли не работает jmc.DropEvent в реальных условиях (например, на OnIncoming)

Добавлено ([mergetime]1163408709[/mergetime]):
в общем, оттестите это, доделаю еще одну вещь - будет релиз...

Добавлено ([mergetime]1163408936[/mergetime]):
Цитата(Atlant @ 05 Nov 2006, 02:17)
Я про то же, что и ты. После тог окак вышла надпись - включается таймер на две секунды. После истечения двух секунд жаба выдаст такую надпись: #TICK. Второй триггер как раз на нее и срабатывает.

Добавлено ([mergetime]1162682239[/mergetime]):
Хм.. щас заметил такой косяк в жабе.. оно если время мало ставишь надпись #TICK не выдает..

минимум - 20 секунд в тике. вот и не получится
Ennin
#abort <num> == #break <num>;#break <num>

#resume == #pinch

#llist = #tmlist

#wait - фикснуты несколько баг с очередью.

#grab [num] <filename> [format] - достает строку номер num из filename и замещает ею %0 в format. итог посылает в муд. номер строки сохраняется только если прошлый вызов касался того же файла.

#race format, #lick - обрабатываться будет не @, а %0

#num, #loop теперь выполняют первое действие мгновенно, второе через delay.

для соответствия комменту первый символ команды должен быть не обязательно #, а нужный CommandChar
xska
#multisub работает как надо, спасибо! Только вот сообщения нет никакого, включен он или выключен, а хотелось бы...
Возможно ли контролировать последовательность применения сабов? Например, так же как action - через приоритеты?

И еще, я правильно понял, что в бета-версии нет дополнительных окошек вывода?
Ennin
1. фиксен баг с листом субов в визуальной настройке
2. кнопка "стандарт" цветов теперь просто обновляет диалог, не выходя из него.
3. появилась команда #message LOGS для отключения сообщений от системы логирования
4. теперь команда #log, если параметр не overwrite|html И имя файла то же, что и есть,
НЕ БУДЕТ закрывать лог и начинать новый туда же. искусственно повторить эту ситуацию можно,
закрыв лог и снова открыв.
5. Сообщение "Движок скриптов перезапущен" теперь можно ДРОПАТЬ. в общем, триггер на нее вешать
можно. в принципе, говорите, если надо добавить такую ж возможность для еще какие-то сообщений.
сообщение "соединение утеряно" теперь такое же.
#action {^#Соединение утеряно} #scriptlet save_variables()
6. к вопросу токенов в командной строке - команда #clean очищает строку. удобно повесить на хоткей.
либо же
Код
   Function OnInput()
   {
     if ( jmc.event == «aaa» )
  {
       jmc.showme(«Don’t type stupid aaa command!!!!!»);
       jmc.DropEvent();
     }
   }

подобно можно выстроить также обработку вводимого текста, и в нужных случаях обрабатывать
#clean. как правило, это нужно для разовых команд типа quaff, eat etc. хотя suum cuique,
кому-то напротив, надо будет оставлять токен только для каких-то команд (mb say, gos, chat, hero)

если кому-то интересно, выложу файло.
Craya
у мня тут непонятки

значит стоит у мня так
#var myname Farry

дальше делаю так
#log logs\\$myname\\$YEAR_$MONTH_$DAY.txt
получаю
#Запись в лог {logs$myname$YEAR_12_04.txt} включена.

если так
#log logs\\Farry\\2006_$MONTH_$DAY.txt smile.gif
то
#Запись в лог {logs\Farry\2006_12_04.txt} включена.
что и хочу получить

как мне с этим бороться?
Ennin
я бы посоветовал слэш нормальный ставить
Monf
Ахтунг! Баги!
Хотите, чтобы жаба вылетела со всеми любимой ошибкой: “В приложении обнаружена ошибка, сия прога будет закрыта, приносим свои извинения”? Тогда за дело! Нет! я говорю не о банальном вложении #alias в #alias.

Код:
#action {строка действия}{#read Death.md}
В файле “Death.md” (если хотите: *.txt это не важно) у нас лежат выполняемые команды, предположим #showme. Строк с командами много, штук эдак под 30, каждая команда начинается с новой строки.
Создайте выполняемый файл и наполните его, к примеру, 33мя подобными строками:
#sho {[0\;36m !! [0\;37m}
Но дело не в количестве строк или команд, а в объеме файла (или в количестве символов хз). Достаточно всего менее 2КБ чтобы пустить на дно нашу jmc.
Однако если попытаться просто считать этот файл, набрав команду:
#read Death.md
с клавиатуры – то все нормально работает!
Также все замечательно работает, если вывести файл в окно вывода посредством команды #output.
Проблема именно с #action.
Аналогично и с новыми возможностями:
#spit Death.md
#lick Death.md
Если попытатся задать каждой строке алиас например:
#ali {-Death1-}{строка}
#ali {-Death2-}{строка}
и вызвать вывод посредством алиасов командой:
#action {строка действия}{#loop {1,33} {-Death %0-}}
Однако, помогло: строки неторопливо поползли одна за другой, но это только если воспользоваться окном Эмуляция MUD, а если подключиться к реальному маду, то когда сработает экшн – все опять вылетает, только еще с сообщением об инструкции обратившейся не по адресу!
Сразу скажу, что скрипты не помогают.
Не буду объяснять, какие неудобства это причиняет, кто знает – тот поймет насколько это вредно и даже опасно. Все это срабатывает также, если несколько строк, на которые действуют разные #action, появляются сразу все вместе, и даже если по отдельности они не вызывали подобной ошибки, то все вместе точно ее вызовут, ели команды достаточно большие.
Если пофиксить сей ужасный баг то, имхо, больше уже ничего делать не нужно! А его то и нужно фиксить в первую очередь!

Вот еще маленький глюк, появившийся в бетта версии 3.28. В старой версии его не было.
#alias colors {#loop {29,37} {#showme **%0** }; #showme {[1\;32m}}

Прописываем команду, запускаем алиас colors – пока все нормально, а теперь вызываем его еще раз. Попробуйте вас порадует. ,)
Возможно загвоздка в последнем #showme {[1\;32m}, а точнее в коде цвета “[1\;32m”.
Лично у меня при этом выполняетс цикл от 29 до **371**.
Заренее благодарен!
Ennin
баги, глюки, проблемы
Devastator
Здрасте, у меня такие предложения или пожелания smile.gif
1. Сделать так чтоб можно было вести лог уже после обработки тригерами хайлайтам, сабсами. чтоб конфиг выглядел такимкаким я его вижу, а не чистый лог пришедших и отправленый строк, допустим естьщас ввести #showme тряляял, это срока в лог не запишется а хотелось бы.
2. Мб надо ввести базу шмота, дбустим как в B.o.a.t и чтоб допустим если у тебя шмотка есть в базе данных, если из мада приходит строка где содержится название данной шмотки , само название шмотки подцвечивалось бы, и при наведени мыши на название, появлялось бы прозрачненькое окошко с инфой о шмотке.

p.s. по мне, мне хватило жабы команой #system, разделение хоткеев на группы, и мультисбасы , и вот с ведение логов которое описал выше smile.gif было б просто замечльно.
p.p.s www.mud.nm.ru там чел тоже жабы подымает, не так конкретно как вы но всежеsmile.gif там в его версии жабы есть каманда #portion очень полезная smile.gif

икстати када у вас релиз?
Ennin
1. почитай лог изменений - будет проще. #logadd тебе в помощь
2. это делается скриптами
Devastator
-> 2. это делается скриптами
а можно посмотреть скриптик?)

над первым еще думаю smile.gif
Ennin
низзя, у меня этого нет. есть у ранаста для ммс, но в принципе тот же перл
Ennin
1. разрешено #sos <type> * - неясно, зачем, но пусть будет (2 alf)
2. теперь каждую секунду рефрешатся статусбары (2 shaidar)
3. для logadd разрешены переменные, в т.ч. %0..9. аргумент теперь жадный (2 o3n)
4. добавлена #nodrop - не тестил ВООБЩЕ, тесты на вас (2 breeze)
5. проверил #alias colors {#loop {29,37} {#showme **%0** }; #showme {[1\;32m}} - все работает. видимо, что-то с памятью.
6. на mud.nm.ru нет контактного адреса. то есть если вам нужны какие-то фичи, которые есть у него, с вас контакты с челом на предмет юзания его сорсов. свою версию, раз есть его, я писать, ессно, не буду. подсказка суфлерским шопотом: смотри about
7. #help <command> - показывает хэлпу по команде в окне жабы. хэлпы хранятся в helps, файлы <command>.jht. кому надо - наполняйту, вставим в релиз

вот бета: http://zajac.ru/ennin/jmc328.zip

на данный момент я собираюсь доделать окна, сворачивание в трей и wheel+click, ctrl+wheel, shift+wheel. после чего (см. 6) работы над жабой собираюсь свернуть и релизнуть jmc 3.8. некоторые минорные нереализованные вещи и нефиксенные баги останутся на совести mccp, да будет так, commit.
Ennin
1. теперь юзверь может изменять сообщения от движка ttcore.
для этого в jmc.ini/Main/LangFile надо прописать путь к .ini файлу с сообщениями
language.ini с разделом MyLanguage содержит строки. так, строка 1180 (Установлена новая длительность тика), будет представлена
в виду str1180=#Hey dude, new tick size. номера строк и их формат можно стащить в .rc файле.

2. попытался сделать работу с колесиком - у меня мышка без оного: не тестил.

http://zajac.ru/ennin/jmc328u.zip
Devastator
У меня нету сейчас возможности сравнить клиенты, но такой вот вопрос, вывод инфы на экран будет быстрее чем раньше?
Ennin
в каком плане быстрее? если о тех фичах, что реализованы в версии, что на муд.нм, то см. выше
Ennin
1. Переделал и исправил баги в системе замены сообщений для ttcore. добавил настройку секции, из которой будут браться строки.
добавил управление через настройки-профиль. можно указывать локальный или глобальный путь к файлу.
теперь вопрос - надо ли кому-то настраиваемость языка основного интерфейса (самого окна жабы) - так же через .ини
наберется 10 человек - буду делать. иначе - нет.
следующие версии я наверное буду делать на английском языке, а сообщения переводить через .ини, так что выгоднее
набрать толпу, скажущую "хотим".

2. теперь колесиком можно убрать сплиттер, прокрутив до конца

3. для шифта и альта в сочетании с колесиком прокручивается не страница, а 1 строчка.

http://zajac.ru/ennin/jmc328u.zip

статус забивания: осталось сделать трей и wpos
gamecreator
1. если следующие на инглише, то я хотю.
Shaidar Haran
А я хочу английский, так что на перевод пофиг. На нем привычней.
othreen
думаю это не есть кровь_из_носу необходимым добавлением, но имхо это довольно вкусно ) пропишу себе укр... )))) *мечт

За динамически настраемый язык интерфейса +1.
Devastator
эх когдаже будет это событие smile.gif
Ennin
в опчем, решил я пока забить на трей. вуаля
http://df2.ru/files/jmc35.zip
внутри все файлы + gif показывающий 6 окон сразу + описание команд работы с окнами. играйтесь как хотите, тесты надобно.
также в пакетике language.ini с ресурсами ttcore на русском и украинском
othreen
вау) thanx a lot )

respect.
Devastator
очень порадовали нововведения smile.gif
хочеться увидеть еще одну фичу в этой ветки развития jmc
а именно - переменную $INPUT,
которая хранит в себе содержание командной строки jmc,
чтоб можно было сделать что-то типа
#HOT F1 {к !оцепенение! $INPUT}
в командной строке пишим имя моба, чара и нажимаем F1
очень желательно чтобы она была как READ так и WRITE
чтобы в тригах можна было в командную строку шось заносить
gamecreator
а можно сделать чтоб jmc не надо было реинсталить чтобы юзать скрипты
Ennin
dеvastator, переменную такую я сам думал. мб сделаю. но без write

gamecreator, лениво. инсталлятор скорее всего сделаю, не боле
Craya
а как язык интерфейса поменять ? где чего поменять?
gamecreator
не сохраняет и не загружает хистори
gamecreator
и еще если перейти к окну не на весь экран а потом к жабе, то статусы пропадают
gamecreator
можно ли вернуть фокус окну жабы командой и если да то какой?
Ennin
#flash
правда, в XP временами не срабатывает и только мигает

хистори иногда бывает не сохраняется. только иногда

статсы я сделал обновляющимися каждую секунду. винды какие?

Добавлено ([mergetime]1172474229[/mergetime]):
язык самого окна менять нельзя
язык сообщений движка tintin меняется в jmc.ini [main]->langfile и ->langsect. или через options->options dialogue->profile
Ennin
обновил архив, добавил забытый текст с описанием команд
сейчас поддерживается переменная $INPUT - на чтение
gamecreator
винда у меня хр. кстати после установки нового профиля хистори комманд начала записываться в другой файл. не могу его найти

Добавлено ([mergetime]1172497640[/mergetime]):
все, нашел. странно что он показывался у меня старым.
Shaidar Haran
Мб ты попутал дату создания и дату изменения?
gamecreator
не, при открытии там были старые команды
Ennin
обновил архив. парсинг команд переведен на качественно иной по сравнению с if(strcmp(command,"variable"))variable_command(arg) уровень. покрасивше стало. хз, вроде работает, но вдруг...
добавил еще команду winamp - смотрим #help winamp
и забыл в тексте упомянуть wlog - смотрим #help wlog
Ennin
нифига не могу подконнектиться к своим обычным хостам... выложил сюда: http://bssen.nm.ru/jmc35.zip

откровенно не помню, что сделал с прошлого раза. говорил мне альфукен, что надо на жабу
ЦВС повесить, а я не слушал. ну что уж помню:

1. shift+enter будет оставлять строку ввода и выделять текст
ctrl+enter будет очищать строку ввода
эти правила действуют выше, чем "очищение ввода" и правила токенов
2. #autoreconnect [on|off]
включает - выключает автоматический реконнект
можно юзать в ACT
3. с окон вывода (в т.ч. основного) теперь можно копировать с АНСИ кодами.
но есть ограничение - корректно копирует только целые строки. связано это с тем, что при выделении куска строки запоминается длина выделенного куска БЕЗ УЧЕТА возможного анси
ползать и исправлять это мне лень, посему сделал так:
при копировании куска строки анси НЕ копируется
при выделении строки или строк анси копируется
4. теперь при клике на ansiwnd буфер НЕ очищается, если не было выделено ни одного символа
иначе таки работает процедура копирования выделенного в буфер

Добавлено ([mergetime]1176299582[/mergetime]):
в архиве описание изменений, jmc.exe, ttcore.dll и ttcore.reg - регистратор JMC объектов. теперь нет необходимости скачивать установщик. по крайней мере, я так думаю
horneds
в window.txt написано что скриптовый аналог #wooutput
это jmc.wOutput

но когда я пишу в скрипте jmc.wOutput(1,'test') или #s jmc.wOutput(1,'test') в жабе
выкидывает ошибку

Ошибка выполнения Microsoft JScript
Объект не поддерживает это свойство или метод
String:0 Error:0 Scode:

хотя #woutput работает корректно
какой же тогда это метод в JS ?

надеюсь понятно спросил, я в JS ламер
Ennin
установлены ли объекты для движка?
у меня #scri $jmc->wOutput(0,"test") - работает. учтите, правда, что в качестве движка у меня стоит перл
horneds
ну черт его знает на работе редактирование реестра закрыто админами, поэтому ключики из reg файла не добавляются

а дома регил ключи и все равно свойство jmc как wOutput не работало
можно бы конечно обойтись и jmc.parse('#woutput '+n+' '+line) но я хочу строку прямо с АНСИ кодами вылавливать в скрипте и сразу кидать на доп. окно
так вот когда там много цветов чтоли он на ; дробится
и часть строки идет в окно, а чать как команда в жабу
разделитель менять не хочется )

кстати тут ктото писал что #read из скриптов пропадает
это автосохранение, выключается редактированием в settings соответствующего opt файла

было:
AutoLoadFile=Default.set
AutoSaveFile=Default.set

а нужно:
AutoLoadFile=Default.set
AutoSaveFile=

правда при этом все редактирогвание скриптов только вручную в вашем set файле
но это имхо удобнее тк структура сохраняется
Ennin
можно проверить версию ttcoreex.dll. или поэкспериментировать с регистром метода
horneds
да нет все ок )
просто по ключикам не регистрировал
чтобы все заработало достаточно создать и запустить в каталоге с жабой батник следующего содержания (для всех windows)

Цитата
%WinDir%\system\regsvr32.exe ttcoreex.dll
%WinDir%\system32\regsvr32.exe ttcoreex.dll
Craya
Энни, скажи как поменять интерфейс на русский. в твоем последнем билде (должокmoral.gif)
Craya
Энни, можно запустить твой билд без инсталляции старой Жабы, чтоб работали скрипты?
А то пересела на другой компутер, утянула со старого твою Жабу с конфигами, а на новом компе не могу запустить - скрипты не работают, старой Жабы нет, сайт у нее чего то поменялся.
что там сделать чтоб скрипты заработали, длл зарегить? все равно не работает.
Ennin
и саму длл, и объект. дллка раз зарегена, ищи тута в архивах .reg файл

а старая жаба в файлах дф валяецо
Aldaran
Здравствуйте!
Пользуюсь измененной JMC несколько месяцев...
Все было замечаельно...Пока не стал я ковырять конфиг и понял, что мне нужно удалить замену с помощью старой команды #unsubs...

#unsub
#Неизвестная команда.


Еще хотелось бы, чтобы команда #run загружала файлы не только из самой директории JMC (домашнего каталога), но и с любого другого диска/папки...

Хотелось бы увидеть в новых версиях трей...
Чтобы #play могла проигрывать не только *.wav, но и другие форматы, хотя бы *.mp3.

Возможность запускать музыкальные файлы с помощью Winamp'а:
#run "c:/program files/winamp/winamp.exe d:/my music/other/some cool shit."
#run "d:/winamp/winamp.exe f:/arda/jmc/sound/cool.mp3"
othreen
Aldaran, вероятно ты юзаешь старую версию, зайди и скачай новую на http://gryphon-clan.ru/jmc/
Там под сабсты даже закладка в опциях сделана, для визуальности так сказать :)

И с винампом там работа осуществлена (подробнее см. графу "новое" на сайте) а вав оно проигрывает ибо стандартная ф-ция винды, а мп3 - сжатое аудио, проигрывает его не каждая, хм, фигня. вот.

#run можно так использовать! просто пишешь полный путь как ты сам написал:
#run "c:\windows\system32\rundll32 -keyboard,disable"
к примеру.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.