Вторник
2017-10-24
10:44 AM
 

Корпорация М.И.Ф.
Сообщество исследователей MUD-миров
 
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSSГлавная | Клиент MMC - Страница 9 - Форум | Мой профиль | Регистрация | Выход | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 9 из 10«1278910»
Модератор форума: Терими 
Форум » Аладон » Разговоры об Аладоне » Клиент MMC (Настройка, воплощение идей и ответы на вопросы...)
Клиент MMC
ТеримиДата: Понедельник, 2007-06-18, 11:23 AM | Сообщение # 1
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Здесь будет рассмотрение строения и работы клиента ММС.

В частности будет рассмотрена написание и работа триггеров и алиасов, как сделать под себя конфиг, ну и прочее.
Здесь будем выкладывать самые интересные идеи по этой теме.
Отвечаем на любые вопросы и помогаем в написании модулей (конфига), принимаем идеи о воплощении чего-нить.

Топик "модерируют" Иохар и Терими, если кто хочет присоединиться к нам всегда пожалуйста.
Советуем использовать программу для написания модулей редактор Bred, либо мощнее Emeditor.
Клиент

Модули:

Так же прикреплен архив с конфигом ммс для Linux.

Прикрепления: 9307456.tar(770Kb)


Рожден я в этом мире и другого мне не нужно!
 
ИохарДата: Понедельник, 2009-04-20, 9:42 AM | Сообщение # 241
Полковник
Группа: Пользователи
Сообщений: 176
Награды: 0
Репутация: 5
Статус: Offline
С промптом это работа другого модуля. Наверно случайно загрузил, просто решение найти строки с status::substract_hour и закомментировать #.

Теоретизировать, не имея данных, опасно. Незаметно для себя человек начинает подтасовывать факты, чтобы подогнать их к своей теории, вместо того чтобы обосновывать теорию фактами.
 
ТеримиДата: Понедельник, 2009-04-20, 9:54 AM | Сообщение # 242
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Хотел разобраться с какого модуля тянется эта строчка, но думаю что лучше будет закомментировать, в ближайшее время точно из-за этого проблем не будет smile Так я и сделал. Выложил новую версию в шапке, хост - mud.aladon.ru и порт 9000.

Рожден я в этом мире и другого мне не нужно!
 
КрыгерДата: Понедельник, 2009-04-20, 11:11 AM | Сообщение # 243
Генерал-лейтенант
Группа: Пользователи
Сообщений: 608
Награды: 0
Репутация: 0
Статус: Offline
видимо нужен был модуль weather.pm
по крайней мере ошибка уже не появляется
ну то что порт можно поменять я понял, просто интересно почему стоял 8000 smile
кстати, хост смотрю поменялся... раньше вроде был aladon.sovintel.ru
 
ТеримиДата: Понедельник, 2009-04-20, 11:12 AM | Сообщение # 244
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Без разницы smile А порт стоял после проги alproxy, так как с 1 ip адреса двоем не выйти, вот и пользуюсь alproxy.

Ну что, теперь экспериментируйте, подключайте модули, описание практически у всех есть, если желание есть то изучайте модули, чтоб понять как они работают, по началу кажется что трудно, но это просто кажется, исключение составляет idbase, там просто ппц, хотя что-то мне нужно было, я полчаса посидел и сделал для себя нужное.

В планах доработать модуль лечения grouphill.


Рожден я в этом мире и другого мне не нужно!
 
КрыгерДата: Понедельник, 2009-04-20, 11:18 AM | Сообщение # 245
Генерал-лейтенант
Группа: Пользователи
Сообщений: 608
Награды: 0
Репутация: 0
Статус: Offline
на самом деле гораздо лучше самому подключить модули чем взять готовое ибо видишь что и где и если нужно можно что-то закоментить, что-то дописать, что-то исправить...
 
ТеримиДата: Понедельник, 2009-04-20, 12:44 PM | Сообщение # 246
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Это да smile

Вот вам доработанный модуль лечения grouphill.pm

Новые фичи:
1) Добавлено автоматическое лечение чара в зависимости от статуса если на него посмотреть (выглядит очень плохо, в ужасном состоянии), необходимо добавление человека в группу лечимых.
2) При вводе алиаса "дд" сканирует группу на наличии воинских рас (воин,вор,назгул,маг,паладин) и автоматом добавляет в список лечимых. Алиас "д" добавляет отдельного персонажа.
При добавлении персов показывает эхо, но при использовании модуля group.pm и задания статуса игр > 0, будет так же выводить сообщение добавление людей в группу.
3) Алиас "танк" добавляет танка в переменную и с помощью кнопок f5 и f6 можно смотреть на танка и обновлять соответственно.

