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

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

MyDC.ru _ Боты "все в одном" [PtokaX] _ Protector

Автор: Wariner 14.11.2008, 23:13

Название скрипта: Protector
Версия скрипта: v1.1 RC1
Версия API: API2
Автор Wariner
Возможности:




Проект к сожалению мёртв


 Protector.rar ( 15.87 килобайт ) : 962
 

Автор: Setuper 15.11.2008, 13:56

По-моему это функции, выдранные из хуббы по большей (или по меньшей) части, ну и кое-что конечно дописано))

Автор: DEM0N 15.11.2008, 15:19

нажимая на ник юзера хорошо былобы добавить забанить этого юзера и также со всем остальным чтобы постоянно не вводить ник или айпи

Автор: Wariner 16.11.2008, 11:39

Цитата(Setuper @ 15.11.2008, 13:56) *
По-моему это функции, выдранные из хуббы по большей (или по меньшей) части, ну и кое-что конечно дописано))

Ты имеешь ввиду по тому что они делают или то что я из хуббы их скопировал?! Если второе то отвечаю сразу почти весь код написан своими руками(схожесть с хуббой появляется из за того что на хабе стоит он у меня и многие функции в нём меня устраивают!)

PS: более глобальных комментариев не будет?

Автор: Setuper 16.11.2008, 12:33

Скрипт не устанавливал и не тестил, по внешнему виду всё определяю. Действительно по коду ничего общего с хуббой нет (общее только вид таблиц, хотя ты используешь простые таблицы, а хубба метатаблицы).

По поводу опимизации:
1). Вместо конструкций вида:

Код
if sType == nil then
лучше писать логические конструкции:
Код
if not sType then
Логическая операция всегда выполняется быстрее, чем операция сравнения.

2). В соответствие с http://mydc.ru/ipb.html?s=&showtopic=539&view=findpost&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)

Автор: Wariner 16.11.2008, 17:29

Ну вот это уже дело)))) Исправлю и продолжу работу над ним)))

Большое спасибо

Автор: dimetrius 17.11.2008, 0:36

а нельзя сделать чтоб наказания всё же были зависимыми от хаба?

Автор: Wariner 18.11.2008, 19:55

Вот прочитал и задумался... Почему сделал именно так?! Точно не знаю... Но у хаба нет заглушки PM нет заглушки на время тут эти функции присутствуют и зачем делать половину функций так а половину по другому + добавлю хабовские команды бана и заглушки в исключения(на них не будет реакции) а то как в хуббе ОП забанил а ты потом ищешь чем он это сделал)))

Автор: dimetrius 26.11.2008, 16:07

очень жду обновлений!

Автор: Wariner 26.11.2008, 20:59

Особо далеко я не продвинулся... Поправил все места по которым были сделаны замечания и сам нашёл пару багов, добавил таблицу команд на которые хаб реагировать не будет(чтобы банили и глушили одними командами) + добавил сообщение в оффлайн))) качаем из первого поста

2dimetrius: а ты его используешь? Если да то поделись: если ли баги? скоко памяти жрёт и т.д.)))

Автор: dimetrius 28.11.2008, 19:11

Пока не использую, но хочу перевести хаб на новую версию, а поскольку сейчас использую хуббу, а избавиться от него хочется... В нём больше всего нравится система наказаний, я много раз уже просил сделать подобный скрипт, но никто не откликался! Ты первый, за что большое спасибо! Но увы нет времени сразу попробовать, приходится постоянно думать как заработать и хаб сюда не вписывается! big_smile.gif

Автор: FallenAngel 29.11.2008, 14:51

на 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 строчке,но при этом скрипт работает нормально...в чате,все что надо показывает..

Автор: Setuper 29.11.2008, 15:03

Эти ошибки могут возникать из-за того, что скрипт был запущен, когда на хабе уже были пользователи.
Избежать этого можно следующим образом: остановить хаб, запустить скрипт, запустить хаб.
Это происходит из-за того, что пользователи записываются в базу только при входе на хаб.

Автору нужно было предусмотреть запуск скрипта при уже имеющихся пользователях на хабе. Однако, для этого надо было при запуска скрипта сделать перебор по таблице всех пользователей и запись пользователей в базу.

Автор: FallenAngel 29.11.2008, 15:32

и вот еще небольшашие "баги"

