myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> Untouchables, Disconnect, Unreg By Kick|ban, API1 | Три простых скрипта

Теги
Нет тегов для показа
district
сообщение 8.11.2008, 6:53
Сообщение #1


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Решил выложить три простых скрипта для PtokaX 0.3.6.0 (у меня работают под LUA 5.1.2) как первый свой опыт в скриптописании. Буду благодарен за замечания и предложения.
Привожу в последовательности исполнения, в какой стоят у меня.

UNTOUCHABLES (стоит почти в самом верху списка)
Скрипт подстраховки от случайных действий оператора: защищенные ники, которые нельзя забанить, плюс дополнительно выбор профиля, к примеру, "VIP", который в принципе забанить нельзя.
Буду благодарен, если кто подскажет, как добавить защиту от кика ($Kick)

DISCONNECT
Иногда бывает нужно, чтобы юзер просто переподключился на хаб, а до него не докричаться.
За основу взят классический пример использования глобальной функции GetItemByName(Nick), взятый вот отсюда
У меня стоит где-то посередине списка, перед основным хаб-скриптом (у меня это основательно переработанный Thunder)

UNREG BY BAN(стоит в самом конце списка)
Скрипт автоматически удаляет регистрацию забаненного пользователя, для поддержания в чистоте списка зарегистрированных. Список команд, на которые реагирует скрипт, корректируется под политику конкретного администратора.

----------------------------------------------------------------------------------------------------------
!UPDATED - см.ниже big_smile.gif
Прикрепленные файлы
Прикрепленный файл  Untouchables.lua ( 1.15 килобайт ) Кол-во скачиваний: 79
Прикрепленный файл  Disconnect.lua ( 1.18 килобайт ) Кол-во скачиваний: 115
Прикрепленный файл  UnregByBan.lua ( 1.1 килобайт ) Кол-во скачиваний: 81
 


Спасибо сказали:
Go to the top of the page
+Quote Post
FallenAngel
сообщение 8.11.2008, 10:26
Сообщение #2


[n00b]
*****

Группа: Пользователи
Сообщений: 291
Регистрация: 10.7.2008
Из: Россия,Пенза
Пользователь №: 168
Спасибо сказали: 24 раза




Скрипты действвельно заслуживают внимания... Я по поводу поседнего-можно сдеать так,чтоб удалялась регистрация не когда ОП(или Админ) забанит, а когда человек сам себя-то есть после не правильного ввода пароля...(желательно именно после ввода пароля,ибо тут выкладывали скрипт самокика-после этого действия то не надо удалять регу)
ЗЫ_спасибо большое если сможешь написать!;)
Go to the top of the page
+Quote Post
ustas
сообщение 8.11.2008, 12:12
Сообщение #3


Продвинутый участник
****

Группа: Пользователи
Сообщений: 177
Регистрация: 20.5.2008
Пользователь №: 5
Спасибо сказали: 26 раз




Цитата(FallenAngel @ 8.11.2008, 10:26) *
Скрипты действвельно заслуживают внимания... Я по поводу поседнего-можно сдеать так,чтоб удалялась регистрация не когда ОП(или Админ) забанит, а когда человек сам себя-то есть после не правильного ввода пароля...(желательно именно после ввода пароля,ибо тут выкладывали скрипт самокика-после этого действия то не надо удалять регу)
ЗЫ_спасибо большое если сможешь написать!;)
кто-нить зайдет под чужим ником, три раза введет не правильный пароль, пароль сбросится и можно снова регить этот ник. Какой тогда будет смысл от регистрации??

to District: спасибо, попробую
Go to the top of the page
+Quote Post
district
сообщение 8.11.2008, 13:01
Сообщение #4


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Ммм, как сделать так, чтобы скрипт лазил в BanList.xml, сравнивал его содержимое с RegisteredUsers.xml, условием этого сравнения было бы вот это:

Цитата
<Reason>3x bad password for nick <nick></Reason>


а потом менял содержимое в RegisteredUsers.xml - тут, что называется, могу только "развести руками".
Тонкость еще и в том, что за троекратный неправильный пароль Птока банит по IP, а не по нику, по крайней мере, у меня так. Это ставит под сомнение сам смысл удаления зарегистрированного ника.

А о том, может ли в принципе скрипт генерировать встроенную команду Птоки, подлежащую выполнению Птокой так же, как если бы команда была подана от админ-клиента, я и сам надеюсь услышать тут ответ, от знающих людей.
Go to the top of the page
+Quote Post
Wariner
сообщение 8.11.2008, 16:19
Сообщение #5


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




Цитата(district @ 8.11.2008, 6:53) *
как добавить защиту от кика ($Kick)


Посмотри вот этот скрипт http://mydc.ru/topic568.html в нём использована функция
Код
KickArrival(tUser, sData)
и этим решена проблема)))
Go to the top of the page
+Quote Post
district
сообщение 8.11.2008, 17:39
Сообщение #6


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Wariner
Цитата
и этим решена проблема)))