Прикрепления: grouphill.pm(5Kb)


Рожден я в этом мире и другого мне не нужно!
 
JufonДата: Понедельник, 2009-04-20, 6:29 PM | Сообщение # 247
Рядовой
Группа: Пользователи
Сообщений: 11
Награды: 0
Репутация: 0
Статус: Offline
когда вы уже к ММС гуи прикрутите? )
 
ТеримиДата: Вторник, 2009-04-21, 1:20 AM | Сообщение # 248
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Да у тебя как раз много свободного времени,думаю тебе и нужно этим заняться =)
Насколько знаю ммс изначально не поддерживает гуй, то есть невозможно


Рожден я в этом мире и другого мне не нужно!
 
ТеримиДата: Вторник, 2009-04-21, 1:37 AM | Сообщение # 249
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Размышляю на одним вопросом и пытался сделать.
Касается испыта. Ты берешь булавку из трупа. Как сделать триггер с занесением в переменную двойного действия, для того чтобы кнопкой пойти на север и рассечь моба?


Рожден я в этом мире и другого мне не нужно!
 
ТеримиДата: Вторник, 2009-04-21, 1:56 AM | Сообщение # 250
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Еще есть идея, но пока не знаю как ее реализовать. Создается модуль хелпа, но в нем не будет прописано описание всех хелпов,все описание модулей будет браться из соответствующих модулей. Т.е. набираем "хелп" и будет выведен список алиасов со справкой о загруженных модулях, например, при наборе хелп: хелп автоед, хелп лечение,хелп хант и тэ.дэ.. При наборе "хелп лечение" будет справка о самом модуле и его алиасах, взятое из соотв. модуля.

Есть еще идея Иохара интеллектуального поиска idbase, обдумываю и скоро попробую делать, идея сложная и скорее всего потребуется помощь Иохара wink

