Все чаще мне задают вопросы как поставить, настроить своего бота, и сейчас я расскажу во всех подробностях как это делается. Мы будем расматривать бота eggdrop из-за его гибкости и мультиплатформности. FreeBSD Тут нам потребуется сам бот, но тут есть выбор тут можно использовать уже собраного бота либо чисто исходники. Так же чтобы бот работал должен быть установлен tcl его можете поставить из портов заходим в /usr/ports/lang/tcl84 и пишем make install clean все должно пройти удачно и поставится без проблем(если у вас есть дистфайлы или вы подключены к интернету). После того как у нас все готово приступим, заходим под рутом, сначала ставим бота из исходников, на момент когда я ставил были исходники eggdrop1.6.17.tar.bz2 разархивируем их командой Code: tar -zxf eggdrop1.6.17.tar.bz2 далее заходим в папку которая создалась после распаковки бота и пишем ./configure когда закончится выполнение команды, вы должны увидеть примерно следущее: Code: Operating System: FreeBSD 5.4-RELEASE If you experiance any problems compiling Eggdrop, please read the compile guide, found in doc/COMPILE-GUIDE. Type 'make config' to configure the modules, or type 'make iconfig' to interactively choose which modules to compile. далее пишем make config, также можно написать make iconfig можно будет выбрать модули которые постаятся для начала советую написать make config, после завершения команды пишем make а потом make install после того как завершается выполнение команды бот поставлен, дальше пишем конфиг по примеру ниже конфиги, в windows и freebsd не че не отличаются, но если будет ошибка с кодировкой просто допишите encoding system iso8859-1 в конфиг до скриптов. Далее чтобы запустился бот нужно создать папку tmp сделаем так: Code: mkdir /root/eggdrop/tmp chmod 0777 /root/eggdrop/tmp все можно запускать, но запускать нужно от обычного пользователя под root'ом бот не запустится в целях безопасности Code: cd /root/eggdrop && ./eggdrop -m /root/eggdrop/eggdrop.conf Теперь соберем бота теперь из портов, вся разница только в путях tmp'a, бот в портах лежит в /usr/ports/irc/eggdrop после установки пути будут такие: Code: Конфиг -- /usr/local/etc/eggdrop.conf Папка со скриптами и т.д. -- /usr/local/share/eggdrop/ Создаем папку tmp и все: Code: mkdir /usr/local/share/eggdrop/tmp chmod 0777 /usr/local/share/eggdrop/tmp После установки нам нужно написать конфиг боту eggdrop.conf открываем его с помощью vim or ee и удаляемся оттуда полностью все, писать его будем самостоятельно не маленькие уже. Вид файла eggdrop.conf ниже будет пояснена каждая строчка: Code: set mod-path "modules/" set help-path "help/" set text-path "text/" loadmodule channels loadmodule server loadmodule irc loadmodule dns loadmodule ctcp loadmodule blowfish set nick "CensoR" set altnick "CensoR?" set username "CensoR" set realname "CensoR" set servers { 10.0.0.3:6667 Hostel4.hvn Hostel3.hvn Hostel2.hvn } channel add #test set net-type 0 listen 7510 all set owner "Твой_ник" set admin "MicRO <email: [email protected]>" set userfile "eggdrop.users" set chanfile "eggdrop.channels" set temp-path "tmp/" set console "mkcobxs" set init-server {putquick "PRIVMSG NickServ :IDENTIFY пароль_на_ник_бота"} source scripts/peak.tcl #source scripts/egglib_pub.tcl set ctcp-version "MicRO(heavennet) VerSioN 0.1beta" set ctcp-userinfo "MicRO(heavennet) BoT" ####МОДУЛИ#### # Директория в которой находятся модули Code: set mod-path "modules/" # Путь, где находятся файлы помощи. Code: set help-path "help/" # Путь, где находятся текстовые файлы (используются разными dump-командами). Code: set text-path "text/" ####CHANNELS МОДУЛЬ#### # Модуль предоставляет поддержку каналов для бота.Без него бот сможет сидеть на IRC-сервере, но не будет входить на каналы. Code: loadmodule channels ####SERVER МОДУЛЬ#### # Модуль предоставляет серверную поддержку. Code: loadmodule server ####IRC МОДУЛЬ#### # Модуль предоствляет доступ к стандартным IRC-операциям. Code: loadmodule irc ####DNS МОДУЛЬ#### # Модуль предоставляет асинхронную поддержку dns-запросов.Это предотвратит длительные ожидания ответов на запросы (и соответсвенно "провисы" бота), если по каким либо причинам хост не может быть определен. Code: loadmodule dns ####CTCP МОДУЛЬ#### # Модуль предоставляет поддержку CTCP ответов. Code: loadmodule ctcp ####BLOWFISH МОДУЛЬ#### # Метод шифрования, на данный момент доступен только: blowfish Code: loadmodule blowfish ####Настройки#### # Ник бота, который будет использоваться на IRC (и в ботнет, если не установлен botnet-nick). Code: set nick "CensoR" # Альтернативный ник, если основной ник будет недоступен. Cимвол "?" в нике будет автоматически заменяться на цифру. Code: set altnick "CensoR?" ####ОСНОВНОЕ#### # Имя, которым бот идентифицирует себя как пользователя, при подключении к серверу. Не работает, если на машине есть ident-сервер! Code: set username "CensoR" # Что выводится в поле realname Code: set realname "CensoR" # Список серверов. Code: set servers { 10.0.0.3:6667 Hostel4.hvn Hostel3.hvn Hostel2.hvn } # Каналы на которые бот присоеденится при подключении к серверу Code: channel add #test # [0/1/2/3/4/5] тип IRC-сети = Efnet (non +e/+I hybrid) = IRCnet = Undernet = Dalnet = Efnet +e/+I hybrid = Прочие Code: set net-type 0 # Какие порты должен "слушать" бот Внимание: если вы запускаете на одной машине больше одного бота, то их порты НЕ ДОЛЖНЫ пересекаться! Вы можете разделить доступ сделав отдельный порт для пользователей и отдельный для ботов. но на практике это не имеет особого значения. Code: listen 3333 bots listen 4444 users listen 7510 all # Какие пользователи будут ВСЕГДА иметь флаг "+n" Code: set owner "MicRO, n1ck0" # Имя и email владельца бота. Выводится в .status и /msg <botnick> help Code: set admin "MicRO <email: [email protected] >" ####ФАЙЛЫ И ДИРЕКТОРИИ#### # Файл пользователей: где будут храниться данные о пользователях. Code: set userfile "eggdrop.users" # Файл, для хранения данных о каналах. Code: set chanfile "eggdrop.channels" # Место для хранения временных файлов (рекомендуется: /tmp) Code: set temp-path "/tmp" ####CONSOLE#### # Консольные флаги по умолчанию, затем каждый мастер/владелец смогут поставить все необходимые флаги для себя с помощью команды .console Code: set console "mkcobxs" # Скрипт, который выполнится во время подключения к серверу.Максимум 120 символов. Code: set init-server { putserv "PRIVMSG NickServ :IDENTIFY пароль_на_ник_бота" } ####СКРИПТЫ#### # Это обычное подключение скриптов. Code: source scripts/peak.tcl # Строка начинающаяся с # это коментарий это значит что в бот её не как не использует, следущая строка не подключит скрипт egglib_pub.tcl так как это коментарий. Внимание: TCL не позволяет устанавливать комментарии внутри { } Code: #source scripts/egglib_pub.tcl ####CTCP-запросы#### # Ответ на запрос версии Code: set ctcp-version "MicRO(heavennet) VerSioN 0.1beta" # Ответ на запрос информации о боте Code: set ctcp-userinfo "MicRO(heavennet) BoT" Ну вроде закончили с конфигом, и мы почти готовы к запуску, чтобы у нас сразу все заработало мы должны в папку /usr/local/share/eggdrop/scripts положить скрипт peak.tcl так как мы его прописали в конфиге, если файла не будет бот просто не запустится(добавили для примера если не хотите просто закоментируйте строку source scripts/peak.tcl). Да и чуть незабыл нам нужно перенести модули из /usr/local/lib/eggdrop/ в /usr/local/share/eggdrop/modules если нету modules создаем /usr/local/share/eggdrop/modules и пропишем права на папку чтобы в неё могли записывать, например чтобы скрипты могли изменять свои значения: Code: chmod 777 /usr/local/share/eggdrop Теперь запускаем бота: Code: eggdrop -m /usr/local/etc/eggdrop.conf и видим следущее: Code: $ eggdrop -m /usr/local/etc/eggdrop.conf Eggdrop v1.6.18 (C) 1997 Robey Pointer (C) 2006 Eggheads [02:12] --- Loading eggdrop v1.6.18 (Mon Dec 11 2006) [02:12] Module loaded: channels [02:12] Module loaded: server [02:12] Module loaded: irc [02:12] Module loaded: dns [02:12] Module loaded: ctcp [02:12] Module loaded: blowfish [02:12] Listening at telnet port 7510 (all). [02:12] egglib_pub.tcl v1.52 by Shrike <[email protected]>, mrBuG <[email protected]> loaded [02:12] Creating channel file [02:12] Couldn't create channel file: eggdrop.channels. Dropping STARTING BOT IN USERFILE CREATION MODE. Telnet to the bot and enter 'NEW' as your nickname. OR go to IRC and type: /msg CensoR hello This will make the bot recognize you as the master. [02:12] === CensoR: 1 channels, 0 users. Launched into the background (pid: 26103) После того как ты видишь что бот пришел на канал в нашем случае это #test пишем /msg ИмяВота hello в нашем случае ник бота CensoR то пишем "/msg CensoR hello" и видим приерный ответ бота: Code: [03:10] => *CensoR* hello ========================================= [03:10] -CensoR- Hi MicRO! I'm CensoR, an eggdrop bot. [03:10] -CensoR- I'll recognize you by hostmask '*!*@micro.hvn' from now on. [03:10] -CensoR- YOU ARE THE OWNER ON THIS BOT NOW [03:10] -CensoR- As master you really need to set a password: with. /MSG CensoR pass [your-chosen-password]. [03:10] -CensoR- All major commands are used from DCC chat. From now on, . you don't need to use the -m option when starting the bot. Enjoy !!! Дальше нужно задать пароль(но не меньше 6 символов) "/msg ИмяБота pass ЛюбойПароль" ну например: Code: [03:11] -> *CensoR* pass 123456 [03:11] -CensoR- Password set to: '123456'. Теперь бот полностью подчиняется тебе, спросишь как, да элементарно пишешь "/dcc chat Ник_бота" он спросит ваш пароль - введите его и нажмите Enter. Вы увидете чтото похожее на: Code: [02:19:15] <CensoR> Enter your password. [02:19:21] <MicRO> 123456 [02:19:21] <CensoR> [02:19:21] <CensoR> Connected to CensoR, running eggdrop v1.6.18 [02:19:21] <CensoR> ____ __ [02:19:21] <CensoR> / __/___ _ ___ _ ___/ /____ ___ ___ [02:19:21] <CensoR> / _/ / _ `// _ `// _ // __// _ \ / _ \ [02:19:21] <CensoR> /___/ \_, / \_, / \_,_//_/ \___// .__/ [02:19:21] <CensoR> /___/ /___/ /_/ [02:19:21] <CensoR> [02:19:21] <CensoR> Hey MicRO! My name is CensoR and I am running eggdrop v1.6.18, on FreeBSD 6.0-STABLE. [02:19:21] <CensoR> [02:19:21] <CensoR> Local time is now 02:19 [02:19:21] <CensoR> You are an owner of this bot. Only +n users can see this! For more info, [02:19:21] <CensoR> see .help set motd. Please edit the motd file in your bot's 'text' [02:19:21] <CensoR> directory. [02:19:21] <CensoR> Use .help for basic help. [02:19:21] <CensoR> Use .help <command> for help on a specific command. [02:19:21] <CensoR> Use .help all to get a full command list. [02:19:21] <CensoR> Use .help *somestring* to list any help texts containing "somestring". [02:19:21] <CensoR> [02:19:21] <CensoR> Have fun. [02:19:21] <CensoR> [02:19:21] <CensoR> Commands start with '.' (like '.quit' or '.help') [02:19:21] <CensoR> Everything else goes out to the party line. [02:19:21] <CensoR> [02:19:21] <CensoR> *** MicRO joined the party line. Ну а тут уже полная свобода действий(ты находишься на так называемом partyline) над ботом, приведу немножко команд(да все команды начинаются с .): .die -- убить бота. .rehash -- Бот перезагрузит свой config файл. .jump [server[port]] -- Приводит к тому что бот переходитна другой сервер.Смена сервера ВСЕГДА приводитк потере bot-oм cтатуса оператора. .+host <nickname> <hostmask> -- Добавить hostmask в запись пользователя.Благодаря hostmasks bot определяет (узнает) пользователя. .+chan [channel] -- бот зайдет на канал .-chan [channel] -- бот уйдет с канала .op <nickname> [channel] -- Предоставляет статус оператора канала пользователю, которого Вы определяете, пока bot находится на этом канале сам имея статус оператора, и пока пользователь не будет явно лишен статуса оператора ботом. Да чтобы убить бота можно например сделать: Code: #killall -9 eggdrop И в следущий раз бота запускать просто eggdrop Для начала хватит, если хочешь узнать другие команды смотрите в конце, там будут приведены все ссылки. Теперь рассмотрим некотрые скрипты и работу с ними. Например скрипт ircopscan.tcl после того как ты положил его в папку /usr/local/share/eggdrop/scripts и прописал в конфиге он всеравно неначал работать тут дело вот в чем, бот проверяет есть ли флаг +ircopscan на канале если нет то там скрипт не работает чтобы добавить мы просто в partyline пишем .chanset <#канал> +ircopscan. Ну вроде все, теперь ты можешь сам настроить себе бота и заставить работать его как ты хочешь. Всё теперь если ты внимательно читал сам можешь настроить бота вида eggdrop. Всем удачи в своих опытах с этой занимательной штучкой. Ну и ссылочки: http://windrop.sourceforge.net -- Офицальный сайт бота http://www.eggheads.org -- Исходники бота http://eggdrop.org.ru -- много хорошой инфы по этой теме включая скрипты, книжки, примеры.