Цитата
Cтатус закачки: Закачка включена
Статус закачки: Юзер заглушен
Статус бана: Юзер забанен
Юзер сейчас на хаб

Два раза про закачку сказано и почему то неверную инфу о бане выдает....Если с первым я то лично и справлюсь,то со вторым не смогу(...

Автор: Wariner 30.11.2008, 19:49

Дописал добавление в таблицу при старте скрипта. Пофиксил ещё пару ошибок)))
2FallenAngel: по поводу вывода информации о юзерах, попробуй новую версию, если всё останется также посмотрю))

PS: файл как всегда в первом посте

Автор: FallenAngel 2.12.2008, 0:05

на данный момент:
посмотрел списки банов-никого не показало(что так НЕ должно бытть-ибо человека уже бот один забанил за вход с двумя никами)..потом я забанил человека на 15 минут
[23:56:59] <Protector> Юзер с ником: !ErRoR! и IP ********* был забанен на: 15 мин. 0 сек. Наказал: АДМИН Причина: проверка)
но потом когда решил лицезртеь кто в бане выдало команду в чат(до этого не показало)
[23:57:53] <АДМИН> !showbanuser
зы-если что то еще подпишу-пока что больше не нашел багов big_smile.gif
и вдогонку-в топе по забаненным тот ник-!ErRoR! -отобразился...
и еще одно добавление big_smile.gif-когда банишь через скрипт в списке в самой птоке не отображаются(((

Автор: Wariner 2.12.2008, 9:01

По поводу отображения в птоке банов: так задумывалось, скрипт использует свою систему банов не зависящую от птоки. в дальнейшем планируется сделать антирекламу антимат и т.д. чтоб всё наказания вел бот.
по поводу ошибок, как приду домой посмотрю.


Чуть позже:
Итак вот я и дома... Потестил скрипт на птоке 0400 всё работает прекрасно, перенёс на 0411 такой же результат. Не понимаю в чём проблема((( напиши ошибки если они были. Сегодня завтра выложу скрипт с парой новых функций.

Автор: FallenAngel 2.12.2008, 19:23

[19:21] Синтаксис ...\0.4.1.1\scripts\Protector.lua:853: attempt to concatenate field 'Type' (a nil value)
Вот такую ошибку выдает при просмотре забаненных юзеров....
PS-извини,что сразу забыл указать...

Автор: Wariner 2.12.2008, 19:44

Так эту ошибочку я поправил +
добавил антисуицид(чтоб не банило не кикало самого себя)
добавил запись ошибок в таблицу. храница будет в папке скрипта\Data\Error.tbl (сделал малость бредовую идею, с переводом ошибок на русский при записи в таблицу, как тестовый вариант несколько слов)
сделал парочку улучшений

PS как всегда в первом посте

Автор: FallenAngel 2.12.2008, 21:15

Благодарим-сbig_smile.gif пока что ошибок и\или нареканий нет...только если одно...нету все таки в менюшке сообщения в оффланй...
зы-и еще плоховато все таки что нельзя два ника иметь хотя бы администратору..сидел я как админ,но потом решил перезайти,но с другим ником,чтобы проверить менбшку,так стало выдать сообшение чтобы я сменил ник(....

Автор: Wariner 2.12.2008, 22:12

так добавил менюшку(+поправил остальные. теперь банить можно не вводя ник) Добавил таблицу вписав в которую ник можно входить на хаб под разными никами(с разных клиентов)

кто нибудь уже использует бота на рабочем хабе? Очень интересно соотношение Кол. юзеров - кол.памяти которое ест скрипт

Автор: FallenAngel 3.12.2008, 21:36

Как говорится-лечим, калечим другое ;)

[10:04:05] <Protector> Юзер с ником: [PNZ]_Veyron_ и IP ***.***.229.44 был забанен на: 1 мин. 0 сек. Наказал: АДМИН Причина: Проверко)
[10:04:23] <АДМИН> !whenwas ***.***.299.44
[10:04:50] <Protector> Юзер с IP *.*.210.149 сейчас на хабе, его ник: [A]ИВ@N-TRakcTORiSt
[10:05:19] <Protector> Юзер с IP *.*.221.6 покинул хаб 02.12.2008 в 20:14

То есть получается так,что если человека забнить и посмотреть когда он был на хабе в последний раз-то ничего не выдастся(....остальное вроде то нелохо работает))если еще на чтото наткнусь-то скажу big_smile.gifbig_smile.gif
Картинку прикрепил,ибо влепить не получилось,так как не размешал я ее на интернет-ресурсах....мб если ток я чот не так понял?:=[

и вот еще....ток седня чот написали простые-Незарегенные юзеры мне)
[21:29] <Jill> [21:28 | 77.108.195.148] <Jill> именно перед каждым сообщением ?
[21:28] <Protector> Вам не разрешенно использование этой команды!
[21:28 | 77.108.195.148] <Jill> прикольно ?
[21:28] <[A]ИВ@N-TRakcTORiSt> Jill: напиши пжл лог)
[21:28] <[A]ИВ@N-TRakcTORiSt> прост мне то ничо не выдает.а парню над отписать ошибки
[21:28] <Protector> Вам не разрешенно использование этой команды!
[21:28 | 77.108.195.148] <Jill> Мелена: прости, но он в этом случае (по поводу русского языка), прав
[21:29] <Protector> Вам не разрешенно использование этой команды!|

 

Автор: 4eBA 4.12.2008, 0:19

Нашол баг

когда захожу под ником и хаб выбирает..нравится или не нравится ему

[23:05:36] <Eras> •••Пришол зарегестрированный пользователь. - Неважно !•••
- [23:05:42] <Eras>

Ник: Неважно под которым вы пытаетесь зайти занят!
Смените ник и перезайдите на хаб!!!

- [23:05:42] *** This socket has been closed...
И вот этим всех задалбует

--Вам не разрешенно использование этой команды!


И так вибирает любой понравившийся ему ник....
Пришлось коментировать эти строчки...

Автор: Wariner 4.12.2008, 22:08

2FallenAngel: на первое время проблему с чатом убрал, поправил функцию когда был, но потестить так что если опять будет не работать пиши ошибку поправлю
24eBA: не совсем понял тебя... дело в том что в скрипте реализовано следующее: при заходе юзера создаётся таблица в ней занесены ник и ип. после повторного захода проверяется сопостовление ник ип. Если ты заходил под другим ником тебе скажет что тебе надо обратно сменить ник, если ты заходишь первый раз и до тебя у кого то был этот ник тебе скажет Ник: Неважно под которым вы пытаетесь зайти занят!
Смените ник и перезайдите на хаб!!!

Автор: 4eBA 4.12.2008, 22:22

Ок..насчёт этого понял...это для меня минус так как заходтя с инета...

Во вотором глюке следущие:
Пишет любое предложение(Юзер).ему в ответ вы не можите писать это!

Автор: Wariner 4.12.2008, 22:34

Цитата(4eBA @ 4.12.2008, 22:22) *
Во вотором глюке следущие:
Пишет любое предложение(Юзер).ему в ответ вы не можите писать это!

это я исправил!

Автор: 4eBA 5.12.2008, 0:27

Перезалил??? bad_smile.gif

Автор: DEL 5.12.2008, 16:27

Будет ли что т на подобии разрешенных IP как в HUBBABOTе и логирование чего либо ещё?

Автор: Wariner 5.12.2008, 20:25

Цитата(DEL @ 5.12.2008, 16:27) *
Будет ли что т на подобии разрешенных IP как в HUBBABOTе и логирование чего либо ещё?
в самом скрипте:

Код
tExceptionsIPs = {                  -- IP юзеров которые могут заходить на хаб с нескольких DC клиентов
    ["127.0.0.1"] = 1
}
Добавляем свой ип(или нужный) и будет пускать под несколькими никами

24eBA: конечно же перезалил

PS: принимаются идею по функциям скрипта(не факт что они будут реализованы, но обязательно примуться к сведению)))))

