Название скрипта: BanMe Версия скрипта: 1.1 Версия API: API1,API2 (универсальный) Автор: Wariner Описание:
v 1.1 - Теперь под оба API - Случайное время бана из заданного промежутка - Дороботаны несколько мелочей v 1.0 - Банит юзера нажавшего на менюшку - Рандомное сообщение о том что юзер забанил сам себя
Правильный выбор отнести этот скрипт к развлечениям)))))
Автор: tot@l 14.8.2008, 9:01
спасибо *потирает руки*
Автор: dimetrius 14.8.2008, 9:41
Скрипт стоит самым последним в списке скриптов, поднять возможности нет! Меню видят администрация, юзеры меню не видят! :( Ваши предложения?
Автор: Wariner 14.8.2008, 9:50
Цитата(dimetrius @ 14.8.2008, 10:41)
Скрипт стоит самым последним в списке скриптов, поднять возможности нет! Меню видят администрация, юзеры меню не видят! :( Ваши предложения?
Странно :( Какие скрипты стоят у тебя? Я тестил скрипт на птоке 0400, пробовал ставить скрипт в самом низу(ниже хуббы)... всё работает!!!
Автор: dimetrius 14.8.2008, 12:30
У мну пока на 0,3,6,0 точный список скриптов не могу сказать, т.к. доступ только по фтп и дабы некие скрипты разместить вверху приходилось вместо старых отключённых скриптов вверху подсовывать новые, но переименовывать в старые! Дабы PtokaX их подхватывал именно в том месте, а не сдвигал вниз!
Автор: fixx 14.8.2008, 15:30
Работает на ура! Меню есть у всех. Стоит последним и ни жу-жу. Действительно, скрипт именно развлекательный, такого оживления в чате я раньше не встречал ни с одним скриптом, даже снежки позади... Появилось новое словечко: "Забанься" вместо "отвянь" и "отдыхай". Спасибо
Есть предложение подставлять в мессагу рандомный текст из списка: Выпил йаду и сам себя забанил Сам себя забанил и убился апстенку ну и т.п.
Автор: Артём 6.11.2008, 13:34
у меня тоже PtokaX 0.3.6.0 и стоит скрипт в самом низу,всё работает хорошо!!!
Автор: NikseR 8.11.2008, 1:17
Скрипт супер! Присоединяюсь к комментариям выше - добавьте пожалуйста рандомные мессаги, которые посылаются в чат, когда юзер себя банит. Весело конечно весело, но через какой-то период времени одна и та же мессага будет мозолить глаза
Автор: Wariner 8.11.2008, 18:34
Добавил что вы просили, ищите в первом посте
Автор: Артём 15.12.2008, 12:00
Выдаёт ошибку на API 1 [10:56] Синтакс D:\Не трогать!!!\Клубнячковый хаб\scripts\яKickme_API_1.lua:22: ')' expected near '...'
Скрипт, как назвал его TMB, Самокик Сделал под API 1 и 2
В принципе почти бесполезный скрипт, но можно по стебаться над юзверями или проверить кто самый любопытный. Просто сделайте актуальную менюшку и запустите скрипт. При нажатии на эту менюшку юзера забанит на время указаннное в скрипте))))
Скрипт просто супер= ) вот тока бы добавить ведения лога тех кто нажал на эту менюшку= ) что бы знать кто опробовал кик на себе=)
Автор: Санёк 17.3.2009, 18:05
Спасибо!! Исчо 1 интересная фишка ) Конечно побольше сообщений при самокике не помешало бы
Автор: Wariner 17.3.2009, 18:14
ну так в чём проблема придумай сам))))
Автор: Drakula 17.3.2009, 22:11
Wariner а статистику назя не как добавить??? прост я ж не всегда на хабе и мне интересно кто жал на менюшку+ было бы неплохо заделать ещё топ любопытных.
Автор: Wariner 17.3.2009, 22:41
я честно говоря просто не вижу в этом никакого смысла. список будет расти и толку от этого 0...
Автор: li4nost 17.3.2009, 23:10
поставил попробовать. не думаю, что каждый день себя будут банить одни и те же пользователи... на недельку посмеяться... или каждый раз его называть по разному...
Автор: Drakula 17.3.2009, 23:22
Цитата(Wariner @ 17.3.2009, 23:41)
я честно говоря просто не вижу в этом никакого смысла. список будет расти и толку от этого 0...
Вчёмто ты прав, но серавно мне лично (незнаю как остальным) интересно узнать кто жал на менюшку=) Ну вобщем те выбирать делать или нет
Автор: Артём 18.3.2009, 0:18
Поставь скрипт Cmd_to_owner и будешь знать кто жал на менюшку эту...
Автор: yaDroLLL 19.3.2009, 3:21
Цитата(li4nost @ 17.3.2009, 23:10)
не думаю, что каждый день себя будут банить одни и те же пользователи... на недельку посмеяться... или каждый раз его называть по разному...
Да нет вообще то, бывают у меня по 1-3 раз за день одни и те же нажимают
Автор: Alexey 7.5.2009, 23:17
!banme ищется во всей строке, непорядок. Сделал время бана случайным из диапазона 5-30 минут, вроде веселее стало ;)
Автор: NikseR 8.5.2009, 1:39
Цитата(Alexey @ 8.5.2009, 0:17)
Сделал время бана случайным из диапазона 5-30 минут, вроде веселее стало ;)
О, вот это то, что мне не хватало! =) А то все одна минута, да одна минута. Не подскажешь, как диапазон сделать? Или скриптик свой кинь
Автор: Wariner 8.5.2009, 14:23
скрипт поправил, немного доработал(интервал времени), теперь о под оба API! Пробуем))))
Автор: NikseR 8.5.2009, 17:00
Цитата(Wariner @ 8.5.2009, 15:23)
скрипт поправил, немного доработал(интервал времени), теперь о под оба API! Пробуем))))
Класс! Спасибо, все работает. Ты супер!
Автор: Alexey 8.5.2009, 22:35
Цитата(Wariner @ 8.5.2009, 14:23)
скрипт поправил, немного доработал(интервал времени), теперь о под оба API! Пробуем))))
Угу, поглядел, у меня там ещё образовалась local nTime = math.random(tTime[1], tTime[2]), которая используется при выдаче бана и в сообщении в общий о бане, а так-же Reason в бане указан. Править всего ничего, но не все осилят.
Автор: Drakula 11.5.2009, 19:44
Если ты взялся за этот скрипт то сделай так что бы писало кем забанен, то есть писало ник того, кто нажал на менюшку и причину которую также можно было бы указать в настройках скрипта. Буду очень благодарен. А то не все дорубают кто и за что его забанил, а так буит ясно что он сам себя и за что=)
Автор: Alexey 11.5.2009, 21:41
Цитата(Drakula @ 11.5.2009, 20:44)
Если ты взялся за этот скрипт то сделай так что бы писало кем забанен, то есть писало ник того, кто нажал на менюшку и причину которую также можно было бы указать в настройках скрипта. Буду очень благодарен. А то не все дорубают кто и за что его забанил, а так буит ясно что он сам себя и за что=)
Вот поправленный для себя вариант скрипта до последней правки Варинера. API2 only. Интервал времени, посылка сообщения в общий и причина бана присутствуют. Захват команды !banme только в начале строки.
local s,e,msg = string.find(data,"^%b<>%s(%S+).*$") if msg then if (string.find(msg,"banme") ~= nil) then
Этот вариант тоже не слишком оптимизированный!
Автор: Drakula 13.5.2009, 17:02
Wariner, Работает отлично, сенк!
Автор: Uncle_Dif 4.9.2009, 9:22
Прошу прощения за вольное обращение со скриптом. Захотелось как-то его обогатить и руку набить. Хотел к !banme добавить /clear и /close и добавил. Результат- !banme работает, а /clear и /close нет. Галка стоит, ошибок не пишет, в чат идёт- /clear и /close... Скрипт вверх-вниз перемещал. Что у меня неправильно и как исправить?
CODE
--[[ Название скрипта: BanMe (Stalker) Версия скрипта: 1.1 Версия API: API2 Автор: Wariner (Unle_Dif) Специально для портала администраторов http://mydc.ru
Возможности: v 1.1.Stalker -добавлено Uncl_Dif: - !clear - !close - изменено меню - юзер не знает что его ждёт, он же Stalker) v 1.1. - Теперь под оба API - Случайное время бана из заданного промежутка - Дороботаны несколько мелочей v 1.0 - Банит юзера нажавшего на менюшку - Рандомное сообщение о том что юзер забанил сам себя
скрипт удобнее будет просматривать в Notepad++ ]]--
local sBot = "" -- Ник бота SetMan.GetString(21) local tTime = {1, 10} -- Интервал времени бана в минутах local tMsg = { -- Сообщения посылаемые все когда юзер забанил сам себя(не забываем после каждой фразы ставить запятые!!!!) "играет в Stalker ))", } local sReason = "Любопытство" local bFull = false local sReturn = true
if not Core then NewUserConnected = UserConnected sNick = "sName" sReturn = 1 bFull = 0 if sBot == "" then sBot = frmHub:GetHubBotName() end else sNick = "sNick" if sBot == "" then sBot = SetMan.GetString(21) end end
function UserConnected(tUser) SendDataToUser(tUser,"$UserCommand 1 3 Меню нашего хаба\\Stalker\\?$<%[mynick]> !banme|") SendDataToUser(tUser,"$UserCommand 1 3 Меню нашего хаба\\Stalker\\?$<%[mynick]> /clear|") SendDataToUser(tUser,"$UserCommand 1 3 Меню нашего хаба\\Stalker\\?$<%[mynick]> /close|") end OpConnected = UserConnected RegConnected = UserConnected
function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd = sData:match"%b<>%s+([!+-/*]%S+)" if sCmd == "!banme" then SendDataToAll(("<%s> %s %s"):format(sBot, tUser[sNick], tMsg[math.random(1,#tMsg)])) SendDataToUser(tUser, ("<%s> Ты крутой stalker и забанил сам себя, теперь отдохни...))))"):format(sBot)) BanUser(tUser, math.random(tTime[1], tTime[2]), sReason, tUser.sNick, bFull) return sReturn end end
function SendDataToUser(tUser, sMsg) if Core then Core.SendToUser(tUser, sMsg) else tUser:SendData(sMsg) end end
function SendDataToAll(sMsg) if Core then Core.SendToAll(sMsg) else SendToAll(sMsg) end end
function BanUser(tUser, iTime, sReason, sBy, bFull) if Core then BanMan.TempBan(tUser, iTime, sReason, sBy, bFull) else tUser:Ban(sReason, sBy, bFull) end end
Автор: Wariner 4.9.2009, 10:13
мда... во первых
Цитата
- изменено меню - юзер не знает что его ждёт, он же Stalker)
это чушь ибо меню писалось именно для того чтоб каждый поменял подсебя (ну просто нельзя назвать это изменение стоящим)
а насчёт скрипта давай уточним ты понимаешь что ты делаешь? Объясняю: ты добавил менюшку, но нахождение команды и обработку её ты не написал, поэтому у тебя и не работает!
Автор: Uncle_Dif 4.9.2009, 11:24
а насчёт скрипта давай уточним ты понимаешь что ты делаешь? Объясняю: ты добавил менюшку, но нахождение команды и обработку её ты не написал, поэтому у тебя и не работает! ====================================== Правильно понимаю?: чтоб заставить скрипт выполнять команды !close и !clear моих изменений не достаточно. Надо для каждой дополнительной что-то дописать? Полагаю это "что-то" уже есть в скрипте для "!banme", это можно повторить для "!close" и "!clear"? Укажи и направь мою руку)).
Автор: Wariner 4.9.2009, 17:58
Код
function UserConnected(tUser) SendDataToUser(tUser,"$UserCommand 1 3 Меню нашего хаба\\Stalker\\?$<%[mynick]> !banme|") -- это всего лишь меню ... end
function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd = sData:match"%b<>%s+([!+-/*]%S+)" -- нахождение команды if sCmd == "!banme" then -- обработка команды end end
Автор: Uncle_Dif 4.9.2009, 21:54
Сделал так:
CODE
function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd = sData:match"%b<>%s+([!+-/*]%S+)" if sCmd == "!banme" then if sCmd == "!clear" then if sCmd == "!close" then end end
и теперь на !banme отвечает нормально, а на "!clear" и "!close" отвечает переподключением. При этом галка на месте и ошибок не пишет.
Поправимо?
Автор: Wariner 4.9.2009, 23:44
нифига не понял, это полый код?
Код
function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd = sData:match"%b<>%s+([!+-/*]%S+)" if sCmd == "!banme" then -- какое то действие elseif sCmd == "!clear" then -- какое то действие elseif sCmd == "!close" then -- какое то действие end end
так понятнее???
Автор: Uncle_Dif 6.9.2009, 15:13
Цитата(Wariner @ 5.9.2009, 0:44)
нифига не понял, это полый код?
Код
function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd = sData:match"%b<>%s+([!+-/*]%S+)" if sCmd == "!banme" then -- какое то действие elseif sCmd == "!clear" then -- какое то действие elseif sCmd == "!close" then -- какое то действие end end
так понятнее???
Кажется понял... в оригинале скрипта так:
Код
if sCmd == "!banme" then SendDataToAll(("<%s> %s %s"):format(sBot, tUser[sNick], tMsg[math.random(1,#tMsg)])) SendDataToUser(tUser, ("<%s> Ты забанил сам себя))))"):format(sBot)) BanUser(tUser, math.random(tTime[1], tTime[2]), sReason, tUser.sNick, bFull) return sReturn
значит, для !clear и !close надо создать, для каждого своё, что-то вроде этого?: " if sCmd == "!cleaer" (или "!close) then SendDataToAll(("<%s> %s %s"):format(sBot, tUser[sNick], tMsg[math.random(1,#tMsg)])) SendDataToUser(tUser, ("<%s> Ты Stalker и ты попал...))))"):format(sBot)) BanUser(tUser, math.random(tTime[1], tTime[2]), sReason, tUser.sNick, bFull) return sReturn
Так, да? Не гневись, нуб я....
Автор: Wariner 6.9.2009, 15:16
ну типо того, только вот я не понимаю чего ты этими командами хочешь делать???
Автор: Uncle_Dif 6.9.2009, 15:57
В чем смысл: исходный скрипт предлагает юзеру забанить самого себя, т.е. он знает что его ждет. В моём замысле идея такая- юзер не знает, что его ждет. Сталкеры, диггеры и др.экстремалы не знают же что их ждёт.... Ну а команды безобидные, выполняются из меню и горячими клавишами. Надеюсь донес-нерасплескал....
PS Кажется есть еще команда "попытка отключить Windows", не помнишь какая?)
Исправил как ты сказал. Теперь это выглядит так:
Код
function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd = sData:match"%b<>%s+([!+-/*]%S+)" if sCmd == "!banme" then SendDataToAll(("<%s> %s %s"):format(sBot, tUser[sNick], tMsg[math.random(1,#tMsg)])) SendDataToUser(tUser, ("<%s> Ты крутой stalker и забанил сам себя, теперь отдохни...))))"):format(sBot)) BanUser(tUser, math.random(tTime[1], tTime[2]), sReason, tUser.sNick, bFull) return sReturn end if sCmd == "!clear" then SendDataToAll(("<%s> %s %s"):format(sBot, tUser[sNick], tMsg[math.random(1,#tMsg)])) SendDataToUser(tUser, ("<%s> Ты крутой stalker и попал в ситуёвину, теперь подумай что делать...))))"):format(sBot)) ClearUser(tUser, math.random(tTime[1], tTime[2]), sReason, tUser.sNick, bFull) return sReturn end if sCmd == "!close" then SendDataToAll(("<%s> %s %s"):format(sBot, tUser[sNick], tMsg[math.random(1,#tMsg)])) SendDataToUser(tUser, ("<%s> Ты крутой stalker и попал в ситуёвину, теперь подумай что делать...))))"):format(sBot)) CloseUser(tUser, math.random(tTime[1], tTime[2]), sReason, tUser.sNick, bFull) return sReturn end end
в результе !banme работает, !clear и !close - нет (происходит переподключение(реконект?) и [19:11] Нет синтаксических ошибок в файле скрипта BanMe (1).lua [19:11] Скрипт запущен. [19:12] E:\Uncle_Dif\Uncle_Dif-Hub\scripts\BanMe (1).lua загружен. Подозреваю, где-то еще надо прописать эти !clear и !close, но где?
Автор: Wariner 6.9.2009, 16:35
короче я так и не понял этого замута... пользователей и так банит на разное время... сделай просто несколько менюшек под одну команду
Автор: Uncle_Dif 6.9.2009, 16:46
Цитата(Wariner @ 6.9.2009, 16:35)
сделай просто несколько менюшек под одну команду
Спасибо. Пгоститете мя, буде йа виноват пегед Вами...
Автор: Griff 21.9.2009, 16:07
Скажи почему у меня этот скрипт не работает на птохе 0.3.6.0?? или я что - то недопонимаю и надо гдето дописать?. Обьясните плиз
Автор: Артём 21.9.2009, 18:41
Griff Ошибки есть?Когда поставил галочку перезаходил на хаб,менюшку видел?
Автор: Griff 22.9.2009, 8:01
Ошибок нет! галочка стоит а вот менюшки нет(
да и перезаходил тоже нет
Автор: Wariner 22.9.2009, 13:35
такого не может быть!
Автор: X-Sky 22.9.2009, 14:10
У него как я понял такая проблема: Скрипт запускается, не вылетает, ошибок никаких, когда пишешь в чат !banme он выдает сообщение типа "Вы забанили сам себя", а юзер продолжает находиться в чате.
Я по-моему сталкивался с этим скриптом, но исправить руки так и не дошли
Автор: Griff 22.9.2009, 15:29
X-Sky
Да ты прав! банми в чате появляется но не банит
+ к тому это доступна тока админам
Может что в скрипте не так? BanMe.lua ( 2.38 килобайт )
: 5
Автор: Артём 22.9.2009, 15:32
Griff Скрипт рабочий.
Автор: Wariner 23.9.2009, 8:10
Как всегда занимаемся магие и пробуем двигать скрипт вверх вниз в списке скриптов!
Автор: ЕВГЕНЧИК 14.1.2010, 13:53
Спасибо огромное, скрипт кайф!!! Давно ищу. Я изменил в меню Самобан на НЕ НАЖИМАТЬ!!! так на много интересней, проверять особо любопытных. =))
Скрипт вполне рабочий и меню видно всем и админам, и зарегистрированным, и незарегистрированным тоже, проверял сам лично.
Автор: Unterlink(X-Sky) 24.1.2010, 9:35
Сделайте так, чтобы время можно бана было выбирать самому юзеру, например командой !banme 1г или !banme 1ч
Автор: Wariner 24.1.2010, 10:37
И как ты себе это представляешь?!
Автор: Unterlink(X-Sky) 24.1.2010, 11:05
Ну а разве это невозможно? Просто представляю, юзер вводит команду, указывает время бана - улетает в него
Автор: Nickolya 24.1.2010, 13:30
Извращенцы... Тогда уж сделайте меню для бана на час "сюда не нажимать", для бана на день "сюда ТОЧНО НЕ НАЖИМАТЬ", для бана на неделю "Я СКАЗАЛ НЕ НАЖИМАЙ СЮДА!!!"...
Автор: Unterlink(X-Sky) 24.1.2010, 13:36
И ставить 3 скрипта чтоли, ничё не пойму? Пусть уж сами время указывают сколько им надо
Автор: Nickolya 24.1.2010, 13:53
Илюх, юнный падаван, тебе на будущее, смотри на сколько нелогичная конструкция:
Код
local sCmd = sData:match"%b<>%s+([!+-/*]%S+)" if sCmd == "!banme" then
тут ты делаешь в 1 строке разнообразные префиксы команд, однако из-за захвата вместе с префиксом ты ограничиваешь сам себя одним префиком во 2 строке, правильнее было бы так (спец символы кстати надо тоже экранировать):
Код
local sCmd = sData:match"%b<>%s+[%!%+%-/%*](%S+)" if sCmd == "banme" then
А реализация вот такая, банится на минуты, сколько указано после команды, т.е. !banme 10000 забанит тебя же на 10000 минут, заменяем всю фукнцию ChatArrival:
Код
function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd, sBanTime = sData:match"%b<>%s+[%!%+%-/%*](%S+)%s*(%d*)" if sCmd == "banme" then SendDataToAll(("<%s> %s %s"):format(sBot, tUser[sNick], tMsg[math.random(1,#tMsg)])) SendDataToUser(tUser, ("<%s> Ты забанил сам себя))))"):format(sBot)) local iBanTime = tonumber(sBanTime) if iBanTime and iBanTime > 0 then if not BanUser(tUser, iBanTime, sReason, tUser.sNick, bFull) then BanUser(tUser, math.random(tTime[1], tTime[2]), sReason, tUser.sNick, bFull) end else BanUser(tUser, math.random(tTime[1], tTime[2]), sReason, tUser.sNick, bFull) end return sReturn end end
Цитата(Unterlink(X-Sky) @ 24.1.2010, 13:36)
И ставить 3 скрипта чтоли, ничё не пойму?
Нет, делаем как описано выше, меню надеюсь сами сделаете
Автор: Wariner 24.1.2010, 14:26
Ну на счёт юный эт ты махнул конечно xDDD
Автор: Unterlink(X-Sky) 24.1.2010, 14:29
Как сделать ограничение по количеству цифр в минутах? Пишешь !banme 9999 - норм Пишешь !banme 999999999999999999 - птока падает тут же
Автор: Nickolya 24.1.2010, 14:48
Странно, у меня не падала, просто банила по умолчанию. Ограничение делается вот в этой строке:
Код
if iBanTime and iBanTime > 0 then
чтобы ограничить какой-то цифрой, к примеру 100000 делаем так:
Код
if iBanTime and iBanTime > 0 and iBanTime < 100000 then
если подберешь значение при котором птока не падает - пиши, а то в документации этого нет
Автор: Unterlink(X-Sky) 24.1.2010, 14:52
Ввёл 99999999999999 минут - упала
Автор: *FoxMalder* 2.3.2010, 12:42
для птоки лучше не давать число больше 9999 иначе она начинает подвисать.. и чем больше тем дольше, знаю по собственному опыту))
а можно скрипту добавить "светлую" сторону которая будет не банить а прощать либо просто дропать со своими фразами?)
Автор: foXDEvil 19.3.2010, 6:41
а как сделать чтобы банило на 1 секунду а не на минуты
Автор: Wariner 19.3.2010, 10:22
а смысл какой? тогда уж совсем не интересно будет))))
ну а вообще если подумать головой, то если минимальное время минута, то нужно поставить не целое число....
например 0.1 это будет 6 секунд))))
Автор: foXDEvil 19.3.2010, 11:29
я уже подумал над этим вариантом и нечего не вышло. скрипт просто воспользовался временем бана которое прописано в настройках хаба((((((((
Автор: Nickolya 19.3.2010, 14:50
Значит птокой не предусмотрены такие баны, в справке так:
Код
BanMan.TempBan(tUser, nTime, sReason, sBy, bFull) - Temp ban user IP and Nick. nTime is in minutes (0 = default tempban time from settings) ! Return nil when failed, true if success.
т.е. минуты и все, речи о секундах не идет.
Чтобы юзера кикало замени
Код
BanMan.TempBan(tUser, iTime, sReason, sBy, bFull)
на
Код
Core.Disconnect(tUser)
Автор: foXDEvil 19.3.2010, 14:57
хм а это вариант =) спасибо
Автор: as91 26.4.2010, 18:59
а можете чсделать топ любопытных? кто больше раз нажимал на кнопку? Я бы сам сделал если б умел. пс подскажите, на каком языке пишутся скрипты?
Автор: Wariner 26.4.2010, 19:02
т.е. у тебя на хабе есть олени которые несколько раз попадаются на эту лажу???
PS: язык называется lua http://mydc.ru/r/?http://www.lua.ru/