Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ DC-клиенты _ Создание Контекстных Менюшек Средствами Клиента

Автор: Setuper 18.8.2008, 13:56

Сегодня я расскажу как на стороне клиента делать контекстные менюшки.

Открываем свой клиент и заходим: "Файл" - "Настройки" - "Команды-Юзера". Щелкаем добавить.

Видим типы команд:

Разделитель - горизонтальная черта между менюшками.
RAW - RAW команда
Чат - команда, отсылаемая в чат
PM - команда, отсылаемая в личку указанному юзеру

Далее контекст:

Меню хаба - означает, что команда будет доступна из контекстного меню хаба (правый щелчок по закладке хаба)
Меню юзера - означает, что команда будет доступна из контекстного меню юзера (правый щелчок по любому из юзеров)
Меню поиска - означает, что команда будет доступна из контекстного меню поиска (правый щелчок по файлу в результатах поиска)
Меню листа файлов - означает, что команда будет доступна из контекстного меню файл-листа (правый щелчок по файлу или папке после получения файл-листа юзера)

Далее рассмотрим параметры:

Название: в названии пишем имя контекстной менюшки. Если вы хотите создать подменю, то надо использовать обратные слеши ("\")
Команда: тут надо писать команду.
Хаб IP / DNS: тут надо писать IP или DNS имя хаба, на котором должна появиться и действовать данная команда. Если ничего не указывать, то команда появиться на всех хабах. Если указать "op", то команда появиться на всех хабах, на которых вы являетесь оператором (при условии, что рядом с вашим ником будет ключик, то есть если от хаба к клиенту прийдет команда получения статуса оператора).
К: тут обычно пишется ник получателя лички, если команда является командой типа PM.



Теперь рассмотрим простейший пример написания команд.

Устанавливаем тип команды: "чат"
Контекст: "Меню хаба" и "Меню юзера"
Название: "Меню клиента\Сказать привет"
Команда: "Всем привет"

после нажатия кнопки ОК, на всех ваших хабах появиться менюшка с названием: "Меню клиента", в которой будет менюшка: "Сказать привет". После нажатия на эту менюшку в чат того хаба, на котором была нажата менюшка, отправится фраза: "Всем привет".



Рассмотрим следующий пример:

Тип команды: "чат"
Контекст: "Меню хаба" и "Меню юзера"
Название: "Меню клиента\Послать дату и точное время в чат"
Команда: "Сегодня: %A - %d/%m/%Y. Точное время: %H:%M:%S"

Данная команда будет отсылать в чат ваше время на компьютере.



Следующий пример:

Тип команды: "чат"
Контекст: "Меню юзера"
Название: "Меню клиента\Сообщения\Сообщения в чат\Шара этого юзера"
Команда: "Шара пользователя %[userNI]: %[userSS] байт"

Список команд сохраняется в файле Favorites.xml в папке Settings вашего клиента.

Приложу мой список команд. Можете скопировать в свой файл Favorites.xml полностью тег <UserCommands> и у вас появятся менюшки на хабах.
Но перед копированием в этот файл сделайте резервную копию этого файла, если у вас ни получиться правильно скопировать, то вернёте свой старый файл. И еще! Перед записью в этот файл (Favorites.xml) нужно закрыть клиент (именно закрыть, а не свернуть!!!)

 Favorites.xml ( 71.72 килобайт ) : 243

Автор: Infernus-pro 24.8.2008, 15:06

На версии GreyLink 0.08 все работает прекрасно те команды что вы выложили, но попробывал их вставить на версию 5013 , не показывает команды, вместо них просто пустое место.
Вот файл GreyLink 0.08  Favorites.xml ( 76.42 килобайт ) : 50

Вот файл GreyLink 5013  Favorites.xml ( 55.83 килобайт ) : 47

Автор: Setuper 24.8.2008, 18:17

Разработчики поменяли кодировку файла. Смысл смены кодировки - подстраивание под кодировку базы данных sqlite.
Прийдется вбивать все вручную (через меню "Файл - Настройки - Команды юзера")

Автор: Infernus-pro 24.8.2008, 20:34

Ясно спасибо big_smile.gif

Автор: FallenAngel 19.10.2008, 20:43

А для более новых клиентов не мог ли бы выложитьт менюшку??старую открыл-посмотрел много всего интересного..ток изза кодировки то и не "запустилось":(
зы-в какой новой кодировке все это пишется то??...

Автор: Delion 20.10.2008, 9:55

Рисовать такие менюшки не сложнее,чем делать это в хабе. Я себе по крайней мере все сам с нуля писал.

Автор: FallenAngel 20.10.2008, 21:07

<UserCommand Type="1" Context="2"
скажите пожалуйста,за что "отвечает" Type и Context.....

Автор: Setuper 22.10.2008, 21:58

Уже обсуждалось: http://mydc.ru/ipb.html?s=&showtopic=100&view=findpost&p=2646

Автор: chicha 11.11.2008, 3:40

Прикольно, убрал лишнее, только не смог настроить Меню клиента\Общие\Помощь хотелось чтоб в ПМ писалось а не в чат, поменял в типе команд с чата на ПМ вообще не выходил текст

Автор: Setuper 29.11.2008, 13:15

Настройку этой команды надо производить со стороны сервера, а не клиента!

Автор: Delion 30.11.2008, 0:10

Интересно,а через менюшку клиент будет исполнять собственные команды?

Автор: Setuper 30.11.2008, 3:18

Нет, не будет. Произойдёт отправка команды в чат без выполнения. Любой клиент написан таким образом, что выполнение команды происходит исключительно из поля ввода. Хотя если поковыряться в коде и скомпилить свой клиент, то это можно сделать, но работу нужно проделать гигантскую big_smile.gif

Автор: Delion 1.12.2008, 2:04

Так и подумалось. Жаль,хотел добавить в свой команду очистки чата.

Автор: Uncle_Dif 17.6.2009, 13:39

Я тоже сам набаваю юзер-команды из настроек. Тока моё- примитив. Вот это-
Рассмотрим следующий пример:

"Тип команды: "чат"
Контекст: "Меню хаба" и "Меню юзера"
Название: "Меню клиента\Послать дату и точное время в чат"
Команда: "Сегодня: %A - %d/%m/%Y. Точное время: %H:%M:%S"

Данная команда будет отсылать в чат ваше время на компьютере." - интересно.

На нашем хабе все продвинутые: и юзера и "зелень"- пишут от руки. Я же, будучи опом, освоил эти команды- куча времени экономия....чет увлекся я)))