Автор: DEL 5.12.2008, 21:00

Цитата(Wariner @ 5.12.2008, 22:25) *
Код
tExceptionsIPs = {                  -- IP юзеров которые могут заходить на хаб с нескольких DC клиентов
    ["127.0.0.1"] = 1
}
Добавляем свой ип(или нужный) и будет пускать под несколькими никами

24eBA: конечно же перезалил

PS: принимаются идею по функциям скрипта(не факт что они будут реализованы, но обязательно примуться к сведению)))))



Я вообщето имел ввиду типа IP прописал - заходят, те что не прописал нет, а тут (выше) вроде как с нескольких DC клиентов

Автор: Wariner 5.12.2008, 21:28

пардон не понял сразу.... подумаем))))

Автор: FallenAngel 16.12.2008, 8:51

хм..притормозилдось все по-тихонечку.....пока из всех мыслей которые приходили в мою дурную голову вспомнил одну- чтобы в меню было как "Регистрация", так и Сменая пароля" и "Смена ника" (ну про смену ника есть принципе)...ах да..и чтобы можно было еще атмнапонить пароль свой..
зы-и неплохо в принципе если бы человек с профилем мастер мог посмотреть пароль, хотя бы оффлайн юзеров. А то было такое делло, что человек забыл свой пароль и не мог зайти и поэтому спрашивал свой пароль, и благо я мог посмотреть пароль и сказал ему..... Кста, насчет того-=что может это был другой человек и решил "украсть "пароль исключено- ибо за тем же ником был тот же IP что и за тем,который забыл...-(ну всмысле что это один и тот же человек)
фух...запутано то каг..даж сам не вкуриваю что написал.....big_smile.gifНу, надеюсь, что все более или менее ясно big_smile.gif

