Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 11.12.2010, 01:55   #1
Заблокирован
 Разведчик
Аватар для megaKAKER
 
megaKAKER на правильном пути
Регистрация: 06.12.2010
Сообщений: 8
Популярность: 38
Сказал(а) спасибо: 40
Поблагодарили 14 раз(а) в 8 сообщениях
 
Thumbs up Пишем Icq бота на Php

Статья посвященная созданию ICQ бота на PHP языке!
Арсенал:
1) Хостинг или дедик
2) Знание PHP
3) Клас ICQ
4) ICQ номер бота
5) Руки

---Шаг первый---
Начнем с того что найдем клас для создания бота.
Этот клас сам разберется со всеми проблемами протокола ICQ и позволит нам подлючится к ICQ за несколько комманд.
Автор выбрал mlCQ library v0.4 (Скачать все PHP скрипты сможете вконце темы)
Называем его lib.php и на время забываем.
---Шаг второй---
Создадим файл конфига conf.php!
В нем будут хранится разного рода настройки скрипта и бота.
Например ICQ и пароль бота, его статус и будет ли скрипт вести логи.
conf.php
Код:
<?php
DEFINE('UIN_ADMIN','ваша ася'); // Номер ICQ админа

// Уин бота
DEFINE('UIN_BOT','тут аська бота'); // Номер ICQ бота
DEFINE('PASS_BOT','тут пароль'); // Пароль от уина ICQ бота

// Настройки бота
DEFINE('BOT_STATUS','Статус бота X-Traz'); // X-Traz статус бота
DEFINE('BOT_BIRTHDAY','1'); // Шарик день-рождения

// Настройка логирования
DEFINE('LOG_SET','0'); // Если нужны логи поставте 1
DEFINE('LOG_FILE','huge.log'); // Файл логов
?>
Сохраняем в папке с lib.php и забываем!
---Шаг третий---
Перейдем к оболочке бота и скрипте что будет управлять всем функционалом!
Тут будет хранится скрипт входа в on-line, скрипт обработки и еще много чего!
Начнем с того что подключим lib.php и conf.php!
bot.php
Код:
<?php
require_once 'lib.php';
require_once 'conf.php';
Tеперь определим параметр ICQ birthday, логов и запустим бота
Код:
//Birthday
if(BOT_BIRTHDAY=='1') { $BD='BIRTHDAY'; } // Разбираемся с параметром Днюхи бота

//Прочее
set_time_limit(0); // На же не надо чтобы бот постоянно выходил из она?
ignore_user_abort(true); // Игнор аборта

//Подключение
$mlCQ=new mlCQ(); // Создаем клас
$mlCQ->create_identity("me",UIN_BOT,PASS_BOT); //Вводим параметры входа
$mlCQ->connect(); //Создаем подключение
$mlCQ->login(); // Логинимся

// Файл логирования
if(LOG_SET=='1') { $mlCQ->start_logging(LOG_FILE); } // Если нужно, наш клас будет вести логи

//X-Traz
$mlCQ->set_status(BOT_STATUS, $BD); //Статус бота

//Удаляем не нужные офлайн сообщения
$mlCQ->request_offline_messages();
$mlCQ->delete_offline_messages();

$still_there=true; $code='';
Ну а сейчас займёмся списком команд
Код:
$list = "Набирите команды что описаны ниже:

person admin - О админе
person you - О Вас
";
$personallist = array(
"admin" => "Админу вчера выполнилось 150 лет. Он живет в г.Черновцы и жрет пиццу",
"you" => "Вы видимо дядя что шяс сидит в асике"
);

$help='Вас приветствует ICQ Info BOT 

Команды бота:

