|
Здравствуйте, гость ( Вход | Регистрация )
|
![]()
Сообщение
#1
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
Название скрипта: Protector
Версия скрипта: v1.1 RC1 Версия API: API2 Автор Wariner Возможности:
Проект к сожалению мёртв
Прикрепленные файлы
|
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
По-моему это функции, выдранные из хуббы по большей (или по меньшей) части, ну и кое-что конечно дописано))
|
|
|
![]()
Сообщение
#3
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 47 Регистрация: 29.7.2008 Из: керчь Пользователь №: 293 Спасибо сказали: 0 раз ![]() |
нажимая на ник юзера хорошо былобы добавить забанить этого юзера и также со всем остальным чтобы постоянно не вводить ник или айпи
|
|
|
![]()
Сообщение
#4
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
По-моему это функции, выдранные из хуббы по большей (или по меньшей) части, ну и кое-что конечно дописано)) Ты имеешь ввиду по тому что они делают или то что я из хуббы их скопировал?! Если второе то отвечаю сразу почти весь код написан своими руками(схожесть с хуббой появляется из за того что на хабе стоит он у меня и многие функции в нём меня устраивают!) PS: более глобальных комментариев не будет? |
|
|
![]() ![]()
Сообщение
#5
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Скрипт не устанавливал и не тестил, по внешнему виду всё определяю. Действительно по коду ничего общего с хуббой нет (общее только вид таблиц, хотя ты используешь простые таблицы, а хубба метатаблицы).
По поводу опимизации: 1). Вместо конструкций вида: Код if sType == nil then лучше писать логические конструкции: Код if not sType then Логическая операция всегда выполняется быстрее, чем операция сравнения.2). В соответствие с http://mydc.ru/ipb.html?s=&showtopic=5...post&p=4342 следует писать: Код sData = sPath.."Data/" sText = sPath.."Text/" 3). Если известна таблица пользователя, то лучше отсылать сообщение пользователю, а не нику. То есть вместо Core.SendToNick использовать Core.SendToUser. При отправке нику всё равно идет поиск этого пользователя на хабе и после этого идет отправка пользователю (это из-за того, что таблица пользователя содержит "виртуальное" поле userdata, которое однозначно идентифицирует пользователя и через которое происходит отсылка сообщений). 4). По возможности избегать лишних конкатенаций. То есть вместо кода: Код local msg = "\r\n\r\n"..string.rep ("=", 60).."\r\n".. лучше использовать код: " Пользователи, использовавшие этот ник:\r\n".. string.rep ("=", 60).."\r\n".. "\t IP\t\tТекущий ник\r\n" Код local msg = "\r\n\r\n"..string.rep ("=", 60).."\r\n Пользователи, использовавшие этот ник:\r\n".. string.rep ("=", 60).."\r\n\t IP\t\tТекущий ник\r\n" 5). Лучше Использовать один вызов функции отправки сообщения. То есть вместо кода: CODE if tOPs[tUser.iProfile] == 1 then Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Бан\\Забанить$<%[mynick]> !banuser %[line:Введите Ник или IP] %[line:Введите время бана] %[line:Введите причину бана]&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Бан\\Разбанить$<%[mynick]> !unbanuser %[line:Введите Ник или IP]&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Бан\\Список забаненых$<%[mynick]> !showbanuser&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Гаг\\Заглушить$<%[mynick]> !gaguser %[line:Введите Ник или IP] %[line:Введите тип(main, pm или full)] %[line:Введите время заглушки] %[line:Введите причину заглушки]&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Гаг\\Снять заглушку$<%[mynick]> !ungaguser %[line:Введите Ник или IP]&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Гаг\\Список заглушенных$<%[mynick]> !showgaguser&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Другие наказания\\Лишить поиска$<%[mynick]> !noseachuser %[line:Введите IP или Ник]&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Другие наказания\\Вернуть поиск$<%[mynick]> !yesseachuser %[line:Введите IP или Ник]&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Другие наказания\\Лишить скачки$<%[mynick]> !nodownloaduser %[line:Введите IP или Ник]&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Другие наказания\\Вернуть скачку$<%[mynick]> !yesdownloaduser %[line:Введите IP или Ник]&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Меню администрации\\Информация о юзере$<%[mynick]> !ui %[line:Введите IP или Ник]&#*124;") end Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Статистика хаба\\Рекорды хаба$<%[mynick]> !hubrecord&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Статистика хаба\\Топ по шаре$<%[mynick]> !sharatop&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Статистика хаба\\Топ по сообщениям$<%[mynick]> !msgtop&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Статистика хаба\\Топ заглушенных$<%[mynick]> !gagtop&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Статистика хаба\\Топ забаненых$<%[mynick]> !bantop&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Статистика хаба\\Топ глушащих$<%[mynick]> !opgagtop&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Статистика хаба\\Топ банящих$<%[mynick]> !opbantop&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Инфо о юзерах\\Когда был$<%[mynick]> !whenwas %[line:Введите IP или Ник]&#*124;") Core.SendToNick(tUser.sNick,"$UserCommand 1 3 Регистрация\\Сменить ник$<%[mynick]> !changenick %[line:Введите Ник]&#*124;") использовать код: CODE local sMsg="" * - удалить везде. Обрати внимание как организована отправка команд. В конце каждой коданды ставится символ |. Отправка всех этих команд происходит одной строкой и при одном вызове функции отправки, а дальше клиент пользователя сам разберётся как эту отправленную строку разбить на несколько менюшек. То есть таким образом снимается нагрузка на сервер. В моём коде также можно убрать лишние конкатенации о которых я говорил в предыдущем пункте.if tOPs[tUser.iProfile] == 1 then sMsg="$UserCommand 1 3 Меню администрации\\Бан\\Забанить$<%[mynick]> !banuser %[line:Введите Ник или IP] %[line:Введите время бана] %[line:Введите причину бана]&#*124;|".. "$UserCommand 1 3 Меню администрации\\Бан\\Разбанить$<%[mynick]> !unbanuser %[line:Введите Ник или IP]&#*124;|".. "$UserCommand 1 3 Меню администрации\\Бан\\Список забаненых$<%[mynick]> !showbanuser&#*124;|".. "$UserCommand 1 3 Меню администрации\\Гаг\\Заглушить$<%[mynick]> !gaguser %[line:Введите Ник или IP] %[line:Введите тип(main, pm или full)] %[line:Введите время заглушки] %[line:Введите причину заглушки]&#*124;|".. "$UserCommand 1 3 Меню администрации\\Гаг\\Снять заглушку$<%[mynick]> !ungaguser %[line:Введите Ник или IP]&#*124;") "$UserCommand 1 3 Меню администрации\\Гаг\\Список заглушенных$<%[mynick]> !showgaguser&#*124;|".. "$UserCommand 1 3 Меню администрации\\Другие наказания\\Лишить поиска$<%[mynick]> !noseachuser %[line:Введите IP или Ник]&#*124;|".. "$UserCommand 1 3 Меню администрации\\Другие наказания\\Вернуть поиск$<%[mynick]> !yesseachuser %[line:Введите IP или Ник]&#*124;|".. "$UserCommand 1 3 Меню администрации\\Другие наказания\\Лишить скачки$<%[mynick]> !nodownloaduser %[line:Введите IP или Ник]&#*124;|".. "$UserCommand 1 3 Меню администрации\\Другие наказания\\Вернуть скачку$<%[mynick]> !yesdownloaduser %[line:Введите IP или Ник]&#*124;|".. "$UserCommand 1 3 Меню администрации\\Информация о юзере$<%[mynick]> !ui %[line:Введите IP или Ник]&#*124;|".. end sMsg=sMsg.."$UserCommand 1 3 Статистика хаба\\Рекорды хаба$<%[mynick]> !hubrecord&#*124;|".. "$UserCommand 1 3 Статистика хаба\\Топ по шаре$<%[mynick]> !sharatop&#*124;|".. "$UserCommand 1 3 Статистика хаба\\Топ по сообщениям$<%[mynick]> !msgtop&#*124;|".. "$UserCommand 1 3 Статистика хаба\\Топ заглушенных$<%[mynick]> !gagtop&#*124;|".. "$UserCommand 1 3 Статистика хаба\\Топ забаненых$<%[mynick]> !bantop&#*124;|".. "$UserCommand 1 3 Статистика хаба\\Топ глушащих$<%[mynick]> !opgagtop&#*124;|".. "$UserCommand 1 3 Статистика хаба\\Топ банящих$<%[mynick]> !opbantop&#*124;|".. "$UserCommand 1 3 Инфо о юзерах\\Когда был$<%[mynick]> !whenwas %[line:Введите IP или Ник]&#*124;|".. "$UserCommand 1 3 Регистрация\\Сменить ник$<%[mynick]> !changenick %[line:Введите Ник]&#*124;" Core.SendToUser(tUser,sMsg) 6). Все арифметические действия (если известны все цифры) надо делать самому, дабы не нагружать процессор лишними вычислениями. То есть, например, вместо кода: Код sGagTime = os.time()+12*30*24*60*60*tonumber(sNumber) следует писать: Код sGagTime = os.time()+31104000*tonumber(sNumber)
|
|
|
![]()
Сообщение
#6
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
Ну вот это уже дело)))) Исправлю и продолжу работу над ним)))
Большое спасибо |
|
|
![]()
Сообщение
#7
|
|
![]() Освоившийся участник ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 281 Регистрация: 24.6.2008 Из: Луганск Пользователь №: 70 Спасибо сказали: 47 раз ![]() |
а нельзя сделать чтоб наказания всё же были зависимыми от хаба?
|
|
|
![]()
Сообщение
#8
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
Вот прочитал и задумался... Почему сделал именно так?! Точно не знаю... Но у хаба нет заглушки PM нет заглушки на время тут эти функции присутствуют и зачем делать половину функций так а половину по другому + добавлю хабовские команды бана и заглушки в исключения(на них не будет реакции) а то как в хуббе ОП забанил а ты потом ищешь чем он это сделал)))
|
|
|
![]()
Сообщение
#9
|
|
![]() Освоившийся участник ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 281 Регистрация: 24.6.2008 Из: Луганск Пользователь №: 70 Спасибо сказали: 47 раз ![]() |
очень жду обновлений!
|
|
|
![]()
Сообщение
#10
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
Особо далеко я не продвинулся... Поправил все места по которым были сделаны замечания и сам нашёл пару багов, добавил таблицу команд на которые хаб реагировать не будет(чтобы банили и глушили одними командами) + добавил сообщение в оффлайн))) качаем из первого поста
2dimetrius: а ты его используешь? Если да то поделись: если ли баги? скоко памяти жрёт и т.д.))) |
|
|
![]()
Сообщение
#11
|
|
![]() Освоившийся участник ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 281 Регистрация: 24.6.2008 Из: Луганск Пользователь №: 70 Спасибо сказали: 47 раз ![]() |
Пока не использую, но хочу перевести хаб на новую версию, а поскольку сейчас использую хуббу, а избавиться от него хочется... В нём больше всего нравится система наказаний, я много раз уже просил сделать подобный скрипт, но никто не откликался! Ты первый, за что большое спасибо! Но увы нет времени сразу попробовать, приходится постоянно думать как заработать и хаб сюда не вписывается!
![]() |
|
|
![]()
Сообщение
#12
|
|
![]() [n00b] ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 291 Регистрация: 10.7.2008 Из: Россия,Пенза Пользователь №: 168 Спасибо сказали: 24 раза ![]() |
на 0411 выдает ошибки
[11:44] Синтаксис ...\0.4.1.1\scripts\Protector.lua:690: attempt to index field '?' (a nil value) [11:44] Синтаксис ...\0.4.1.1\scripts\Protector.lua:698: attempt to index field '?' (a nil value) причем чаще всего ошибку выдает в 698 строчке,но при этом скрипт работает нормально...в чате,все что надо показывает.. |
|
|
![]()
Сообщение
#13
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Эти ошибки могут возникать из-за того, что скрипт был запущен, когда на хабе уже были пользователи.
Избежать этого можно следующим образом: остановить хаб, запустить скрипт, запустить хаб. Это происходит из-за того, что пользователи записываются в базу только при входе на хаб. Автору нужно было предусмотреть запуск скрипта при уже имеющихся пользователях на хабе. Однако, для этого надо было при запуска скрипта сделать перебор по таблице всех пользователей и запись пользователей в базу. |
|
|
![]()
Сообщение
#14
|
|
![]() [n00b] ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 291 Регистрация: 10.7.2008 Из: Россия,Пенза Пользователь №: 168 Спасибо сказали: 24 раза ![]() |
и вот еще небольшашие "баги"
Цитата Cтатус закачки: Закачка включена Статус закачки: Юзер заглушен Статус бана: Юзер забанен Юзер сейчас на хаб Два раза про закачку сказано и почему то неверную инфу о бане выдает....Если с первым я то лично и справлюсь,то со вторым не смогу(... |
|
|
![]()
Сообщение
#15
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
Дописал добавление в таблицу при старте скрипта. Пофиксил ещё пару ошибок)))
2FallenAngel: по поводу вывода информации о юзерах, попробуй новую версию, если всё останется также посмотрю)) PS: файл как всегда в первом посте |
|
|
![]()
Сообщение
#16
|
|
![]() [n00b] ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 291 Регистрация: 10.7.2008 Из: Россия,Пенза Пользователь №: 168 Спасибо сказали: 24 раза ![]() |
на данный момент:
посмотрел списки банов-никого не показало(что так НЕ должно бытть-ибо человека уже бот один забанил за вход с двумя никами)..потом я забанил человека на 15 минут [23:56:59] <Protector> Юзер с ником: !ErRoR! и IP ********* был забанен на: 15 мин. 0 сек. Наказал: АДМИН Причина: проверка) но потом когда решил лицезртеь кто в бане выдало команду в чат(до этого не показало) [23:57:53] <АДМИН> !showbanuser зы-если что то еще подпишу-пока что больше не нашел багов ![]() и вдогонку-в топе по забаненным тот ник-!ErRoR! -отобразился... и еще одно добавление ![]() |
|
|
![]()
Сообщение
#17
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
По поводу отображения в птоке банов: так задумывалось, скрипт использует свою систему банов не зависящую от птоки. в дальнейшем планируется сделать антирекламу антимат и т.д. чтоб всё наказания вел бот.
по поводу ошибок, как приду домой посмотрю. Чуть позже: Итак вот я и дома... Потестил скрипт на птоке 0400 всё работает прекрасно, перенёс на 0411 такой же результат. Не понимаю в чём проблема((( напиши ошибки если они были. Сегодня завтра выложу скрипт с парой новых функций. |
|
|
![]()
Сообщение
#18
|
|
![]() [n00b] ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 291 Регистрация: 10.7.2008 Из: Россия,Пенза Пользователь №: 168 Спасибо сказали: 24 раза ![]() |
[19:21] Синтаксис ...\0.4.1.1\scripts\Protector.lua:853: attempt to concatenate field 'Type' (a nil value)
Вот такую ошибку выдает при просмотре забаненных юзеров.... PS-извини,что сразу забыл указать... |
|
|
![]()
Сообщение
#19
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
Так эту ошибочку я поправил +
добавил антисуицид(чтоб не банило не кикало самого себя) добавил запись ошибок в таблицу. храница будет в папке скрипта\Data\Error.tbl (сделал малость бредовую идею, с переводом ошибок на русский при записи в таблицу, как тестовый вариант несколько слов) сделал парочку улучшений PS как всегда в первом посте |
|
|
![]()
Сообщение
#20
|
|
![]() [n00b] ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 291 Регистрация: 10.7.2008 Из: Россия,Пенза Пользователь №: 168 Спасибо сказали: 24 раза ![]() |
Благодарим-с
![]() зы-и еще плоховато все таки что нельзя два ника иметь хотя бы администратору..сидел я как админ,но потом решил перезайти,но с другим ником,чтобы проверить менбшку,так стало выдать сообшение чтобы я сменил ник(.... |
|
|
![]() ![]() |
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
![]() |
От: Protector От темы с ID: 639 |
4 | Wariner | 8 282 | 1.12.2013, 20:07 Посл. сообщение: Артём |
![]() |
Нужно вырезать "куски" из бота Protector Сам не могу, из-за нехватки знаний... |
8 | TIRAN | 12 203 | 1.4.2010, 18:10 Посл. сообщение: Accelerator |
![]() |
Protector API2| бот всё в одном |
0 | Wariner | 0 | 10.11.2009, 15:11 Посл. сообщение: Wariner |
![]() |
Сейчас: 8.9.2024, 2:51 |