Автор: Wariner 16.12.2008, 14:45

Про какой пароль ты говоришь?! Сам скрипт работает без регистрации как таковой. Поэтому я не добавлял сменить пароль и показать пароль... Подразумевалось что в списке зарегистрированных в птоке будут токо мастера опы и випы... Вот)))

PS на время сессии разработка бота приостановлена((( сказывается большая нехватка времени!

Автор: FallenAngel 16.12.2008, 19:35

Сессия..сладкое слово big_smile1.gif а так..я бы не против если бы были там и простые юзера..мало ли...

Автор: Wariner 17.12.2008, 20:10

Не вижу в этом никакого смысла. Многие просто не хотят регистрироваться, а тут им это делать не придётся, всё будет сделано по тихому и без напряга))))

Автор: LyaKich 6.1.2009, 3:38

Ладно почитал тему значит пару вопросов можно ли сделать что бы пользователь мох менять ники? И ему не выскакивало сообщение?

Да ещё есть пожеления что бы все текстовые сообшения которые выводит бот желательно хранились в отдельных txt файлах для удобства

Автор: Wariner 6.1.2009, 10:16

Там в меню есть строка сменить ник! Сначала жмём её вводим новый ник, потом перезаходим на хаб с новым ником

Автор: Lpein 9.1.2009, 0:13

А можно только тот MOTD? Мне все функции ненужны а вот MOTD понравился. Выложи если можешь.

Автор: Wariner 9.1.2009, 0:18

Цитата(Lpein @ 9.1.2009, 0:13) *
А можно только тот MOTD? Мне все функции ненужны а вот MOTD понравился. Выложи если можешь.

Если тебе нужно то отредактируй скрипт! Я своего бота потрашить не буду!!!

Автор: Wariner 19.1.2009, 22:13

Бот удачно запущен на моём хабе! Пока ошибок нет. Исправлено несколько неточностей, а также:
# Логирование дисконектов юзеров (чисто технический момент, после тестов функция будет удалена)
# Функции для топика(сообщение в чат о смене + функция несменяемого топика для админов)
# Менеджер скриптов(подключение перезагрузка и остановка скриптов как по одному так и всех сразу + возможность перемещения скриптов в списке птоки! Всё из меню!)
# Так же добавлена общая таблица профилей! Теперь можно настроить хаб под свои профили.(команды каждому профилю отдельно пока не раздаются. Будет реализовано позже)


PS: развитие продолжается)))
PPS: тестим))))))))))))))))

ВНИМАНИЕ: в архитектуре бота произошли изменения!!! Появились новые файлы и папки!!! Некоторые старые файлы перемещены в другие папки!!! МОТД настроен под меня!!! Будте внимательны и сначала настройте всё под себя!!!

Автор: LyaKich 23.1.2009, 19:15

Ну что у меня опять возникает трабла про которую я говорил

Цитата
[23.01.2009 | 19:13:01] <Gangsta> Этот хаб работает под управлением PtokaX DC Hub 0.4.0.0 (Время работы: 0 дней, 0 часов, 30 минут / Юзеры: 21)
[23.01.2009 | 19:13:01] <Protector>

Ник: LOL(6) под которым вы пытаетесь зайти занят!
Смените ник и перезайдите на хаб!!!