З.Ы. Запарился тыкать на коммуникаторе =(


Рожден я в этом мире и другого мне не нужно!
 
ИохарДата: Вторник, 2009-04-21, 12:06 PM | Сообщение # 251
Полковник
Группа: Пользователи
Сообщений: 176
Награды: 0
Репутация: 5
Статус: Offline
Quote (Терими)
Размышляю на одним вопросом и пытался сделать.
Касается испыта. Ты берешь булавку из трупа. Как сделать триггер с занесением в переменную двойного действия, для того чтобы кнопкой пойти на север и рассечь моба?

А можешь расписать по пунктам, ну типа возникаем строка - действия такие, далее такие, а то мне например, непонятно, что имеется ввиду.


Теоретизировать, не имея данных, опасно. Незаметно для себя человек начинает подтасовывать факты, чтобы подогнать их к своей теории, вместо того чтобы обосновывать теорию фактами.
 
ТеримиДата: Вторник, 2009-04-21, 2:25 PM | Сообщение # 252
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Воин Дремора МЕРТВ!!
Ты берешь булавку из трупа Дреморы.

Необходимо на строчку "Ты берешь булавку из трупа Дреморы." сделать триггер, который биндит на кнопку F8 действие "север;рассечь маг"
Значение на кнопке F8 каждый раз меняется в зависимости от содержимого трупа, т.е. дальнейшее действие.

P::trig {$U::ispyt='север;рассечь маг'}{^Ты берешь булавку из трупа Дреморы.}, 1000nf
P::hotkey {$U::ispyt} "F8"

Думаю должно быть понятно smile


Рожден я в этом мире и другого мне не нужно!
 
ИохарДата: Вторник, 2009-04-21, 5:23 PM | Сообщение # 253
Полковник
Группа: Пользователи
Сообщений: 176
Награды: 0
Репутация: 5
Статус: Offline
Не пугай меня, все ведь просто
Code

P::trig {Parser::run_commands("/bind f8 {север;рассечь маг}");}  
'^Ты берешь булавку из трупа Дреморы.', 'fn1000:test.pm';


Теоретизировать, не имея данных, опасно. Незаметно для себя человек начинает подтасовывать факты, чтобы подогнать их к своей теории, вместо того чтобы обосновывать теорию фактами.
 
ТеримиДата: Вторник, 2009-04-21, 8:33 PM | Сообщение # 254
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Бляяя, а я уже начал думать на счет переменных smile А оказывается все просто!

Рожден я в этом мире и другого мне не нужно!
 
ДжиширДата: Среда, 2009-04-22, 7:10 PM | Сообщение # 255
Полковник
Группа: Пользователи
Сообщений: 202
Награды: 0
Репутация: 7
Статус: Offline
ММС рулит!!!

Добавлено (2009-04-22, 7:10 Pm)
---------------------------------------------
блин, вырвалось... как стереть?


Уважай рэндом - и он ответит тебе тем же.
 
ТеримиДата: Вторник, 2009-04-28, 1:07 PM | Сообщение # 256
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Бета-версия интерактивного поиска в ммс smile
Взято с образца поисковика "Академии", скорее всего будут доработки.

(Пишем поиск, появляется такая информация)
***************************
IDBase
***************************

Чтобы узнать по каким параметрам можно совершить поиск напишите "параметры"

(Пишем параметры, появляется такая информация)
***************************
Параметры поиска IDBase
***************************

Статы: сила, ум, мудрость, ловкость, сложение, хп, мана (при указании хп 10, будет искаться шмотка дающая хп>=30)
Слот: свет, кольца, шея, броня, шлем, поножи, ботинки, перчатки, наручи, щит, плащ, пояс, браслет, оружие, зажато, летает.
Уровень: например 5-17, будет искать шмот в пределах этих уровней
урон: укол, дубас, рубка, кислота, холод, энергия, огонь, святая, электрик, негатив.
Эффекты: берсерк, ярость, проклятие, волшебный огонь, левитация, спешка, скрытость, инфравидение, невидимость, пройти дверь, яд, защита от зла, защита от добра, регенерация, защита храма, замедление, подкрадывание, видеть в темноте, обнаружить зло, обнаружить добро, обнаружить скрытых, обнаружить невидимых, обнаружить магию.

Для указания параметров в поиске нужно писать: слот перчатки, стат сила, хп 10, эффекты спешка, уровень 30-51

(Есть мысли что после ввода каждого параметра будет выводится такая таблица)

***************************
Интерактивный поиск в IDBase
***************************

Слот: щит
стат: сила
хп: >= 10
эффекты: укол
уровень: 30-51
Если вы хотите совершить поиск то напишите "искать".

После этого выводится список либо названий шмота, либо полностью опозналка всего шмота, хотя можно сначала сделать чтобы вывело только список шмота и внизу будет написано: Если хотите увидеть опознания этих вещей наберите "опознания". Можно даже более продвинуто сделать и чтоб подстраивалось под каждого пользователя, ввести переменную $U::idbasesrting (0,1) и при присвоении алиасом чтобы менялось и сохранялось значение переменной, таким образом будет выводить информацию постоянно либо в кратком, либо в полном.

В принципе пока так, алиасы можно пересмотреть по удобству и по краткости, от Иохара хотелось бы услышать на вскидку, реально ли сделать таким поиск учитывая базу шмота IDBase.

З.Ы. И еще такой вопрос, всем ли нравится зеленый цвет опозналок, мну например как-то не по себе когда это вижу smile
И думаю что стоит ввести понятие лимита в базу опознаваний, при выводе такой шмотки будет написано красным что лимитка, а если реально сделать то и подсвечивании красным в строке "цена".


Рожден я в этом мире и другого мне не нужно!
 
ИохарДата: Вторник, 2009-04-28, 11:38 PM | Сообщение # 257
Полковник
Группа: Пользователи
Сообщений: 176
Награды: 0
Репутация: 5
Статус: Offline
Да все реально, ты придумай удобный механизм записи из мира информации о шмотках, моб, зоны, лимит.

Теоретизировать, не имея данных, опасно. Незаметно для себя человек начинает подтасовывать факты, чтобы подогнать их к своей теории, вместо того чтобы обосновывать теорию фактами.
 
ТеримиДата: Среда, 2009-04-29, 1:50 AM | Сообщение # 258
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
В ручном или автоматическом режиме записи? Т.е. в ручном построена так:
ринф 1134 (порядковый номер в базе)
Редактируются параметры (моб,локация,рента,квест)опознания вещи: горшок
моб Лесовик (на что он задает след. вопрос)
А в какой зоне находится этот моб?
Локация ...
Да и неплохо было бы сортировать, т.е. что была возможность посмотреть шмот, который без доп. информации.

Кстати, Йоха, мы как-то с Маккином разговаривали,ну там разные идеи, так вот можно ли сделать обратную связь у ммс, точнее это будет таким образом, то что если появляется новая шмотка, то она отправляется на какой-нить сайт и добавляется в базу шмота, т.е. другой чел имея ммс и тот же модуль idbase мог бы сделать апдейт с этого сайта? а то у каждого чела своя база и не делится, да и анрил сверить отличия баз


Рожден я в этом мире и другого мне не нужно!
 
ИохарДата: Среда, 2009-04-29, 1:03 PM | Сообщение # 259
Полковник
Группа: Пользователи
Сообщений: 176
Награды: 0
Репутация: 5
Статус: Offline
Я подумаю, насчет апдейта

Теоретизировать, не имея данных, опасно. Незаметно для себя человек начинает подтасовывать факты, чтобы подогнать их к своей теории, вместо того чтобы обосновывать теорию фактами.
 
ТеримиДата: Четверг, 2009-05-07, 5:38 PM | Сообщение # 260
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Переправленный prompt.pm по просьбе
Прикрепления: prompt.pm(11Kb)


Рожден я в этом мире и другого мне не нужно!
 
ИохарДата: Вторник, 2009-06-09, 6:17 PM | Сообщение # 261
Полковник
Группа: Пользователи
Сообщений: 176
Награды: 0
Репутация: 5
Статус: Offline
Изменения:
модуль prompt - "переписал" его заново, получилось в 2 раза короче. Добавил поддержку некоторых новых видом промпта.

модуль damage - немного доработал(баги еще есть), добавил подмодуль anti_spam(подключение из damage), получается, что-то вроде
из такого

Code

>>уби генин
Твой удар двуручным огненным мечом потрошит группу генин!
Группа генин опаляется двуручным огненным мечом.
Твой удар двуручным огненным мечом *СОКРУШАЕТ* группу генин!
Группа генин опаляется двуручным огненным мечом.
Твой удар двуручным огненным мечом потрошит группу генин!
Группа генин опаляется двуручным огненным мечом.
Группа генин ранена.  

>>уби ниндзя
Твой укол изувечивает ниндзю всадник!
Твой укол изувечивает ниндзю всадник!
Твой колющий удар не достает ниндзю всадник.
Твой укол потрошит ниндзю всадник!
Твой укол изувечивает ниндзю всадник!
Ниндзя всадник ранен.  

Твой укол изувечивает ниндзю всадник!
Твой укол изувечивает ниндзю всадник!
Твой укол изувечивает ниндзю всадник!
Твой укол изувечивает ниндзю всадник!
Ниндзя всадник серьезно ранен.

делает такое
Code

уби генин
[Рубка|Дубас,43-52,Огонь]Твой удар двуручным огненным мечом потрошит группу генин!
[Рубка|Дубас,66-90,Огонь]Твой удар двуручным огненным мечом *СОКРУШАЕТ* группу генин!
[Рубка|Дубас,43-52,Огонь]Твой удар двуручным огненным мечом потрошит группу генин!
Группа генин ранена.  

уби ниндзя
[Укол,34-42]Твой укол изувечивает ниндзю всадник! (x 2)
Твой колющий удар не достает ниндзю всадник.
[Укол,43-52]Твой укол потрошит ниндзю всадник!
[Укол,34-42]Твой укол изувечивает ниндзю всадник!
Ниндзя всадник ранен.  

[Укол,34-42]Твой укол изувечивает ниндзю всадник! (x 4)
Ниндзя всадник серьезно ранен.

Убирает доп. атаки - молнией, ядом, огнем, холодом.

Добавлено (2009-06-09, 6:17 Pm)
---------------------------------------------
Аккуратно последний модуль anti_spam - не прошел испытание испытанием, вот такой вот каламбур.

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

Прикрепления: 4260198.pm(4Kb) · 6989400.pm(15Kb) · anti_spam.pm(2Kb)


Теоретизировать, не имея данных, опасно. Незаметно для себя человек начинает подтасовывать факты, чтобы подогнать их к своей теории, вместо того чтобы обосновывать теорию фактами.
 
ТеримиДата: Пятница, 2009-06-12, 12:36 PM | Сообщение # 262
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Потестим *потир. У меня тоже такое присутствует закрывание, но редко.

Рожден я в этом мире и другого мне не нужно!
 
maxДата: Понедельник, 2009-10-05, 0:09 AM | Сообщение # 263
Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
Помогите со следующим вопросом пожалуйста,

как в ММС написать замену цветного слова.

Например, мне надо чтоб слово "Аладон" написаное красным цветом обрабатывалось триггером, а слово "Аладон" любым другим цветом - не обраратывалось. (это для примера)

Буду очень признателен.

 
ИохарДата: Понедельник, 2009-10-05, 2:07 PM | Сообщение # 264
Полковник
Группа: Пользователи
Сообщений: 176
Награды: 0
Репутация: 5
Статус: Offline
Срабатывание идет независимо от цвета.
Внутри триггера тебе доступны следующие переменные:
$_ - это строка без цветов
$; - строка с цветами во внутреннем формате mmc.

Можно проверять цвет такой функцией

Code
sub get_color($$) {
# Параметры: строка с цветами в формате внутренних цветов mmc
# и номер символа в ней.
# Возвращаемое значение: цвет этого символа в диапазоне A..P
  return chr(ord(substr($_[0], 2*$_[1]+1, 1))+ord('A'));
}

Соотвествие цветов и букв можно посмотреть в хелпе ммс, но приведу тут

Code

%COLOR = (    # Цвета для их отображения
  "красный"  => '&B',
  "зеленый"  => '&C',
  "желтый"   => '&D',
  "синий"    => '&E',  
  "малиновый"=> '&F',
  "голубой"  => '&G',  
     "с-серый"  => '&H',  
     "серый"    => '&I',  
     "с-красный"=> '&J',  
     "с-зеленый"=> '&K',  
     "с-желтый" => '&L',  
     "с-синий"  => '&M',
     "с-малиновый"=> '&N',   
     "с-голубой"=> '&O',  
     "белый"    => '&P'
             );

А в данном примере я добавляю к исходной строке цветное слово, если нужна замена используй инструкцию tr//

Code

  $_="[Слово голубого цвета]" . $_;
  $;=CL::parse_colors("\003G[Слово голубого цвета]") . $;;


Теоретизировать, не имея данных, опасно. Незаметно для себя человек начинает подтасовывать факты, чтобы подогнать их к своей теории, вместо того чтобы обосновывать теорию фактами.
 
maxДата: Понедельник, 2009-10-05, 4:33 PM | Сообщение # 265
Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
Спасибо большое, все работает как часы smile
 
ИохарДата: Четверг, 2009-10-15, 5:57 PM | Сообщение # 266
Полковник
Группа: Пользователи
Сообщений: 176
Награды: 0
Репутация: 5
Статус: Offline
Пока Аладон лежит, решил доделать свой модуль обработки боя.
Что он делает смотри на , там показан результат до применения и после применения.

Добавлено (2009-10-15, 5:57 Pm)
---------------------------------------------
На слова "parse: finished" не обращайте внимания, это модуль проигрывания файлов так завершает работу.
Файл 7946876.pm назвать damage.pm
Подключить его командой

Code
require damage;

Если заметите баги при работе пожайлуста, отправьте мне сообщение с куском лога на котором работает неправильно(в логи он пишет без упаковки).

Прикрепления: 7946876.pm(15Kb) · antispam.pm(2Kb) · 9524109.jpg(818Kb)


Теоретизировать, не имея данных, опасно. Незаметно для себя человек начинает подтасовывать факты, чтобы подогнать их к своей теории, вместо того чтобы обосновывать теорию фактами.
 
ТеримиДата: Суббота, 2009-10-24, 8:17 PM | Сообщение # 267
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Прикольненько, мне этот вариант больше нравится!

Рожден я в этом мире и другого мне не нужно!
 
ТеримиДата: Среда, 2010-02-10, 11:18 AM | Сообщение # 268
Генерал-полковник
Группа: Администраторы
Сообщений: 1144
Награды: 0
Репутация: 10
Статус: Offline
Сейчас пытаюсь заставить работать mmc на ubuntu, много гимора но вроде как получается, тем кто интересуется могу расписать все действия по внедрению клиента в линукс.
Для начала ссылочка: mmc linux

ЗЫ. Иохар, я как понял это ты там под анонимусом, не можешь ли ты разъяснить как там с хоткеями на нампаде разобраться ?
Еще я так понял что ты научился перезагружать модули не закрывая клиент, не подскажешь как ?


Рожден я в этом мире и другого мне не нужно!
 
SolovarДата: Пятница, 2010-02-12, 10:35 AM | Сообщение # 269
Подполковник
Группа: Пользователи
Сообщений: 100
Награды: 0
Репутация: 1
Статус: Offline
Quote (Терими)
Сейчас пытаюсь заставить работать mmc на ubuntu, много гимора но вроде как получается, тем кто интересуется могу расписать все действия по внедрению клиента в линукс.

ооо как раз то что нада:) деб пакет может собереш? smile не а если серьозно то буду очень признателен если распишишь как внедрить ммс под бубунтой. Хотя под вайном стартуеш и виндовый и не лагает в отличие от jmc smile