О, спасибо)))) Так и знал, что решение на поверхности, но за неделю активного вникания в тему глаз настолько замылился, что и очевидные ивенты API уже узреть не смог )))))
---------------------------------------------------------------------------------------------
Благодаря подсказке, скрипт доведен до ума.
Запрещенные в отношении "неприкасаемых" команды вынесены в таблицу, в таблицу же вынесены неприкасаемые профили. Добавлена защита от Кика. Отдельно приписана команда, используемая в скрипте Hostbans - +nickhostban, а сам скрипт Hostbans расположен в списке непосредственно следом за Untouchables.

Немного изменен (тоже добавлена таблица действующих команд) и скрипт UnregByBan
Прикрепленные файлы
Прикрепленный файл  UnregByBan_.lua ( 1.14 килобайт ) Кол-во скачиваний: 28
Прикрепленный файл  Untouchables_.lua ( 2.45 килобайт ) Кол-во скачиваний: 34
 
Go to the top of the page
+Quote Post
KING RING
сообщение 7.1.2009, 11:02
Сообщение #7


Абсолютный новичок


Группа: Пользователи
Сообщений: 8
Регистрация: 26.12.2008
Пользователь №: 1 569
Спасибо сказали: 0 раз




под апи2 beat_brick.gif забацайте=) птока 0.4.1.1
мне нужен только DISCONNECT =)
Go to the top of the page
+Quote Post
xReal
сообщение 23.1.2009, 16:40
Сообщение #8


Абсолютный новичок


Группа: Пользователи
Сообщений: 2
Регистрация: 18.1.2009
Пользователь №: 1 854
Спасибо сказали: 0 раз




Цитата(district @ 8.11.2008, 21:39) *
Untouchables.lua - Благодаря подсказке, скрипт доведен до ума.


Что-то я не пойму как он доведен до ума?
вот этот код мне не даёт покоя:

Код
function KickArrival(user,data)
   data=string.sub(data,1,string.len(data)-1)
   _,_,nick = string.find( data, "%p%S+%s(%S+)")
   if nick then
      if Untouchable[nick] == 1 then
         user:SendData(Bot, "*** Пользователь "..nick.." в списке неприкасаемых, команда не может быть применена! ")    
         return 1
      end
   end
end

только вот я непойму, как же он защищает от кика??? командой return 1 ??? :-)

На собственном опыте проверено: это ни как не защищает.
Может быть кто-нибудь мне объяснит??? где тут защита, ведь функция возвращает 1, т.е. получается он выполнила своё предназначение? или как?

Цитата(KING RING @ 7.1.2009, 15:02) *
под апи2 beat_brick.gif забацайте=) птока 0.4.1.1
мне нужен только DISCONNECT =)


тебе всё еще нужен для птоки 0.4.1.1?
вот на скорую руку сделал - в теории должно работать :-)
(как тут выкладывать файл не знаю, поэтому выкладываю код)

Код
Bot = SetMan.GetString(21)
-- или можно так
-- Bot = SetMan.GetHubBot()

OpConnected = function(user, data)
      Core.SendToUser (user, "$UserCommand 1 3 Дисконнект\\Дисконнект этого юзера$<%[mynick]> !disc %[nick]|")
end

function ChatArrival (user, data)
      data = string.sub (data,1,string.len(data)-1)
      local _,_,cmd = string.find (data, "%b<>%s+(%S+)")      
      if cmd == "!disc" then
            if user.bOperator then
                  local _,_,nick = string.find (data, "%b<>%s+%S+%s+(%S+)")
                  if nick then
                        local usr = Core.GetUser (nick) -- get the object
                        if usr then -- if online
                              Core.SendToOps ('<'..Bot.sNick..'> *** Юзер '..nick..' был отключен. Отключил: '..RegMan.GetRegsByProfile (user.iProfile)..' '..user.sNick..'.')
                              Core.Disconnect (usr)
                        else
                              Core.SendToUser(user, '<'..Bot.sNick..'> *** Юзер '..nick..' не на хабе.')
                        end
                  end
            else
                  Core.SendToUser(user, '<'..Bot.sNick..'> *** Извините, у вас нет права использовать эту команду.')
            end
            return true
      end
end

Прикрепленные файлы
Прикрепленный файл  Disconnect_0.4.1.1.lua ( 1.27 килобайт ) Кол-во скачиваний: 19
 
Go to the top of the page
+Quote Post
Jaska
сообщение 23.1.2009, 19:15
Сообщение #9


Освоившийся участник
*****

Группа: Администраторы
Сообщений: 344
Регистрация: 2.6.2008
Из: RB,Ufa
Пользователь №: 8
Спасибо сказали: 106 раз




2 xReal

KickArrival(tUser, sData) - Incoming kick command from user. If script return true hub don't process data.
см. пост свята http://mydc.ru/topic118.html?hl=%F4%F3%ED%EA%F6%E8%E8+PtokaX

CODE
function KickArrival(tUser, sData)
local sData = sData:sub(1,-2)
local _,_,sNick = sData:find("$Kick%s+(%S+)")
if sNick == "Jaska" then
Core.SendToUser(tUser,"Нельзя!")
return true
end
end


проверь на 0.4.1
и на забудь ник сменить)
Go to the top of the page
+Quote Post
xReal
сообщение 23.1.2009, 19:39
Сообщение #10


