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

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

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

Автор: Saymon 28.8.2010, 22:41

Название: Easy OPChat
Автор: Nickolya
Описание: Скрипт реализующий простой ОП чат. Конечно он будет виден простым смертным юзерам, но они не смогут видеть разговоры ОПов и не смогут писать в него. big_smile.gif



 EasyChat.lua ( 1.13 килобайт ) : 109
 

Автор: 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

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

Сделал я это так:
Пишем переменную, например:

Код
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.."|")


Ну вроде всё... У меня такой метод действительно работал big_smile.gif
Если есть какие-то поправки - пишите))

Автор: Setuper 27.10.2010, 21:58

А зачем ты добавляешь в конец разделитель | ? Ведь он автоматически будет прибавляться если его нету

Автор: Saymon 27.10.2010, 22:00

Хм.... вот про автоматическое добавление не знал :(

Автор: Setuper 27.10.2010, 22:02

Все функции отсылки добавляют. Поэтому про разделитель в принципе можно забыть. Разделитель нужен только если отсылать за раз несколько команд, то есть пихать в функцию отсылки строку из нескольких команд

Автор: Saymon 27.10.2010, 23:56

Пробуем big_smile.gif

Код
sShow = "ops"     -- Будет ли оп чат виден всем или только профилям 0 и 1 ? all - Всем. ops - Профилям 0,1


 EasyChat.lua ( 2.69 килобайт ) : 57