Вопрос: Можно ли эти команды выдавать анонимно?... nonick....Чтоб юзер видел мессагу-помошь, но не знал от кого. Нечто подобное есть в скриптах хабов

Автор: Setuper 17.6.2009, 14:02

Со стороны клиента - нельзя, клиент работает исключительно по протоколу. Отослав на хаб неизвестную команду, хаб в праве закрыть соединение с таким клиентом.

Автор: Uncle_Dif 17.6.2009, 14:11

Две команды я слизал, пасяб те. Я их обозвал для себя скрипт-команды. Не угостишь ли еще чемнить?)

Автор: Setuper 17.6.2009, 15:22

В начале темы приложен ведь файл

Автор: Uncle_Dif 17.6.2009, 16:52

Цитата(Setuper @ 17.6.2009, 16:22) *
В начале темы приложен ведь файл




Да, конечно, я неловко высказался. Там я тоже взял кое-что. Я имел ввиду что-нибудь из невыложенного. Скажем какие-то развлекательные команды...а?

Автор: Uncle_Dif 23.6.2009, 8:45

Скачал на форуме скрипт "Действия", переделал его в контекстное меню, вставил в клиент GreyLink и теперь на любом хабе могу пользоваться.))) Ну то-есть йа красавчег,
это мой дебют!)). Предагаю Вашему вниманию и прошу заценить:

 Favorites.xml ( 82.58 килобайт ) : 61
 

Автор: Setuper 23.6.2009, 13:09

