Версия для печати темы
MyDC.ru _ Технические вопросы по PtokaX _ Перенаправление пользователей
Автор: truth 13.11.2010, 17:35
Можно ли перенаправлять пользователей непосредственно с хаба на хаб, без их особого участия? т.е. не закрывать соединение и выдавать причину с ссылкой на другой хаб, а автоматом редиректить?
Просто нужно перенаправлять некоторых пользователей на другой хаб, но они тупые и не смогут по ссылке клацать =\
Автор: Ksan 13.11.2010, 17:41
Можно.
Используй в скрипте этот код:
Код
Core.Redirect(tUser, sAddress, sReason)
Только не у всех юзеров в клиенте стоит галочка "Автоматически идти по адресу перенаправления" (или как-то близко по смыслу)
Автор: Setuper 13.11.2010, 17:44
Перенаправление не является принудительным. В клиенте есть настройка, по которой клиент может следовать перенаправлению автоматически, либо же давать своё разрешение на перенаправление.
В любом случае соединение с текущим хабом разрывается, а следовать или не следовать перенаправлению - это уже зависит от клиента.
Автор: truth 13.11.2010, 18:02
Тогда прошу помочь.. накидайте простой скриптик для перенаправление диапазонов IP (с исключениями по инку).
Или может можно переделать вот этот скрипт?
Hub_for_RangesIP_SafeNicks.lua ( 1.21 килобайт )
: 16
упс.. сейчас сам попробую..
Таааксс.. у всех пользователей клиент FlylinkDC++, да и еще с моими настройками. Сколько раз я перелопачивал настройки.. но что-то не могу найти ничего похожего на "Автоматически идти по адресу перенаправления". Может кто подсказать где эта опция? =\
И пожалуй можете помочь подредактировать скрипт, который я запостил.. убрать вывод сообщения и сразу перекидывать..
Спасибо.
Автор: Ksan 13.11.2010, 18:07
Кстати, в Флайлинке я тоже не нашёл галочку эту. Наверно, решили, что она лишняя (может, перенаправление автоматом сделали без галочек)
Автор: truth 13.11.2010, 18:10
Подправьте пожалуйста скрипт, я проверю (=
Если автоматом не редиректит - пойдем общаться с разработчиками флая
Автор: Ksan 13.11.2010, 18:55
Попробуй это (назови скрипт, скажем, Redirect.lua). Не стал я переделывать твой скрипт, накропал свой.
Код
local sBot = SetMan.GetString(21)
local sRedirAddr = "dchub://адрес.хаба.ru" -- возможно, нужно и порт указать, если у того хаба порт ограничен одним нестандартным
local sRedurCmd = "!redirect"
local sReasonDef = "В том зале вам удобнее будет сидеть!" -- причина по умолчанию (при пустом окошке причины)
local sRedirMsg = "Юзер перенаправлен по адресу "..sRedirAddr
function UserConnected(tUser)
local t = ProfMan.GetProfilePermissions(tUser.iProfile)
if t and t.bRedirect then
Core.SendToUser(tUser, "$UserCommand 1 2 Перенаправить юзера..$<%[mynick]> "..sRedurCmd.." %[nick] %[line:Причина (либо оставь пустым)]&#*124;") -- тут в конце звёздочку удалить
end
end
OpConnected = UserConnected
function ChatArrival(tUser, sData)
local sData = sData:sub(1,-2)
local sData = sData:match"%b<>%s(.*)S)"
local sCmd = sData:match"^(%S+)"
if sCmd and sCmd == sRedirCmd then
local t = ProfMan.GetProfilePermissions(tUser.iProfile)
if t and t.bRedirect then
local sNick = sData:match"^%S+(%S+)"
local sReason = sData:match"^%S+%S+%s+(.*)" or sReasonDef
local tUsr = Core.GetUser(sNick)
if tUsr then
Core.SendToUser(tUsr, "<"..sBot.."> "..sReason)
Core.Redirect(tUsr, sRedirAddr, sReason)
Core.SendToUser(tUser, sRedirMsg)
end
end
return true
end
end
Не проверял. Не уверен, что сработает
Вдогонку кое-что подправил, так что лучше повторить попытку.
Мне не удалось перенаправить.
К тому же команда вылезает в чат. Странно.
Автор: truth 13.11.2010, 19:23
После ввода всего:
Цитата
[18:20:43] <Bot> У вас нет прав для использования этой команды!
О_о
Автор: Ksan 13.11.2010, 19:45
Дык сделай. В профилях поставь галочку на редирект на свой профиль, кто ты там.
А, блин, надо же задействовать функцию
Цитата
OpForceMoveArrival(tUser, sData)
вместо
Цитата
function ChatArrival
Всё равно не получается. :(
PS: Просьба гуру помочь заставить работать как надо вышепоказанный мной код.
Автор: Nickolya 14.11.2010, 8:55
Поправил, там была путаница в именах команд: sRedirCmd и sRedurCmd... Плюс маленькие правки, смотрите уже сами. Еще вместо UserConnected надо бы RegConnected, т.к. у анрега точно нет прав на перенаправление.
В флайлинке все равно вот такая картина:
Цитата
[08:47:45] <PtokaX> В том зале вам удобнее будет сидеть!
[08:47:45] <PtokaX> Вы были перенаправлены на адрес.хаба.ru. Сообщение: В том зале вам удобнее будет сидеть!
[08:47:45] *** Нажмите "Перенаправление" для соединения с адрес.хаба.ru
[08:47:45] *** Отключен
Делают его разработчики что хотят, вырезают, потом возвращают назад настройки, самодурство какое-то.
Автор: Ksan 14.11.2010, 12:35
Вот же я тупень, так элементарно очепятнуться.. :(
Спасибо, Николай!