--------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------- -- Данный скрипт взят с сайта http://ptxscriptdb.psycho-chihuahua.net -- Оптимизировал и протестировал для русско-язычных хабов: -- NRJ ( nrj@labo.ru ) -- -- -- Любые боты и скрипты - поддержка/обновления/новинки: -- 1) http://dc.hovel.ru/ -- 2) http://forum.proc.ru/index.php?showforum=24 -- --------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------- -- Для того, чтобы ОПератор воспользовался командой необходимо ввести "[+]" (без кавычек) -- Для выхода из режима [=] tCommunicators = {} function OpConnected(user) if user.bUserCommand then user:SendData("$UserCommand 1 3 :OpsChatMode:\\ON$<%[mynick]> [+]||") user:SendData("$UserCommand 1 3 :OpsChatMode:\\OFF$<%[mynick]> [=]||") user:SendData("$UserCommand 1 3 :OpsChatMode:\\Кто сейчас в режиме$<%[mynick]> [?]||") end end function ChatArrival(oper, msg) if ( oper.bOperator ) then local s, e, txt = string.find(msg, "%b<>%s+(.+)") if ( string.sub(txt, 1 ,3) == "[-]" ) then local s, e, txt = string.find(txt, "%[-%](.*)") SendToOps("OpsOnly", "["..oper.sName.."] "..txt) return 1 elseif ( string.sub(txt, 1 ,3) == "[+]" ) then if (tCommunicators[oper.sName] == 1) then oper:SendData("OpsOnly", "Вы УЖЕ в режиме общения для ОПераторов!") elseif (tCommunicators[oper.sName] == nil) then tCommunicators[oper.sName] = 1 oper:SendData("OpsOnly", "Теперь вы в режиме общения операторов. Для его выключения введите ' [=] ' ") SendToOps("OpsOnly", "*** "..oper.sName.." перешел в режим общения для ОПераторов") end return 1 elseif ( string.sub(txt, 1, 3) == "[=]" ) then if (tCommunicators[oper.sName] == nil) then oper:SendData("OpsOnly", "Вы и НЕ были в режиме общения ОПераторов, чтобы из него выйти...") elseif (tCommunicators[oper.sName] == 1) then tCommunicators[oper.sName] = nil oper:SendData("OpsOnly", "Теперь вы в обычном режиме. Будьте внимательны! Пользователи видят все ваши сообщения!") SendToOps("OpsOnly", "*** "..oper.sName.." вышел из режима общения ОПераторов") end return 1 elseif ( string.sub(txt, 1,3) == "[?]" ) then local msg = "" for nick, t in tCommunicators do msg = msg.."\n\t - "..nick end if msg == "" then msg = " В режиме общения ОПераторов никого нет..." else msg = "\n\t ОПераторы с функцией скрытого общения :"..msg end oper:SendData("OpsOnly", msg ) return 1 else for name , v in tCommunicators do if (name == oper.sName) then SendToOps("OpsOnly", "["..oper.sName.."] "..txt) return 1 end end end end end