Взял готовый скрипт отсюда. 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> :ПОНИ ТОЖЕ КОНИ!!!!!!!!! сам себе...
Смотри что у тебя в $ex[2]. Я так понял что там ничего нету, поэтому и появляются на сцене твои пони. Твой бот полученную строку сплитит по пробелу, покажи формат пакета, который он получает... Сначала должна идти команда, потом пробел, потом ник...
Фрагмент лога: j!admin@it.is.my.fucking.IP PRIVMSG megabotinok :!say :megabotinok!megabotino@it.is.my.fucking.IP PRIVMSG megabotinok :ПОНИ ТОЖЕ КОНИ!!!!!!!!! Пожалуйста, перепишите фрагмент скрипта правильно. Сам не допираю как и что...
Это фрагмент из лога. Я не настолько тупой, чтоб не понять этого) Видимо он не распознает ник, что шлёт ему команду. Часть кода пропущена мб...
Покажи что ты ему отправляешь, а я скажу где он лажает... Просто судя по логу - ему и отправляется команда, мол, скажи сам себе, что от работы пони дохнут...
fputs($socket, "PRIVMSG ".$ex[2]." :ПОНИ ТОЖЕ КОНИ!!!!!!!!!\n"); Весь трабл в этом ".$ex[2]." Только хз как исправить это.
$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 что именно тебе нужно отправлять?
AdReNa1!Ne, ты прав как никогда, но дело в том, что $ex[2] принимает значение исходя того, что посылается... Если послать: то $ex[2] - примет значение megabotinok. а если то $ex[2] - примет значение bbb. З.Ы. А поменяй строку на
Фрагмент из лога: Dj!admin@it.is.my.fucking.IP PRIVMSG megabotinok :!say irc.vltele.com 401 megabotinok PRIVMSG :No such nick/channel
Нужна помошь... Как сделать что-бы он не только $ex[4] читал, а если юзер написал 1 2 3 4 6(т.е. что бы он читал 2 3 4 5 6 и т.д.) И добавлял это к $qwert =)