Автор: Saymon 28.8.2010, 22:41
Название: Easy OPChat
Автор: Nickolya
Описание: Скрипт реализующий простой ОП чат. Конечно он будет виден простым смертным юзерам, но они не смогут видеть разговоры ОПов и не смогут писать в него.
Автор: Saymon 7.9.2010, 18:43
Чтобы добавить описание боту, мы делаем вот так:
Код
sChatName = "RH_OpChat"
sIP = Core.GetConfig("sMainBotIP")
sMyINFO = "Самый_простой_ОП_чат_только_реализован_Lua_скриптом :) <V:".._VERSION..",M:A,H:0/0/1,S:0>$ $144,00 KiB/s;$no-reply@hub21.ru$0$"
function OnStartup()
Core.RegBot(sChatName, true, sMyINFO, sIP)
end
Автор: Saymon 27.10.2010, 18:43
Вообщем, я таки не забыл вопрос, о том, как скрыть оп чат из списка юзеров, и решил попробовать всётаки это сделать....
На моё удивление это оказалось достаточно просто
Сделал я это так:
Пишем переменную, например:
Код
sMyINFO_2 = "$MyINFO $ALL "..sChatName.." Самый_простой_ОП_чат_только_реализован_Lua_скриптом :)<V:".._VERSION..",M:A,H:0/0/1,S:0>$$ $0.005 $$0$"
После чего, в функции OnStartup, просто закоментируем Core.RegBot(sChatName, true, sMyINFO, sIP)
И вместо этого напишем:
Код
Core.SendToProfile({0, 1}, sMyINFO_2.."|")
Core.SendToProfile({0, 1}, "$OpList "..sChatName.."$$|")
Теперь при старте скрипта, мы просто будем посылать MyINFO и OpList профилям 0 и 1.
Но, также нам нужно чтобы вновь подключившимся ОПам также был виден наш оп чат.
Для этого просто в любое место допишем:
Код
function OnUserEnter(UID)
Core.SendToProfile({0, 1}, sMyINFO_2.."|")
Core.SendToProfile({0, 1}, "$OpList "..sChatName.."$$|")
end
Ну и в OnExit мы анрегали бота, сейчас можно:
Код
Core.SendToProfile({0, 1}, "$Quit "..sChatName.."|")
Ну вроде всё... У меня такой метод действительно работал
Если есть какие-то поправки - пишите))
Автор: Setuper 27.10.2010, 21:58
А зачем ты добавляешь в конец разделитель | ? Ведь он автоматически будет прибавляться если его нету
Автор: Saymon 27.10.2010, 22:00
Хм.... вот про автоматическое добавление не знал :(
Автор: Setuper 27.10.2010, 22:02
Все функции отсылки добавляют. Поэтому про разделитель в принципе можно забыть. Разделитель нужен только если отсылать за раз несколько команд, то есть пихать в функцию отсылки строку из нескольких команд
Автор: Saymon 27.10.2010, 23:56
Пробуем
Код
sShow = "ops" -- Будет ли оп чат виден всем или только профилям 0 и 1 ? all - Всем. ops - Профилям 0,1