
![]() |
![]() |
![]() |
![]() |
Аладон MUD |
![]() ![]() ![]() ![]() |
Здравствуйте Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
Страницы: (7) « Первая ... 4 5 [6] 7 ( Перейти к первому непрочитанному сообщению ) | ![]() ![]() |
Колко |
Отправлено: Jan 12 2018, 15:41
|
Мидл ![]() ![]() ![]() Группа: Участники Сообщений: 234 Пользователь №: 2761 Регистрация: 11-February 11 ![]() |
Сделать возможность поставить тикер меньше чем на 10 секунд. Удобно при каче - поставил 3-ех секундный тикер и по срабатыванию тикера выпад и ходишь чаек попиваешь.
-------------------- Шрайк
|
Фелей |
Отправлено: Jan 13 2018, 16:12
|
||||
Ньюб ![]() Группа: Участники Сообщений: 75 Пользователь №: 2167 Регистрация: 26-February 09 ![]() |
Если необходимо выполнять некоторое действие просто с некоторым периодом, то все уже реализовано. Для этого можно использовать циклы. Ниже приведен отрывок справки Nerevar, с полным текстом которой можно ознакомится по адресу http://nerevar.github.io/jmc/pages/command/
Например, для того чтобы постоянно каждые три 3 секунды выполнять выпад, можно набрать команду
Первое число задает количество повторений (100000 каждые три секунды будут длиться больше 3-х суток). Второй аргумент определяет период повторения в десятых долях секунды - в приведенном примере, 30 десятых дает 3 секунды. Каждый цикл для своей работы требует отдельного таймера. Сейчас в jmc на эти цели выделено 16 таймеров, т.е. можно одновременно запустить до 16-ти независимых циклов, с разными периодами и командами. |
||||
Колко |
Отправлено: Jan 15 2018, 14:10
|
Мидл ![]() ![]() ![]() Группа: Участники Сообщений: 234 Пользователь №: 2761 Регистрация: 11-February 11 ![]() |
И еще у меня есть вредная привычка, заспамливать действия.
Бывает нажму разгром слишком много раз, команды запишутся в очередь на выполнение, а потом сбежать не могу. Приходится в быстром порядку через #zap рвать связи и конектится по новой. Может есть какая команда или сочетание клавишь, чтобы очередь команд чистить. В http://nerevar.github.io/jmc/pages/command/ сказано что #wt 0 должна очищать очередь команд - реально же она это не делает. -------------------- Шрайк
|
Фелей |
Отправлено: Jan 16 2018, 20:02
|
||
Ньюб ![]() Группа: Участники Сообщений: 75 Пользователь №: 2167 Регистрация: 26-February 09 ![]() |
Когда вы много раз нажимаете команду, например, тот же разгром, то задержка в их исполнении возникает не со стороны jmc, а со стороны сервера. Jmc отправляет команды сразу без задержек. В этом можно легко убедиться воспользовавшись сниффером. Принятые на стороне сервера команды находятся в буфере, связанном с открытым соединением между клиентом (jmc) и сервером (Аладоном). Клиент не имеет доступа к буферам находящимся на сервере, и отправленные команды просто так удалить невозможно. Когда вы разрываете соединение, буфер со всеми заспамленными командами становится недоступным. Все оставшиеся в нем команды по факту теряются, и при повторном соединении вы можете спокойно вводить новые. Это все я к тому, что нельзя сделать команду в jmc, позволяющую очищать заспамленные команды, т.к. они уже переданы на сервер. Могу лишь порекомендовать не спамить кучу команд разом. Насчет команды #wt или #wait. Они позволяют формировать очередь команд со стороны jmc. Если набрать команду
то, через 5 секунд на сервер будет отправлена команда "разгром". Особенность в том, что задержка в этом случае формируется со стороны клиента. Команды задерживаются в специальном буфере в jmc, к которому естественно есть полный доступ. Если до истечения указанных 5-ти секунд, набрать команду #wait cancel, то команда "разгром" отправлена не будет. С описанием команды #wt 0 есть неточность - она не очищает очередь команд, а просто сбрасывает таймер и все задержанные команды мгновенно уходят на сервер. Это так и задумывалось. Неточность в справке. |
||
Энерхан |
Отправлено: Apr 7 2018, 14:41
|
Ньюб ![]() Группа: Аватары Сообщений: 66 Пользователь №: 3653 Регистрация: 12-March 18 ![]() |
Ребята не убивайте сразу,но у меня есть два вопроса.
1.Возможно ли сделать какой то алиас или тригер для вывода информации о СТАТУСЕ группе(хп,манна и т.д.) в отдельное окошко? 2.Как сделать тригер-команду для вывода автоматического ГГ мол Вася призвал меня к себе в такую то комнату?. Спасибо. |
Фелей |
Отправлено: Apr 26 2018, 21:33
|
||||
Ньюб ![]() Группа: Участники Сообщений: 75 Пользователь №: 2167 Регистрация: 26-February 09 ![]() |
1. Проще всего через внешние скрипты
этот код необходимо сохранить в отдельном файле и добавить в список файлов скриптов. Этот скрипт выполняет следующее: при наборе команды "гр" будет выводиться примерно та же информация о группе, но с подсветкой малых хп, маны, мувов. Если надо вывести в отдельное окошко, то вместо команды showme надо поставить woutput. 2. Например так:
Это для версии 3.7+, для более ранних версий надо делать проверку на *эмо Не работает, если призывают в темное место и не видите в темноте и без света |
||||
Колко |
Отправлено: May 24 2018, 14:20
|
Мидл ![]() ![]() ![]() Группа: Участники Сообщений: 234 Пользователь №: 2761 Регистрация: 11-February 11 ![]() |
Подскажите, а как сделать автоввод команды на коннект к серверу при открытии клиента?
-------------------- Шрайк
|
Фелей |
Отправлено: May 24 2018, 18:33
|
||||
Ньюб ![]() Группа: Участники Сообщений: 75 Пользователь №: 2167 Регистрация: 26-February 09 ![]() |
Можно, например, вписать команду в файл скрипта через Parse. Что удобно, в этом случае к моменту вызова команды уже будут загружены все переменные, триггеры и алиасы из конфигурационного файла. Ниже простейший пример.
Строчку сохраните в отдельный файл и добавьте в список используемых скриптов (Меню->Опции->Объекты JMC->файлы скриптов) Если закроете клиент и откроете снова, то сразу после загрузки конфигурационного файла будет выполнена команда #connect aladon.sovintel.ru 9000. Если хотите не просто соединится с сервером, а еще и войти персонажем, то можно написать простейшие алиасы:
После этого в том подключаемом файле, где писали строчку jmc.Parse("#connect aladon.sovintel.ru 9000");, заменяем ее на jmc.Parse("зайтипоследним");. Тогда каждый раз при открытии клиента вы будете входить последним персонажем, которым вошли с помощью алиаса 'зайти'. Соответственно, чтобы эта строчка сработала, необходимо хотя бы раз войти с помощью алиаса 'зайти' (чтобы инициализировалась переменная myname). P.S.: алиас 'зайти' принимает один аргумент - имя персонажа. Например, 'зайти Колко' Это сообщение отредактировал Фелей - May 24 2018, 18:40 |
||||
Ауст |
Отправлено: Jul 18 2018, 06:46
|
Ньюб ![]() Группа: Участники Сообщений: 33 Пользователь №: 1136 Регистрация: 13-June 05 ![]() |
Добавь пожалуйста в клиент регулятор громкости, просто так.
-------------------- Иной
|
Калевала |
Отправлено: Nov 9 2018, 10:28
|
Хозяин Хелльстада ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1893 Пользователь №: 55 Регистрация: 15-April 04 ![]() |
Все ж таки хотелось бы вернуться к выводу инфы в разные окна и так чтобы в главное окно не выводилось эта инфа с прокруткой. Неужто так трудно сие чудо запилить?
-------------------- Кодерус Аладонус
|
Калевала |
Отправлено: Nov 9 2018, 12:07
|
Хозяин Хелльстада ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1893 Пользователь №: 55 Регистрация: 15-April 04 ![]() |
Да и еще, после обновления движка JScript в винде у меня перестали полностью запускать скрипты в жабе даже не знаю в чем тут может быть дело,
вообще команда #script перестала работать даже с VBA не пашет -------------------- Кодерус Аладонус
|
Фелей |
Отправлено: Dec 29 2018, 19:32
|
||||||
Ньюб ![]() Группа: Участники Сообщений: 75 Пользователь №: 2167 Регистрация: 26-February 09 ![]() |
Добавил. Новая версия https://github.com/Rrahh/jmc/releases/tag/3720 Регулирование громкости в окне настроек Главное Меню->Опции->Настройки, там поле с соответствующим названием, в котором можно установить громкость в процентах от системной. Для сохранения совместимости с Windows XP, пришлось сделать анализ звукового файла и перекодирование. Разбираться со всеми возможными форматами не хотелось, поэтому регулирование громкости задействуется только для файлов без сжатия с глубиной звука 8 и 16 бит, для остальных файлов используется старый код со 100-процентной громкостью.
Сложность в том, что нет простой возможности определить какие строки в какое окно вывести. Это необходимо объяснить жабе с помощью программы - встроенного или внешнего скрипта. И с их помощью можно распределить по окнам как угодно, примеры приводил в этой же теме. Для вывода отладочной информации можно пойти по другому пути - добавить к строкам префикс со стороны аладона и не выводить при ее выводе пустые строки и промпт. Для этого надо сделать отдельный вариант функции вывода. Тогда в жабе скрипт будет очень простым - отлавливание строк с заданным префиксом, и перемещение в отдельное окно. При этом в главном окне не будет никаких следов от отладочной информации.
Сейчас, наверное, уже не актуально, но отвечу для других пользователей с такой же проблемой. Больше похоже на то, что необходимо перерегистрировать библиотеку ttcoreex.dll. Это можно сдать либо запустив скрипт ttcoreex.bat, который лежит в папке жабы, либо вручную - выполнив от администратора команду regsvr32.exe /u ttcoreex.dll, а затем regsvr32.exe ttcoreex.dll |
||||||
Калевала |
Отправлено: Jan 11 2019, 23:26
|
Хозяин Хелльстада ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1893 Пользователь №: 55 Регистрация: 15-April 04 ![]() |
Актуально. Попробую на работе в понедельник, хотя у меня смутное ощущение, что я это уже делал. Почему бы если строка выбрасывается куда-то посредством команды woutput просто не выводить ее в главное окно?
Я гото в принципе вообще пойти на специализированный формат обмена сообщениями с клиентом жабы, но это к сожалению сделает ее узкоспециализированной под Аладон. А может можно какой-нибудь аддончик прикрутить к жабе специально для Аладона? Формат обмена мы в принципе делали с Кроникисом когда он флэш-клиент допиливал для Аладона. Можно его развить. Там правда было в формате XML, сейчас наверное я бы предпочел JSON. -------------------- Кодерус Аладонус
|
Калевала |
Отправлено: Jan 22 2019, 11:18
|
Хозяин Хелльстада ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1893 Пользователь №: 55 Регистрация: 15-April 04 ![]() |
Получилось перерегистрировать ttcoreex.dll там переписан ttcoreex.bat по другим версиям под десятку не выходило ничего. Ну и да все заработало.
-------------------- Кодерус Аладонус
|
Фелей |
Отправлено: Jan 22 2019, 19:21
|
||||||||||
Ньюб ![]() Группа: Участники Сообщений: 75 Пользователь №: 2167 Регистрация: 26-February 09 ![]() |
Не понял, проблема с ttcoreex.bat? С моим, который в инсталяционном пакете, или со старым без автоматического запроса привилегий? Поясни, пожалуйста, подробнее, чтобы понять где что поправить.
Текущее решение более гибкое. Если пользователь хочет убрать строку из основного окна, то ему необходимо всего лишь добавить одну команду #drop (для встроенных скриптов) или jmc.DropEvent() (для внешних). Например, при выводе разговоров в отдельное окно, многим привычнее оставлять исходные строки в основном окне. Это я к тому, что вывод в дополнительное окно не подразумевает обязательного удаления из основного. И в текущей реализации клиента, для этих не связанных между собой действий предусмотрены отдельные функции, что кажется логичным. Могу добавить дополнительную функцию, некую woutput2(), которая будет в конце вызывать drop строки из основного окна. Но, как мне кажется, это лишнее нагромождение дублирующих друг друга функций. И даже в этом случае, останется проблема с выводом пустой строки и промпта, о чем говорили несколько страниц назад в этой теме.
Имел в виду, что в жабе можно вообще ничего не менять, и получить удобный вывод отладочной информации просто изменив вывод этой инфы со стороны самого аладона. Не знаю каким образом посылается сейчас, ниже будут лишь догадки, возможно мне непонятны какие-либо проблемы. Если возможно более подробно описать каким образом сейчас выводится отладочная информация, то это помогло бы мне лучше понять суть проблемы. Итак, каким образом мне представляется решение: Пусть сейчас вывод отладочной инфы идет через функцию send_to_char (char *str, CHAR_DATA *ch). Вводим еще одну функцию
По сравнению с исходной функцией, вначале строки передается специальная кодовая последовательность, которая не должна встречаться в обычном тексте. В префиксе намеренно не поставлен символ новой строки, чтобы она шла единой строкой с полезной информацией. На стороне жабы просто добавляем триггер
Триггер выведет полученную строку с префиксом (которая послана с помощью новой функции) во второе окно, удалив из вывода в основное. Приоритет триггера лучше сделать повыше. Если требуется вывести несколько каналов отладочной информации в разные окна, то это легко реализовать введя несколько разных префиксов. И на каждый префикс в жабе сформировать свой триггер, в котором указать требуемое окно вывода. Не разбирался пока, на каком этапе в rom добавляется пустая строка и промпт. Похоже, что send_to_char в результате отправляет и с тем и другим. Поэтому надо вместо send_to_char взять функцию, которая отправляет только строку без промпта. |
||||||||||
![]() |
![]() ![]() |