еххх жалко кнечно jmc прыгать к mmc .... (а в винду не вернусь)


Да прибудет пиво :)

Сообщение отредактировал Solovar - Пятница, 2010-02-12, 10:38 AM
 
ИохарДата: Пятница, 2010-02-12, 12:49 PM | Сообщение # 270
Полковник
Группа: Пользователи
Сообщений: 176
Награды: 0
Репутация: 5
Статус: Offline
Quote (Solovar)
ЗЫ. Иохар, я как понял это ты там под анонимусом, не можешь ли ты разъяснить как там с хоткеями на нампаде разобраться ?

http://d.scn.ru/proj/mud/mmc+xterm/
Code
Далее, клавиатура. Для того, чтобы корректно работал keypad (клавиши k0..k9, k*, k/, k+. k-) необходимо в ~/.Xdefaults добавить строки:

XTerm*VT100*translations:   #override \
@Num_Lock KP_Multiply: string("\033Oj")\n \
@Num_Lock KP_Add: string("\033Ok")\n \
@Num_Lock KP_Decimal: string("\033Ol")\n \
@Num_Lock KP_Subtract: string("\033Om")\n \
@Num_Lock KP_Divide: string("\033Oo")\n
@Num_Lock KP_0: string("\033Op")\n \
@Num_Lock KP_1: string("\033Oq")\n \
@Num_Lock KP_2: string("\033Or")\n \
@Num_Lock KP_3: string("\033Os")\n \
@Num_Lock KP_4: string("\033Ot")\n \
@Num_Lock KP_5: string("\033Ou")\n \
@Num_Lock KP_6: string("\033Ov")\n \
@Num_Lock KP_7: string("\033Ow")\n \
@Num_Lock KP_8: string("\033Ox")\n \
@Num_Lock KP_9: string("\033Oy")\n

