myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> HubTopic, Скрипт показывающий ваш текст в строке состояния

Теги
Нет тегов для показа
Saymon21
сообщение 25.7.2010, 22:48
Сообщение #1


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Название: HubTopic
Автор: alex82
Перевод под RusHub: Saymon
Описание: Скрипт позволяет устанавливать тему чата с использованием команды $HubTopic.
Есть возможность смены через меню.
Прикрепленные файлы
Прикрепленный файл  HubTopic.rar ( 1.24 килобайт ) Кол-во скачиваний: 97
 


Спасибо сказали:
Go to the top of the page
+Quote Post
Otshelnik-Fm
сообщение 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
Go to the top of the page
+Quote Post
Nickolya
сообщение 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, но надо не забыть в нем имя хаба big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
Saymon21
сообщение 27.7.2010, 23:29
Сообщение #4


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




да, скрипт перепиливался для использования без ContextMenu
Go to the top of the page
+Quote Post
Setuper
сообщение 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 при отсылке нужной команды. Вот это действительно будет экономия трафика и нагрузки.


Спасибо сказали:
Go to the top of the page
+Quote Post
Otshelnik-Fm
сообщение 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)Дикий


тоже глюк.
Go to the top of the page
+Quote Post
Setuper
сообщение 28.7.2010, 19:16
Сообщение #7


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




ну так замени | на &#124;
сколько раз уже натыкались на эти грабли?)))

Код
Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Установить тему$<%[mynick]> !хабтопик %[line:Введите тему чата]&#124;")


Спасибо сказали:
Go to the top of the page
+Quote Post
Otshelnik-Fm
сообщение 28.7.2010, 19:22
Сообщение #8


Я коварный Санта Клаус
******

Группа: Пользователи
Сообщений: 523
Регистрация: 4.11.2008
Из: Саратов
Пользователь №: 985
Спасибо сказали: 54 раза




почти год я дремал и не пользовался lua. а если еще знал и забыл... Работает все отлично. Спасибо. проблема решена. И с менюшкой по запросу все хорошо вышло.
Go to the top of the page
+Quote Post
CrazyKiller
сообщение 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
Go to the top of the page
+Quote Post
mod
сообщение 25.1.2012, 17:20
Сообщение #10


Активный участник
***

Группа: Пользователи
Сообщений: 65
Регистрация: 16.7.2010
Пользователь №: 7 288
Спасибо сказали: 0 раз




Точно не знаю, но попробуй:

Core.SendToUser(UID, "<"..Core.Config("sHubBot")..">


А вообще говорит: функция"GetConfig' устарела. Используйте 'Config[sName]'
Go to the top of the page
+Quote Post
Setuper
сообщение 25.1.2012, 17:31
Сообщение #11


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Код
Core.GetConfig("sHubBot")
заменить на
Код
Config.sHubBot
или на
Код
Config["sHubBot"]
кому как больше нравится.

Однако в любом случае это не ошибка, а всего лишь предупреждение big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
CrazyKiller
сообщение 25.1.2012, 17:34
Сообщение #12


Продвинутый участник
****

Группа: Пользователи
Сообщений: 189
Регистрация: 20.4.2009
Пользователь №: 3 121
Спасибо сказали: 12 раз




а у меня чёт Топик не меняется, в чем может быть проблема ? big_smile.gif

Скрипт
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
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsHubTopic
6 mariner 9 439 6.8.2009, 11:54 Посл. сообщение: mariner
Moved HubTopic
0 mariner 0 5.8.2009, 23:21 Посл. сообщение: mariner

 



RSS Сейчас: 27.11.2024, 3:14