Когда у себя в клиенте делаешь действия, то остальные пользователи не смогут написать тебе в ответ нечто подобное из действий и могут просто напросто не понять тебя, поэтому когда действия доступны всем, то это одно, а когда только тебе, то это совсем другое!

Автор: Uncle_Dif 23.6.2009, 16:29

Цитата(Setuper @ 23.6.2009, 13:09) *
Когда у себя в клиенте делаешь действия, то остальные пользователи не смогут написать тебе в ответ нечто подобное из действий и могут просто напросто не понять тебя, поэтому когда действия доступны всем, то это одно, а когда только тебе, то это совсем другое!

100ГБово ты прав. В реале - кто не понимает, те игнорят, кто пытается понять, те просят дать. Побочный эффект- это раздражает "зеленых".

Автор: FallenAngel 23.6.2009, 20:02

А как в командах юзера перейти на след строчку? не редактируя через блокнот?

Автор: Setuper 23.6.2009, 21:08

Никак. Только редактируя)))

Автор: FallenAngel 1.7.2009, 16:32

А не мог бы описать RAW команды?)

Автор: rterty 3.7.2009, 20:19

/me надо бы заменить на +me для большей совместимости...

Автор: дрюха 21.10.2009, 11:10

Цитата(Setuper @ 30.11.2008, 4:18) *
Нет, не будет. Произойдёт отправка команды в чат без выполнения. Любой клиент написан таким образом, что выполнение команды происходит исключительно из поля ввода. Хотя если поковыряться в коде и скомпилить свой клиент, то это можно сделать, но работу нужно проделать гигантскую big_smile.gif

хорошо ещё, что /slots %[line:количество слотов] у меня работает;)

Автор: Cjay 14.1.2010, 18:15

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

Код
<UserCommand Type="2" Context="2" Name="действия\пожать руку" Command="$To: %[userNI] From: %[myNI] $&lt;%[myNI]&gt; +me крепко жмёт руку %[userNI] |" Hub=""/>

то при отсылке данной команды в личке собеседнику тебе самому текст посланного сообщения будет не видно? и сделать его видными для тебя тоже нельзя?

Автор: Setuper 14.1.2010, 18:41

Правильно понимаешь)))

Автор: Saymon 22.1.2010, 22:40

А можно ли таким образом сделать на грейлинке к примеру вызов текстовово файла по команде?
к примеру текстовый файл положить в "папка клиента\texts" ?

Автор: Unterlink(X-Sky) 23.1.2010, 3:09

Вроде бы нет!

Автор: Setuper 23.1.2010, 9:13

Так а зачем эти текстовые файлы нужны у клиента? На хабе ещё понятно, они общие для всех, а у клиента они теряют свой смысл.

Автор: Saymon 23.1.2010, 13:56

Может и покажется бредом, но мне идея пришла в сам клиет засунуть всякой инфы baffle.gif

Автор: Glebova15 13.2.2010, 15:16

Спасибо Господа!
Настроила, теперь работает великолепно, быстро и от глюков не осталось и следа.
5+ автору FGlink++1.0.

Автор: Vetal 9.5.2010, 2:48

Как отсылать с этой платформы PM всем сразу ?

Автор: Ksan 9.5.2010, 3:57

Что имеешь в виду под платформой? Хаб или клиента?
Если хаб, и ты там админ, то командой
!massmsg текст_сообщения

Автор: alex82 9.5.2010, 18:24

Насколько я понимаю, под "этой платформой" понимается Direct Connect. А юзер - обычный спамерок, решивший раскручивать свой говноресурс на всех доступных "платформах".

Автор: riemann 4.11.2010, 11:49

подскажите, господа, а как сделать менюшку, чтобы сообщение было с разрывом на несколько строк. Типа использование тегов

Код
<br>
и т.п.?

Автор: Setuper 4.11.2010, 11:54

Открываешь файл и обычным образом переносишь там строки в сообщении

Автор: Ksan 4.11.2010, 12:43

riemann, точнее спрашивай, непонятно, о каких сообщения и о каких разрывах речь.
В каких-то случаях хватает символов \n для переноса строки, в других случаях достаточно отправить сообщение не через окно сообщения, а вручную из строки чата.