Абсолютный новичок


Группа: Пользователи
Сообщений: 2
Регистрация: 18.1.2009
Пользователь №: 1 854
Спасибо сказали: 0 раз




Цитата(Jaska @ 23.1.2009, 23:15) *
2 xReal
If script return true hub don't process data.

Это круто!
Спасибо за указание :-)
Видимо не углядел :-)
НО! Всё же! у меня такой скрипт (с вышесказанным "исправлением". т.е. если тру - то не выполняет кик) работает на 0.4.1.1 и толку 50 на 50, т.е. админов такая комбинация защищает, но простых пользователей нет. вот я и спросил.

в общем будем всё пробовать. спасибо за подсказку :-)
Go to the top of the page
+Quote Post
Jaska
сообщение 23.1.2009, 21:08
Сообщение #11


Освоившийся участник
*****

Группа: Администраторы
Сообщений: 344
Регистрация: 2.6.2008
Из: RB,Ufa
Пользователь №: 8
Спасибо сказали: 106 раз




2 xReal

Твоя переделка disconnect.lua отказалась работать.

Вообщем выкладываю свою версию disconnect.lua, не удержался кое что добавил:

1) проверка прав по профилям
2) права можно выдать VIP (по нику или ip) вне зависимости от профиля. VIP будет иметь права выкидывать всех при этом его самого выкинуть нельзя.
3) кое какие моменты подправил (чтобы какой-нить оп не мог выкинуть мастера)

Прикрепленный файл  disconnect.lua ( 1.95 килобайт ) Кол-во скачиваний: 24
Go to the top of the page
+Quote Post
Milena
сообщение 24.5.2009, 10:40
Сообщение #12


Активный участник
***

Группа: Пользователи
Сообщений: 55
Регистрация: 2.4.2009
Из: Питер
Пользователь №: 2 893
Спасибо сказали: 3 раза




странное дело одного дисконнектит юзера а другого нет(
Go to the top of the page
+Quote Post
district
сообщение 24.5.2009, 11:59
Сообщение #13


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Вот не думал что такие ископаемые скриптики еще кого-то интересуют и тема еще жива ))
По поводу кика : настолько геморройная штука, что каждый раз проклинаешь того, кто ее вообще придумал, когда приходится иметь с ней дело в кодах crying.gif Дело вот в чем: чтобы полностью блокировать кик, блокировать его нужно в трех функциях-событиях : KickArrival (непостредственно кик), ChatArrival (сообщение всем о прошедшем кике, с указанием причины) и ToArrival ( личка кикнутому, что его-де кикнули, и за что именно).
На то и kick в event'ах, чтобы кодер не дремал...
Go to the top of the page
+Quote Post
Milena
сообщение 24.5.2009, 13:08
Сообщение #14


Активный участник
***

Группа: Пользователи
Сообщений: 55
Регистрация: 2.4.2009
Из: Питер
Пользователь №: 2 893
Спасибо сказали: 3 раза




может напишешь скриптик без косяков для 0411 ? )
Go to the top of the page
+Quote Post
district
сообщение 24.5.2009, 16:05
Сообщение #15


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Такую простую вещь, как скриптик, основанный на одной-единственной стандартной функции, любой уважающий себя админ ПтокаХ-хаба должен уметь писать сам. Пытайся, пиши, пробуй - тем более что есть от чего отталкиваться, код нужно только поправить. В совсем затруднительных случаях - не стесняйся задавать конкретные, сформулированные вопросы, форум тут добротный, помогут.
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsUnreg
Как настраивать профиль незарегенных юзеров ?
6 Санёк 11 236 23.2.2013, 10:30 Посл. сообщение: Артём
No New Posts вопрос kick?
3 g3sg1 7 114 13.12.2010, 14:30 Посл. сообщение: HackFresse
No New Posts Topic has attachmentsDownload Blocker Unreg
VerliHub
0 Артём 4 735 5.8.2010, 16:33 Посл. сообщение: Артём
No New Posts Topic has attachmentsanti-kick.lua
Анти массовый кик
3 Vizunchik 7 826 5.8.2010, 15:34 Посл. сообщение: Nickolya
No New Posts Topic has attachmentsVote To Kick
Eximius
0 Артём 4 909 5.7.2010, 23:46 Посл. сообщение: Артём
No New Posts Topic has attachmentsDisconnect
3 yaDroLLL 6 130 4.6.2009, 17:49 Посл. сообщение: alex82
No New Posts Topic has attachmentsСкрипт Отправки Сообщений В Оффлайн И Голосование За Kick Юзера
API2
4 =Quadro= 10 303 19.1.2009, 23:37 Посл. сообщение: Артём
No New Posts Topic has attachmentsKick&topcontrol И Оповеститель
API2
4 yMka 7 894 2.12.2008, 11:41 Посл. сообщение: Setuper
No New Posts Topic has attachmentsVip-kick
Не могу переделать меню!
10 Andrey_SHANDERA 15 598 29.10.2008, 23:27 Посл. сообщение: Артём

 



RSS Сейчас: 27.11.2024, 6:09