Теперь при нажатой клавише NumLock будут возвращаться нужные последовательности. Учтите только, что в конфигурации X-Window не должна быть выставлена опция ServerNumLock!

Теперь, нужно научить MMC должным образом реагировать на возвращаемые последовательности. Пропишите в ~/.mmc4rc команду:

CL::addkey("\033O" . chr($_ + ord('p')), "k" . chr($_ + ord('0'))) for 0..9;
или в приглашении MMC напишите

mmc>/perl {CL::addkey("\033O" . chr($_ + ord('p')), "k" . chr($_ + ord('0'))) for 0..9}

Теперь научим MMC правильно реагировать на функциональные клавиши в сочетании с различными модификаторами:

my @metaname = ("S", "M", "S-M", "C", "S-C", "C-M", "S-M-C");
for my $mod (2..8) {
    CL::addkey("\033O${mod}".  chr($_ + ord('P') - 1), ${metaname}[$mod - 2] ."-f". $_ ) for 1..4;
    CL::addkey("\033[". scalar $_+10 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 5;
    CL::addkey("\033[". scalar $_+11 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 6..10;
    CL::addkey("\033[". scalar $_+12 .";${mod}~" , ${metaname}[$mod - 2] ."-f". $_ ) for 11..12;
}


Теоретизировать, не имея данных, опасно. Незаметно для себя человек начинает подтасовывать факты, чтобы подогнать их к своей теории, вместо того чтобы обосновывать теорию фактами.
 
Форум » Аладон » Разговоры об Аладоне » Клиент MMC (Настройка, воплощение идей и ответы на вопросы...)
Страница 9 из 10«1278910»
Поиск:

Copyright MyCorp © 2017
Хостинг от uCoz