[23.01.2009 | 19:13:02] *** Соединение закрыто

Автор: Wariner 24.1.2009, 13:30

Этот бот пока преднозначен только для тех сетей где ip более или менее постоянные. Ты заходишь под ником LOL(6) с домолинка, где ип меняется. Бот видит что ник LOL(6) принадлежит одному ип а ты уже заходишь со сменишегося! Я думал над этим но пока в голову ничего разумного не пришло.

Автор: LyaKich 25.1.2009, 3:09

Цитата(Wariner @ 24.1.2009, 13:30) *
Этот бот пока преднозначен только для тех сетей где ip более или менее постоянные. Ты заходишь под ником LOL(6) с домолинка, где ип меняется. Бот видит что ник LOL(6) принадлежит одному ип а ты уже заходишь со сменишегося! Я думал над этим но пока в голову ничего разумного не пришло.

Не не это реально трабла. Он также отображает что он есть в списке

Автор: LyaKich 27.1.2009, 14:56

К тому хочу добавить то человек в течении наверно недели не мог попасть ко мне на хаб. IP не менялся хз скока у него. С утра отключил и всё без проблем

Автор: Wariner 27.1.2009, 16:18

А что ему писало? Посмотри в логах есть список отключенных! нет ли его там!

Автор: LyaKich 31.1.2009, 20:49

Там сложно востановить если по архиву дисконнекта

А что это за ошибки?

Цитата
tError = {
[7] = "19.01.2009 в 21:52 Protector.lua:1104: attempt to index global 'tProfile' (a nil value)",
[1] = "19.01.2009 в 12:37 Protector.lua:159: attempt to index global 'v' (a nil value)",
[2] = "19.01.2009 в 12:38 Protector.lua:217: attempt to index global 'v' (a nil value)",
[4] = "19.01.2009 в 20:23 Protector.lua:720: attempt to call field 'sNick' (a string value)",
[8] = "19.01.2009 в 21:54 Protector.lua:1101: attempt to call local 'Operation' (a nil value)",
[9] = "19.01.2009 в 21:56 Protector.lua:1101: attempt to call local 'Operation' (a nil value)",
[5] = "19.01.2009 в 20:32 Protector.lua:720: плохой аргумент #2 to 'SetString' (string expected, got nil)",
[3] = "19.01.2009 в 20:22 Protector.lua:720: attempt to call field 'sNick' (a string value)",
[6] = "19.01.2009 в 20:37 Protector.lua:722: плохой аргумент #2 to 'SetString' (string expected, got nil)",
}

Автор: XiNoID 2.2.2009, 20:34

Cпасибо за интересный релизbig_smile.gif
Такой вопрос(о наболевшемbig_smile.gif) - Он может следить за матом как хубба)? и также банить)? И следствие - под линуксом как себя ведет big_smile.gif?

Автор: Wariner 3.2.2009, 10:42

пока за матом антирекламой он не следит. Это в будующем. Про линукс я не знаю... попробуй поставить тестовый хаб и погонять его чуть чуть)))

