HubTopic, Скрипт показывающий ваш текст в строке состояния |
Здравствуйте, гость ( Вход | Регистрация )
HubTopic, Скрипт показывающий ваш текст в строке состояния |
25.7.2010, 22:48
Сообщение
#1
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Название: HubTopic
Автор: alex82 Перевод под RusHub: Saymon Описание: Скрипт позволяет устанавливать тему чата с использованием команды $HubTopic. Есть возможность смены через меню.
Прикрепленные файлы
|
|
|
27.7.2010, 18:12
Сообщение
#2
|
|
Я коварный Санта Клаус Группа: Пользователи Сообщений: 523 Регистрация: 4.11.2008 Из: Саратов Пользователь №: 985 Спасибо сказали: 54 раза |
Заметил багу: Когда нажимаешь "Прислать меню" то тема чата снова пишется в главный чат .
("Прислать меню" - это новая функция которая используется в некоторых скриптах для экономии траффика) Цитата [19:04:06] <RusHub> Тема чата установлена. [19:04:06] *** Тема чата хаба: О чудо! Северный ветер.. Мороз и снег. Вопрос: - Нафига продали аляску? [19:04:19] *** Тема чата хаба: О чудо! Северный ветер.. Мороз и снег. Вопрос: - Нафига продали аляску? [19:04:19] <RusHub> Меню выслано еще вопрос: устанавливается тема чата, а как сделать смену топика тоже одновременно с темой чата? csreen.jpg ( 16.35 килобайт ) Кол-во скачиваний: 184 |
|
|
27.7.2010, 23:27
Сообщение
#3
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Скрипт менюшек выполняет функцию OnUserEnter при отсылке меню, чтобы не было повторной отправки надо заменить
Код function OnUserEnter(UID) на if tAccess[UID.iProfile] then Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Установить тему$<%[mynick]> !хабтопик %[line:Введите тему чата]|") Core.SendToUser(UID,"$UserCommand 0 3") Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Удалить тему$<%[mynick]> !хабтопик офф|") end if sHubTopic then Core.SendToUser(UID,"$HubTopic "..sHubTopic) end end Код function OnUserEnter(UID) if sHubTopic then Core.SendToUser(UID,"$HubTopic "..sHubTopic) end ContextMenu(UID) end function ContextMenu(UID) if tAccess[UID.iProfile] then Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Установить тему$<%[mynick]> !хабтопик %[line:Введите тему чата]|") Core.SendToUser(UID,"$UserCommand 0 3") Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Удалить тему$<%[mynick]> !хабтопик офф|") end end А чтобы сменить топик надо отправлять еще и $HubName, но надо не забыть в нем имя хаба |
|
|
27.7.2010, 23:29
Сообщение
#4
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
да, скрипт перепиливался для использования без ContextMenu
|
|
|
28.7.2010, 9:17
Сообщение
#5
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Для смены топика можно использовать функцию:
Код Core.SetConfig("sTopic", "Новый топик") Эта функция автоматически изменяет топик (приписку к имени хаба) в настройках и отправляет всем пользователям хаба команду $HubName с именем хаба и изменённым топиком, а новые пользователи при входе на хаб будут видеть уже изменённый топик. Кстати, для того, чтобы не отсылать контекстные менюшки при входе, а отсылать только по команде нужно писать так: Код function OnUserEnter(UID) if sHubTopic then Core.SendToUser(UID,"$HubTopic "..sHubTopic) end --ContextMenu(UID) end То есть НЕ вызывать функцию ContextMenu при входе. Функция ContextMenu будет автоматически вызываться скриптом ContextMenu при отсылке нужной команды. Вот это действительно будет экономия трафика и нагрузки. |
|
|
28.7.2010, 18:44
Сообщение
#6
|
|
Я коварный Санта Клаус Группа: Пользователи Сообщений: 523 Регистрация: 4.11.2008 Из: Саратов Пользователь №: 985 Спасибо сказали: 54 раза |
Цитата [19:38:11] <RusHub> Тема чата установлена. [19:38:11] *** Тема чата хаба: в Москве есть деньги, есть работа, там есть жизнь... Но нет там воздуха свежего. Хоть чего - то у них там не будет. $ConnectToMe -=makc=- 10.99.55.231:14125 а это выдал после внесения изменений от Nickolya и Setuper. смена темы чата произошла через секунд 5. Не сразу. Проверил повторно: Цитата [19:40:37] <RusHub> Тема чата установлена. [19:40:37] *** Тема чата хаба: тест2$ConnectToMe Дикий 10.99.55.231:14125 Заменил так: Код function OnUserEnter(UID) if sHubTopic then Core.SendToUser(UID,"$HubTopic "..sHubTopic) end --ContextMenu(UID) end function ContextMenu(UID) if tAccess[UID.iProfile] then Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Установить тему$<%[mynick]> !хабтопик %[line:Введите тему чата]|") Core.SendToUser(UID,"$UserCommand 0 3") Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Удалить тему$<%[mynick]> !хабтопик офф|") end end а если по варианту Nickolya то: Цитата [19:43:49] <RusHub> Тема чата установлена. [19:43:49] *** Тема чата хаба: в Москве есть деньги, есть работа, там есть жизнь... Но нет там воздуха свежего. Хоть чего - то у них там не будет.$SR Otshelnik-Fм Кач\Games\ALAWAR games\[3] ПОИСК ПРЕДМЕТОВ, ГОЛОВОЛОМКИ\Легенды странствий. Начало 1/6TTH:BUAAAACWDVHABQH4CUCHAYLVBAAAAAAAAAAAAAA (10.99.55.231:411)Дикий тоже глюк. |
|
|
28.7.2010, 19:16
Сообщение
#7
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
ну так замени | на |
сколько раз уже натыкались на эти грабли?))) Код Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Установить тему$<%[mynick]> !хабтопик %[line:Введите тему чата]|")
|
|
|
28.7.2010, 19:22
Сообщение
#8
|
|
Я коварный Санта Клаус Группа: Пользователи Сообщений: 523 Регистрация: 4.11.2008 Из: Саратов Пользователь №: 985 Спасибо сказали: 54 раза |
почти год я дремал и не пользовался lua. а если еще знал и забыл... Работает все отлично. Спасибо. проблема решена. И с менюшкой по запросу все хорошо вышло.
|
|
|
25.1.2012, 16:35
Сообщение
#9
|
|
Продвинутый участник Группа: Пользователи Сообщений: 189 Регистрация: 20.4.2009 Пользователь №: 3 121 Спасибо сказали: 12 раз |
Выручите пожалуйста с ошибкой ?
Логи ./scripts/HubTopic.lua:55: warning: function 'GetConfig' was deprecated. Use 'Config[sName]' instead ./scripts/HubTopic.lua:51: warning: function 'GetConfig' was deprecated. Use 'Config[sName]' instead Строки Core.SendToUser(UID, "<"..Core.GetConfig("sHubBot").."> Тема чата удалена.") Core.SendToUser(UID, "<"..Core.GetConfig("sHubBot").."> Тема чата установлена.") RusHub 2.3.8 |
|
|
25.1.2012, 17:20
Сообщение
#10
|
|
Активный участник Группа: Пользователи Сообщений: 65 Регистрация: 16.7.2010 Пользователь №: 7 288 Спасибо сказали: 0 раз |
Точно не знаю, но попробуй:
Core.SendToUser(UID, "<"..Core.Config("sHubBot").."> А вообще говорит: функция"GetConfig' устарела. Используйте 'Config[sName]' |
|
|
25.1.2012, 17:31
Сообщение
#11
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код Core.GetConfig("sHubBot") заменить на Код Config.sHubBot или на Код Config["sHubBot"] кому как больше нравится.Однако в любом случае это не ошибка, а всего лишь предупреждение |
|
|
25.1.2012, 17:34
Сообщение
#12
|
|
Продвинутый участник Группа: Пользователи Сообщений: 189 Регистрация: 20.4.2009 Пользователь №: 3 121 Спасибо сказали: 12 раз |
а у меня чёт Топик не меняется, в чем может быть проблема ?
Скрипт path = debug.getinfo(1).source:match("^@?(.+[/\\]).-$"):gsub("\\","/") y,n = true,false tCfg = { Menu = ".:: Меню Администрации ::.\\.:: Тема чата ::.", File = path.."texts/hubtopic.txt" } tAccess = { [0] = y, [1] = y, [2] = n, [3] = n, [-1] = n, } tData = {} function OnStartup() tData.Prefix = "!" local pref = "!" tData.ChatCmdPattern = "^%b<>%s+["..pref.."](%S+)" tData.ChatCmdArgs = "^%b<>%s+["..pref.."]%S+%s+(.+)$" tData.ToCmdPattern = "^%$To:%s+%S+%s+From:%s+%S+%s+%$%b<>%s+["..pref.."](%S+)" tData.ToCmdArgs = "^%$To:%s+%S+%s+From:%s+%S+%s+%$%b<>%s+["..pref.."]%S+%s+(.+)$" local f = io.open(tCfg.File,"r") if f then sHubTopic = f:read("*all") f:close() end end function OnUserEnter(UID) if tAccess[UID.iProfile] then Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\.:: Установить тему ::.$<%[mynick]> !хабтопик %[line:Введите тему чата]|") Core.SendToUser(UID,"$UserCommand 0 3") Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\.:: Удалить тему ::.$<%[mynick]> !хабтопик офф|") end if sHubTopic then Core.SendToUser(UID,"$HubTopic "..sHubTopic) end end function OnChat(UID,data) if tAccess[UID.iProfile] then local cmd = data:match(tData.ChatCmdPattern) if cmd and cmd == "хабтопик" then data = data:match(tData.ChatCmdArgs) if data then if data:lower() == "офф" then sHubTopic = nil Core.SendToUser(UID, "<"..Config.sHubBot.."> Тема чата удалена.") Save() else sHubTopic = data Core.SendToUser(UID, "<"..Config.sHubBot.."> Тема чата установлена.") Core.SendToAll("$HubTopic "..sHubTopic) Save() end else Core.SendToUser(UID, "<"..Config.sHubBot.."> Ошибка синтаксиса команды. Синтаксис: "..tData.Prefix.."хабтопик <тема чата/офф>.") end return true end end end function Save() if sHubTopic then local f = io.open(tCfg.File,"w") if f then f:write(sHubTopic) f:close() else error("Unable to open file "..tCfg.File) end else os.remove(tCfg.File) end end |
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
HubTopic | 6 | mariner | 9 404 | 6.8.2009, 11:54 Посл. сообщение: mariner | |
HubTopic | 0 | mariner | 0 | 5.8.2009, 23:21 Посл. сообщение: mariner |
|
Сейчас: 23.11.2024, 6:57 |