help - Вывод справки (её Вы сейчас читаете)
admin ваше_сообщение - Связь с админом
list - Список персонала
person чел - Инфа о нем *
';
Вот теперь самая сложная часть которая разместит в себе весь остаток кода!
Код:
while($still_there) {

if(!is_resource($mlCQ->sock) || feof($mlCQ->sock)) $still_there=false; // Проверка
if(!$code) sleep(1); // Спим
$code=$mlCQ->dance_for('me');

switch($code) { //Распознаем ответы
case 7:

$msg=$mlCQ->id['in_messages']['last']; //Получаем последнее сообщение
$from=$msg['uin']; // Аська с которой пришло сообщение
$cmd = explode(' ',$msg['text']); //С помощю explode разделяем сообщение на оболочку
switch($cmd[0]) { //Разбираем сообщение

// Функция вывода хелпа
case 'help':
$mlCQ->send_message($from,$help); // Шлем сообщение с хелпом
break;

// Общение с админом
case 'admin':
$mlCQ->send_message('UIN_ADMIN','Вам пришло сообщение от: '.$from.
'
Текст: '.$cmd.

'
Ответить: send '.$from.' ответ');
break;

// Общение с юзерами
case 'send':
$mlCQ->send_message($cmd[1],'От админа: '.$cmd);
break;



// Отправка листа с командами
case 'list':
$mlCQ->send_message($from,$list);

break;


// Отправка ответа с данными о персоне
case 'person':
$messa = $personallist[$cmd[1]];
if (isset($messa)) {
$mlCQ->send_message($from,"$messa");
} else {
$mlCQ->send_message($from,"Такой персоны не найдено");
}
break;


// Функция остановки работы бота
case 'stop':
if($from==UIN_ADMIN) {
$mlCQ->send_message($from,'Работа бота завершена');
$mlCQ->close(); //Закрываем соединение
}
break;
//Если ни одна из команд не найдена, пишем дефолт сообщение
default:
$mlCQ->send_message($from,"Для вывода справки по командам наберите \"help\" (без кавычек)");
break;
}
}
}

?>
Сохраняем как bot.php, и идем на хостинг

---Шаг четвертый---
Нам нужен хостинг под бота!
Автор держит своего автора на bravohost.ru. Почему там?
Там можно редактировать настройку о том сколько может исполнятся скрипт + есть cron который будет перезапускать скрипт каждые 10 мин.
Если хотите делать на дедике, то устанавливайте любую сборку сервера и в настройках укажите любое нужное Время исполнения, через которое Ваш скрипт остановится (Т.е. Вам надо будет его запускать снова)
Выбрали? Идем на хост и заливаем скрипты.
На папку с скриптом (Если нужны логи) кладем права 777.
Теперь запускаем bot.php и скрипт не должен открыватся (Т.е. Зависнуть)
Добавляйте бота и общайтесь с ним.
Если же ошибка, значит где-то в коде проблема или с хостингом лажа.
Вот пак из скриптов, которые собраны по этой статье!
Там находится клас mlCQ. Конфиг и оболочка бота!

Качем архив---------> [Ссылки могут видеть только зарегистрированные пользователи. ]

---F.A.Q.---


Бот почему-то сам выходит из онлайна, надо его заново запускать
Нужно изменить тайм-лимит на исполнение скрипта.

Пишет ошибку при выполнении скрипта
Куча причин возможно.
Может быть аська и пароль бота не правильны или хостинг лажет, а может и в скрипте проблемма

Не входит в он-лайн
Пароль с асей могут быть не правильные. Или хостинг не позволяет

Очень долго отвечает бот
Хостинг возможно тупит, или Ваш бот очень загружен

Информация взята [Ссылки могут видеть только зарегистрированные пользователи. ].

Последний раз редактировалось VeTaL_UA; 16.04.2012 в 14:26.
  Ответить с цитированием
Старый 02.02.2012, 18:35   #2
Заблокирован
 Разведчик
Аватар для Evedence
 
Evedence на правильном путиEvedence на правильном пути
Регистрация: 11.01.2012
Сообщений: 19
Популярность: 190
Сказал(а) спасибо: 111
Поблагодарили 60 раз(а) в 27 сообщениях
Отправить сообщение для Evedence с помощью ICQ Отправить сообщение для Evedence с помощью Skype™
 
По умолчанию Re: Пишем Icq бота на Php

С депозита перезалей!!!
  Ответить с цитированием
Старый 16.04.2012, 14:14   #3
Читер-спонсор
 Старший сержант
Аватар для The_Cruiser
 
The_Cruiser знает себе ценуThe_Cruiser знает себе ценуThe_Cruiser знает себе ценуThe_Cruiser знает себе ценуThe_Cruiser знает себе ценуThe_Cruiser знает себе ценуThe_Cruiser знает себе ценуThe_Cruiser знает себе ценуThe_Cruiser знает себе ценуThe_Cruiser знает себе ценуThe_Cruiser знает себе цену
Регистрация: 26.09.2010
Сообщений: 225
Популярность: 4868
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 220
Поблагодарили 1,080 раз(а) в 208 сообщениях
Отправить сообщение для The_Cruiser с помощью Skype™
 
По умолчанию Re: Пишем Icq бота на Php

Слизано [Ссылки могут видеть только зарегистрированные пользователи. ].
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Fast Zhyk NEW - быстрый переход по разделам Жука
  Ответить с цитированием
Старый 16.04.2012, 14:27   #4
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Пишем Icq бота на Php

Цитата:
Сообщение от The_CruiserПосмотреть сообщение
Слизано отсюда.

Копипаст проставлен. Автор награждён красной карточкой. Благодарю за внимание
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишем в чат анонсы Silence Баги и читы Lineage 2 0 16.07.2009 15:02
Пишем трейнер на VC++ Silence С/С++ 1 04.07.2009 00:08
[Руководство] Пишем иньектор DLL-ок на С++. Ivan_32 ASM/WinAPI 0 30.11.2008 00:31

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 01:48.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net