PS: возникла большая проблема... При разрастании таблицы скрипт начинает сильно кушать память(((( В следствии пока нового релиза ждать не стоит.... Буду исправлять то что наделал!!!

Автор: XiNoID 3.2.2009, 15:34

тестовый хаб? гавно вопрос! я давно предлагал big_smile.gif заодно и с хуббой мож получится разобраться( adore.gif мечтаю feel_good.gif )
на этой неделе постараюсь сделатьbig_smile.gif

Автор: serrrios 8.2.2009, 14:01

Цитата(LyaKich @ 23.1.2009, 19:15) *
Ну что у меня опять возникает трабла про которую я говорил

Вырежи в Protector.lua

Код
    if (tUsers[tUser.sIP].Nick ~= tUser.sNick) and (tExceptionsIPs[tUser.sIP] ~= 1) then
        Core.SendToUser(tUser, "<"..sBot.."> \r\n\r\n\t\t\tВы зарегистрированны на хабе под ником: "..tUsers[tUser.sIP].Nick.." \r\n\t\t\tА сейчас ваш ник: "..tUser.sNick.." \r\n\t\t\tДля входа на хаб смените ник!!!\r\n\t\t\tЕсли всё таки хотите сменить ник воспользуйтесь меню хаба!\r\n")
        tDisconnectUser[table.maxn(tDisconnectUser)+1] = os.date("%d.%m.%Y %H:%M").."  "..tUser.sNick.."("..tUser.sIP..") Причина: Ник не соответствует зарегистрированному"        
        Core.Disconnect(tUser)
    end

и

Код
    for i,v in pairs(tUsers) do
        if tUsers[i].Nick == tUser.sNick and i ~= tUser.sIP then    
            Core.SendToUser(tUser, "<"..sBot.."> \r\n\r\n\t\t\tНик: "..tUser.sNick.." под которым вы пытаетесь зайти занят!\r\n\t\t\tСмените ник и перезайдите на хаб!!!\r\n")
            tDisconnectUser[table.maxn(tDisconnectUser)+1] = os.date("%d.%m.%Y %H:%M").."  "..tUser.sNick.."("..tUser.sIP..") Причина: Несоответствие ника и IP"            
            Core.Disconnect(tUser)
        end
    end

Автор: Wariner 15.2.2009, 22:10

Вышла новая версия 1.1RC1
В ней произошли большие изменения в главной таблице бота(файл Users.tbl) поэтому советую её заменить(удалить) если собрали очень много инфы пишите попробую сделать отдельный скрипт корректировки таблицы! Так же произошли изменения в файле cfg.tbl, появился файл Msg.tbl а так же архитектура логов.
изменения:


так же исправлено и добавлено несколько нестоль существенных мелочей

ищите в первом посте

Автор: Wariner 16.2.2009, 21:30

Поправил вывод текста из текстовых файлов для линукса,
Предусмотрел невозможность бана операторами друг друга

Автор: serrrios 5.3.2009, 11:44

Wariner, как обстоят дела с разработкой?
Пользуюсь ботом с начала релиза.
Хотелось бы что б можно было отключать привязку ип к нику.

Автор: Wariner 5.3.2009, 13:57

Пока не переведу бота на работу с SQLite видимо нового релиза не будет. Хз когда это будет)))) Как токо сделаю так сразу выложу))))

Автор: serrrios 16.3.2009, 17:37

Не хочу показаться назойливым, но...как там успехи? big_smile.gif

Автор: Wariner 16.3.2009, 18:03

Терпи)))) Как только так сразу. Как разработаю структуру таблиц так будет всё хорошо!

Автор: Sten 22.3.2009, 3:47

А можно отключить регистрацию просто у меня на хабе стоят боты которые отвечают за статистику сервера и просто бот неможет приконектится к хабу ему пишет сообщение с файла NotRegNick
Заранее спасибо!

Автор: Wariner 22.3.2009, 10:34

внеси бота в исключения!

Автор: Sten 30.3.2009, 16:41

Такая проблема баню юзера он может просто перезайти на хаб и всё
Баню юэера на второй раз бот мне пишет
[19:39:30] <Protector> Юзер с ником Sten уже забанен
[19:39:30] <Protector> Юзера с ником Sten нет в базе данных!
хотя этот юэер сидит на хабе как невчём небывало)
Что мне с этим делать?

Автор: serrrios 9.4.2009, 13:43

Цитата(Sten @ 30.3.2009, 16:41) *
Такая проблема баню юзера он может просто перезайти на хаб и всё
Баню юэера на второй раз бот мне пишет
[19:39:30] <Protector> Юзер с ником Sten уже забанен
[19:39:30] <Protector> Юзера с ником Sten нет в базе данных!
хотя этот юэер сидит на хабе как невчём небывало)
Что мне с этим делать?

Для таких случаев поставил скрипт ХабМеню от Алекса..

2Wariner, очень хотелось бы увидеть в следующей версии, антибан/гаг для опов, любят они у меня чет в последне время сраться//

Автор: OtshelnikFm 30.4.2009, 17:26

Цитата(Wariner @ 5.3.2009, 14:57) *
Пока не переведу бота на работу с SQLite видимо нового релиза не будет. Хз когда это будет)))) Как токо сделаю так сразу выложу))))

А на mysql не планируется перевод данного бота? С удовольствием присоединился бы к тестированию.

Автор: Wariner 30.4.2009, 17:42

если это произойдёт я буду просто счастлив still_dreaming.gif

Автор: LyaKich 10.11.2009, 7:03

Проект ещё жив?

Автор: Wariner 10.11.2009, 15:11

