есть несколько способов создать своего бота.простой и сложный.......
сложный,
Сейчас расскажу, как сделать бота самому. Для этого потребуется два mIRC клиента, первЫй это под которЫм вЫ сидите, а второй и будет наш бот
Заходим первЫм клиентом на сервак, и джойнимся на какойнить свободнЫй канал для тестов. Заходим тудаже вторЫм клиентом(будущим ботом). Жмем во втором клиенте комбинацию клавишь Alt+R, откроеться окно в котором собственно и будем писать бота:) Пишем: Код:
on *:TEXT:*прЫвет*:#:/msg $chan Здарова $nick, я $me супермега бот канала $chan
highlight: perl
Теперь пишем первЫм клиентом в канале Всем прЫвет, если бот ответит, то все нормл
Объясняю сам скрипт:
on – говорит мирку что будем обрабатЫвать какое либо собЫтие.
* – уровень пользователя на собЫтие которого бот будет реагировать (* - реагировать на всех)
TEXT – собЫтие на которое бот будет реагировать, в данном случае на текст
*прЫвет* - какой текст бот будет отслеживать, в данном примере бот будет реагировать на все фразЫ содержашие слово прЫвет.
# - реагируем только на текст появившийся на канале (? – в привате, * - для любого сообщения, #webcriminal – токо для данного канала)
/msg – собственно сама команда, которую бот исполнит если на канале произнесут слово прЫвет (/describe - равна команде /me)
ЗЫ: вот и все теперь можете в мирковском хелпе посматреть какие собЫтия может обрабатЫвать мирк. Наберите /help on
Сейчас объясню как брать фразЫ из текстового файла. Изменим немного вЫшеописанЫй скрипт.
Код:
on *:TEXT:*прЫвет*:#:if ( $nick != $me ) timerTEXT 1 3 msg # $read -u5 Texts\text.txt
highlight: perl
if ($nick != $me) – если ник не равен моему, то вЫполняем следуюшую команду.
timerTEXT – запускаем таймер текст 1 сообщение за 3 секундЫ (это чтоб флуда небЫло)
$read – читает одну строку из файла и вставляет ее в текущую позицию в алиасе.
Создайте в дириктории мирка папку Texts, а в ней текстовЫй файл text.txt, а в нем такие строчки:
Код:
ПрЫвет $nick коль не шутишь
Здарова, здарова $nick, тебе приведствует бот $me
Приветствую тебя на канале $chan
highlight: perl
Теперь пишем на канале Всем прЫвет, и бот ответит какойнить фразой из текстового файла
ЗЫ: если возникнут вопросЫ спрашивайте.
Добавлено (17.10.2008, 09:28)
---------------------------------------------
оехали дальше, сейчас напихаем в бота еще пару скриптов:)
Сначала научим бота отвечать, если обращаются именно к нему, а то надоедает, когда бот влезает в разговор, и приходиться делать //mode $chan +m , и бота лишать статуса на канале
В скрипт пихаем такую строчку:
Код:
if ($count($1-,$me) != 0) { ... }
highlight: perl
Объясняю, что он делает:
if ( ) { } – в круглЫх скобках находятся сравниваемЫе значения, а в фигурнЫх скобках находятся командЫ, которЫе будут вЫполненЫ, если значение в круглЫх скобках истеное (true).
Теперь поясняю, что делается в круглЫх скобках.
$count($1-,$me) != 0 - возвращает количество найденных подстрок $me в строке $1-. Поясняю, например, ник у бота DB0t и кто-нибудь пишет DB0t прЫвет. Произойдет следующее действие:
($count(DB0t прЫвет, DB0t) != 0 ) Скрип найдет 1 ник в строке, вследствие чего вЫполниться неравенство 1 != 0, и скрипт продолжит свою работу, если бЫ не написали ника команда бЫ не вЫполнилась. Здесь должно бЫть все понятно, ибо все разжевал
Далее напишем шуточнЫй скрипт «Русской рулетки»
Что скрипт будет делать:
Кто-нибудь на канале пишет !рулетка, после чего бот рандомно кикает кого-нибудь с канала.
Код:
Код:
on *:TEXT:!рулетка*:#:/timerPyJIetka 1 3 msg # Верчу, кручу, кого-то кикнуть хочу | /timerKick 1 4 kick $chan $nick($chan,$rand(1,$nick($chan,0))/nick) вот тебе и русская рулетка
highlight: smalltalk
Поясняю скрипт:
on *:TEXT:!рулетка*:#:/timerPyJIetka 1 3 msg # Верчу, кручу, кого-то кикнуть хочу – это думаю понятно
Стоит пояснить тока: $nick($chan,$rand(1,$nick($chan,0))/nick)
$nick($chan,N/nick) – возвращает N-Ый ник из списка ников канала $chan. Если вместо N поставим 1, то вернет первЫй ник из списка, но нам нужен случайнЫй ник, поэтому вместо N вставляем идентификатор $rand(1,$nick($chan,0)). $rand работает двояко, если указать числа, то он вернет случайное число между ними, если буквЫ, то букву. В нашем случае он будет вЫбирать число между 1 и количеством человек на канале. Количество ников на канале возвратит этот скрипт $nick($chan,0). Вот и все скрипт случайно вЫбирает номер ника из списка ников канала, и кикаеться