Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Помогите разобраться с irc botом |

12.05.2008, 18:57
|
|
Участник форума
Регистрация: 24.05.2007
Сообщений: 229
Провел на форуме: 2308963
Репутация:
309
|
|
Помогите разобраться с irc botом
Взял готовый скрипт отсюда.
PHP код:
<?php
set_time_limit(0);
$socket = fsockopen("irc.***.com", 6667);
fputs($socket,"NICK megabotinok\n");
fputs($socket,"USER megabotinok 8 * :lamobot\n");
fputs($socket,"quote pong 2B8C8B2D\n");
fputs($socket,"JOIN #bash.org\n");
while(1) {
while($data = fgets($socket, 128)) {
echo nl2br($data);
flush();
$ex = explode(' ', $data);
if($ex[0] == "PING"){
fputs($socket, "PONG ".$ex[1]."\n");
}
$command = str_replace(array(chr(10), chr(13)), '', $ex[3]);
if ($command == ":!say") {
fputs($socket, "PRIVMSG ".$ex[2]." :ПОНИ ТОЖЕ КОНИ!!!!!!!!!\n");
}
}
}
?>
Вопрос в следующем:
Так как я новичок в пхп, я не могу понять, почему он отсылает строку PRIVMSG <nick> :ПОНИ ТОЖЕ КОНИ!!!!!!!!! сам себе...
|
|
|

12.05.2008, 19:01
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Смотри что у тебя в $ex[2]. Я так понял что там ничего нету, поэтому и появляются на сцене твои пони. Твой бот полученную строку сплитит по пробелу, покажи формат пакета, который он получает... Сначала должна идти команда, потом пробел, потом ник...
|
|
|

12.05.2008, 19:05
|
|
Участник форума
Регистрация: 24.05.2007
Сообщений: 229
Провел на форуме: 2308963
Репутация:
309
|
|
Фрагмент лога:
 j!admin@it.is.my.fucking.IP PRIVMSG megabotinok :!say
:megabotinok!megabotino@it.is.my.fucking.IP PRIVMSG megabotinok :ПОНИ ТОЖЕ КОНИ!!!!!!!!!
Пожалуйста, перепишите фрагмент скрипта правильно. Сам не допираю как и что...
Последний раз редактировалось AdReNa1!Ne; 12.05.2008 в 19:08..
|
|
|

12.05.2008, 19:08
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Ну ясен буй:
PRIVMSG megabotinok :ПОНИ ТОЖЕ КОНИ!!!!!!!!!
Эта команда и говорит, что отправить самому себе...
|
|
|

12.05.2008, 19:09
|
|
Участник форума
Регистрация: 24.05.2007
Сообщений: 229
Провел на форуме: 2308963
Репутация:
309
|
|
Это фрагмент из лога. Я не настолько тупой, чтоб не понять этого) Видимо он не распознает ник, что шлёт ему команду. Часть кода пропущена мб...
|
|
|

12.05.2008, 19:16
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Покажи что ты ему отправляешь, а я скажу где он лажает... Просто судя по логу - ему и отправляется команда, мол, скажи сам себе, что от работы пони дохнут...
|
|
|

12.05.2008, 19:17
|
|
Участник форума
Регистрация: 24.05.2007
Сообщений: 229
Провел на форуме: 2308963
Репутация:
309
|
|
fputs($socket, "PRIVMSG ".$ex[2]." :ПОНИ ТОЖЕ КОНИ!!!!!!!!!\n");
Весь трабл в этом ".$ex[2]."
Только хз как исправить это.
|
|
|

12.05.2008, 19:40
|
|
Участник форума
Регистрация: 08.09.2006
Сообщений: 194
Провел на форуме: 1627025
Репутация:
163
|
|
$ex = explode(' ', $data);
разделение строки в массив по пробелу
у тебя строка: j!admin@it.is.my.fucking.IP PRIVMSG megabotinok :!say
массив $ex из 4 элементов
$ex[0] = j!admin@it.is.my.fucking.IP
...
$ex[3] = :!say
что именно тебе нужно отправлять?
|
|
|

12.05.2008, 19:46
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
AdReNa1!Ne, ты прав как никогда, но дело в том, что $ex[2] принимает значение исходя того, что посылается... Если послать:
PRIVMSG megabotinok :ПОНИ ТОЖЕ КОНИ!!!!!!!!!
то $ex[2] - примет значение megabotinok.
а если
PRIVMSG bbbb :ПОНИ ТОЖЕ КОНИ!!!!!!!!!
то $ex[2] - примет значение bbb.
З.Ы. А поменяй строку
fputs($socket, "PRIVMSG ".$ex[2]." :ПОНИ ТОЖЕ КОНИ!!!!!!!!!\n");
на
fputs($socket, "PRIVMSG ".$ex[1]." :ПОНИ ТОЖЕ КОНИ!!!!!!!!!\n");
|
|
|

12.05.2008, 20:32
|
|
Участник форума
Регистрация: 24.05.2007
Сообщений: 229
Провел на форуме: 2308963
Репутация:
309
|
|
Фрагмент из лога:
Dj!admin@it.is.my.fucking.IP PRIVMSG megabotinok :!say
irc.vltele.com 401 megabotinok PRIVMSG :No such nick/channel
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|