проект скорее мёрт чем жив(((

PS: возможно он когда нибудь возродится,а пока времени нету...

Автор: DemoNX260 1.5.2010, 20:29

А как отключить регистрацию по ипу?

Автор: Wariner 1.5.2010, 21:29

бот основан на авторегистрации и это не отключить!

Автор: voronf4 11.5.2010, 14:03

Подскажи пожалуйста что нужно сделать! К примеру у меня сидит человек под ником "ZIl" и ко мне заходит другой человек под ником "ZIl" и его просто выкидывает без всего как будто хаб не работает что нужно сделать чтобы хоть что нибудь ему показало ну типа смени ник или еще че нибудь У меня стои этот бот до этого стоял экзекутор! и там такая фигня и тут! очень прошу! extreme_sexy_girl.gif

Автор: Ksan 11.5.2010, 14:39

Посмотри в скрипте, в каком месте его дисконнектит и впиши там перед дисконнектом сообщение ему о причине.
Например, найди что нибудь типа этого:

Код
Core.Disconnect(tUser)
возьми этот самый tUser и напиши перед дисконнектом строку:
Код
Core.SendToUser(tUser, "<"..sBot.."> Вы отключены, потому что вошли с чужим ником. Смените ник и заходите снова.")

tUser и sBot уточни, они могут в скрипте выглядеть по-иному.

Автор: voronf4 11.5.2010, 20:29

окей попробую отпишусь

Неа не помогает!((

Автор: Cerberus 16.5.2010, 17:03

Возник вопрос с антиспамом, почему то он вообще не реагирует, а при использовании старой антирекламы баны идут в птоку а то что банится в ручную идет в таблицы бота, ужас какой пока найдешь нужный бан уходит много времени

Автор: Wariner 17.5.2010, 17:38

в боте нет антиспама/антирекламы/антимата.... надо наверно просто правильно настроить птоку!

Автор: diss 2.7.2010, 0:45

Народ а как убрать с этого бота авторегестрацию по IP, или вообще удалить из этого бота регестрацию?

Автор: Ksan 2.7.2010, 4:50

Попробуй в этой функции закомментить (то есть, сделать неактивной) одну строку (в нижепоказанном коде я уже закомментил эту строку):

Код
function ValidateNickArrival(tUser, sData)
    if tUsers[tUser.sIP] then
        CheckBans(tUser)
--        AutoRegCheck(tUser)
    end    
end

Может, прокатит..

Автор: diss 2.7.2010, 10:45

Ну вродебы норм посмотрим что дальше будет, спасиб

Автор: voronf4 3.8.2010, 11:19

а вот хабы друзья и все такое не работает что нужно сделать чтобы заработали! я в text папку закинул файл вот так "!хабы" и так "хабы" всеравно не пашит! ((

Автор: Nickolya 3.8.2010, 12:19

Файлы должны быть текстовыми, т.е. расширение ".txt", знака команды быть не должно, выходит вот так: "хабы.txt" (если конечно у тебя отображаются расширения). Еще проверь что в хабе работают эти текстовые файлы: Основные настройки -> Больше настроек -> Включить текстовые файлы. Если скрипты блокируют вызов такой команды и она просто все-равно отправляется в чат, то надо либо прописать исключения в блокирующих скриптах (это обсуждается в тебе самих скриптов), либо воспользоваться скриптом-альтернативой, находящимся тут: http://mydc.ru/topic1231.html

Автор: Unians 17.8.2010, 10:43

Прикольный скриптик ну я переделал MOTD можно глянуть тут (dc.liberial.com)
Вот с меню нужно повазится)
а так кул скрипт . Спасибо.

Автор: Артём 17.8.2010, 13:02

Цитата(Unians @ 17.8.2010, 10:43) *
...ну я переделал MOTD можно глянуть тут (dc.liberial.com)

big_smile1.gif умачка что хоть MOTD смог переделать, но лучше бы меню переделал
P.S. рекламу можно и не писать, твой MOTD мало кому интересен, вот если бы ты написал крутого бота или скрипт и дал ссыль "вот зайдите и гляньте что я сотворил" другое дело, а так... bad_smile.gif

Автор: Unians 17.8.2010, 17:03

Народ помогите сделать из скрипта только статистику в MOTD что бы больше ничего в скрипте не было очень прошу.
Вот я передалал но как не пытаюсь убрать хрень когда меняеш ник оно не пускает на хаб удалить это пытаюсь после этого вобще статистику в MOTD не показует.
Помогите плз что бы из скрипта было просто статистика в MOTD тоесть чтобы работал только файл hallo.txt без менюшек и.т.д помогите плс

Автор: Nickolya 17.8.2010, 17:09

Уже же обсуждалось, все или ничего, из мультиботов что-то вырезать очень сложно и никто этим заниматься не будет!
Unians, тебе совет: пиши с запятыми и разборчивей!

Автор: Unians 17.8.2010, 17:20

А есть такой скрипт ?
Просто чтобы работало это и больше не чего.

• Ваш ник [USER]
• Ip-адрес c которого ты зашёл: [IP]
• Размер твоей шары: [SHARE]
• Сообщений в чате: [MSGS]
• Ты провёл на хабе: [TIMES]
• Статус на хабе: [ROLE]

• Сейчас на хабе [USERA] юзер(а)
• Maксимальное число юзеров одновременно: [USERRECORD]
• Шара хаба на данный момент: [SHARKA]
• Maксимальный размер шары: [SHARARECORD].
• Режим работы хаба - круглосуточный.

ОЧень прошу помогите со вчерашнего вечера мучаюсь(

Автор: Alexey 23.8.2010, 15:17

StatPX

Автор: -=ДЕМОН=- 24.8.2010, 21:14

на 0412 все в чате показывает и прав у опера больше чем у админа глюченый2 бот какойто сильно и птоху перезапускал и все обнавлял толку 0 нашол ток в логах его проблему там ток писал ошибки !!!!!! пришлося удалить но сматря на него подумал а чем секьюрик то от него отличаеться вроде очень сильно похож интересно кто с кого переписывал
хаб -== ADMIN'S HUB ==- админ -=ДЕМОН=-

Автор: Ksan 24.8.2010, 22:16

1. Ну ты же админ админского хаба, легко разберёшься, думаю..
2. И что это за "секьюрик"?

Автор: voronf4 26.8.2010, 17:55

О боже хоть бы этот чедесный бот возродился! Ждем не дождемся))

Автор: Nickolya 26.8.2010, 20:34

Видимо не дождетесь... Разработчик ушел с фронта Lua.

Автор: Dani_Filth 1.12.2013, 18:50

Подскажите пожалуйста, как можно убрать регистрацию по IP ? Просто у юзеров некоторых IP адреса меняются часто и они не могут потом попасть на хаб.

Автор: Артём 1.12.2013, 19:12

Dani_Filth, а зачем использовать этого, мёртвого, бота?
На форуме полно скриптов которые могут заменить всё что есть и чего нет в этом боте.

Автор: Dani_Filth 1.12.2013, 19:51

Цитата(Артём @ 2.12.2013, 3:12) *
Dani_Filth, а зачем использовать этого, мёртвого, бота?
На форуме полно скриптов которые могут заменить всё что есть и чего нет в этом боте.

Просто бот удобный,вот только 1 минус это регистрация по IP адресу.. Можешь помочь ?

Автор: Ksan 1.12.2013, 20:01

Dani_Filth, попробуйте вот в этой функции

Код
function ValidateNickArrival(tUser, sData)
    if tUsers[tUser.sIP] then
        CheckBans(tUser)
        AutoRegCheck(tUser)
    end    
end
закомментить строку
Код
AutoRegCheck(tUser)

Автор: Dani_Filth 2.12.2013, 3:31

Цитата(Артём @ 2.12.2013, 4:07) *
Dani_Filth, хм... а не на твоём ли хабе меня забанил этот бот? big_smile.gif

Хех,нет не на моём.. Просто юзеры с других хабов пишут мне в ПМ или на ящик и жалуются,устал исправлять..

Цитата(Ksan @ 2.12.2013, 4:01) *
Dani_Filth, закомментить строку
Код
AutoRegCheck(tUser)

Как понять закоментить ?

Автор: Setuper 2.12.2013, 9:26

Код
--AutoRegCheck(tUser)

Автор: Dani_Filth 2.12.2013, 10:26

Setuper, Спасибо большое )) Лови + 1

Автор: Ksan 2.12.2013, 13:12

Dani_Filth, хы, помог я, а спасибо другому? Как-то нелогично..
Я не любитель вытягивать спасибки, но тут явно напрашивается претензия. Нужно быть внимательнее.
Извините!