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

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

MyDC.ru _ Скрипты для RusHub'а _ ContextMenu

Автор: Setuper 15.2.2010, 16:31

Название: ContextMenu
Версия: 1.0
Описание: Скрипт предназначен для экономии трафика при отсылке контекстного меню. То есть отсылать меню не каждый раз при входе, а по запросу. При этом, скриптописателям предлагается в скриптах контекстные меню отправлять в специальной глобальной функции ContextMenu.

Пример меню в скрипте test.lua:

Код
local sMenu = "$UserCommand 1 3 Меню1$<%[mynick]> !cmd1&#124;|"..
  "$UserCommand 1 3 Меню2$<%[mynick]> !cmd2&#124;|"..
  "$UserCommand 1 3 Меню3$<%[mynick]> !cmd3|"

function ContextMenu(UID)
  Core.SendToUser(UID, sMenu)
end


Таким образом, по запросу из скрипта ContextMenu.lua выполнится функция ContextMenu скрипта test.lua, а также прочих скриптов, которые запущены на данный момент. Если в скрипте отсутствует функция ContextMenu, то будет выполняться функция OnUserEnter, если таковая имеется. Однако всё же лучше договориться и выносить во всех скриптах отсылку контекстных менюшек в функцию ContextMenu, так как в функции OnUserEnter могут выполняться вещи, которые необходимо выполнять только 1 раз за вход. Если нужно принудительно отослать менюшку какого-то скрипта при входе, то всегда можно вызвать функцию ContextMenu внутри функции OnUserEnter big_smile.gif

 ContextMenu.lua ( 990 байт ) : 190

Автор: Otshelnik-Fm 15.2.2010, 19:32

Сколько он съэкономит трафика на 1000 пользователей?

Автор: Setuper 15.2.2010, 20:01

Всё зависит от количества менюшек.
А вообще тут не только экономия трафика, но и ускорение входа на хаб, особенно на больших хабах big_smile.gif
На маленьких хабах можно сказать: а что ещё хабу делать? он итак не нагружен.
На больших хабах идёт борьба за быстродействие и отсылка пары лишних команд каждую секунду иногда сильно сказывается на работе хаба

Автор: Serx 5.3.2010, 21:10

Ещё не перешел на русхаб, но за темами слежу... вопрос: а почему этот скрипт не сделать одним из модулей хаба?

Автор: Setuper 5.3.2010, 21:25

Что значит модулем?
Модуль ведь сам по себе не работает. Модуль должен подключаться в скрипте.
Думаю, что существующий вариант наиболее приемлемый.

Автор: Serx 5.3.2010, 23:04

я имел ввиду сделать эту функцию отсылки менюшек "стандартной" (не знаю как это ещё описать)
наподобие функций работы с файлами... Хотя вам наверняка видней как лучше big_smile.gif

Автор: dimajak 18.11.2011, 22:47

При изучении RusHub наткнулся из темы скрипта Бомба для RusHub.
Не совсем понятно предназначение или уже не актуально?