Как добавить функцию?

Discussion in 'PHP' started by cren, 28 Jul 2009.

  1. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    Как в этого бота дабавить команду отправки рандомной строчки из какого либо файла?

    Code:
    <?
    
    // Based on mlCQ library v0.4 by Sergey Danyushin aka I)estym
    
    // (c)oded by S1B [SBT]
    // 21.04.2007
    // www.secbun.info
    set_time_limit(0);
    ignore_user_abort(true);
    
    $help='Команды бота:
    
    !help - вывод справки (её Вы сейчас читаете)
    !md5 <строка> - вернёт MD5 хэш переданной строки
    !b64e <строка> - кодирует переданные данные в Base64
    !b64d <строка> - декодирует переданные данные из Base64
    !len <строка> - вернёт длину переданной строки
    !tic <url сайта> - вернёт тИЦ данного сайта
    !admin - Контакты для связи с админом
    ';
    $admin='Для связи с администратором можно использовать:
    ICQ: 6-344-344-7
    e-mail: [email protected]
    m-agent: serega_bomber
    jabber: [email protected]';
    
    
    function get_tic($url) {
    	if(isset($url)) {
    		$url=urlencode(str_replace("http://","",str_replace("www.","",strtolower(trim($url)))));
    		$s=fsockopen('bar-navig.yandex.ru','80');
    		fputs($s,"GET /u?ver=2&lang=1049&url=http://$url&target=_No__Name:5&show=1&thc=0 HTTP/1.0\r\nHost: bar-navig.yandex.ru\r\n\r\n");
    		while(!feof($s)) {
    			$get=fgets($s,128);
    			if(preg_match('!" value="(.*?)"/>!',$get,$tic)) {
    				return $tic[1];
    			}
    		}
    	}
    }
    
    require_once 'lib.php';
    require_once 'conf.php';
    
    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); }
    
    $mlCQ->set_status(BOT_STATUS, $BD);
    
    $mlCQ->request_offline_messages();
    $mlCQ->delete_offline_messages();
    
    $still_there=true; $code='';
    
    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'];
            list($cmd[1])=explode(' ',$msg['text']);
      			$cmd[2]=str_replace("$cmd[1] ",'',$msg['text']);
    
         		switch($cmd[1]) {
    
    				// Функция вывода хелпа
    				case '!help':
        			$mlCQ->send_message($from,$help);
    				break;
    
    				case '!ui':
    					$mlCQ->send_message($from,$mICQ->request_full_userinfo(4124477));
    				break;
    								// Функция вывода хелпа
    				case '!admin':
        			$mlCQ->send_message($from,$admin);
    				break;
    												// Функция вывода хелпа
    
    
    
    				// Функция создания MD5 хэшей
    				case '!md5':
    					$mlCQ->send_message($from,md5($cmd[2]));
    				break;
    
    				// Функция кодирования в Base64
    				case '!b64e':
    					$mlCQ->send_message($from,base64_encode($cmd[2]));
    				break;
    
    				// Функция декодирования из Base64
    				case '!b64d':
    					$mlCQ->send_message($from,base64_decode($cmd[2]));
    				break;
    
    				// Функция подсчёта длины строки
    				case '!len':
    					$mlCQ->send_message($from,strlen($cmd[2]));
    				break;
    
    				// Функция получения Яндекс тИЦ заданного сайта
    				case '!tic':
        			$tic=get_tic($cmd[2]);
    					if($tic=='') { $tic='Определение тИЦ данного сайта невозможно, либо его значение меньше 10'; }
    					$mlCQ->send_message($from,$tic);
    				break;
    				// Функция получения Яндекс тИЦ заданного сайта
    				case '!wake':
        			$tic=frand($cmd[3]);
    					if($tic=='') { $tic='Определение тИЦ данного сайта невозможно, либо его значение меньше 10'; }
    					$mlCQ->send_message($from,$wake);
    				break;
    
        		// Функция остановки работы бота
        		case '!stop':
          		if($from==UIN_ADMIN) {
            		$mlCQ->send_message($from,'Работы бота завершена');
            		$mlCQ->close();
           		}
            break;
    
    				default:
    					$mlCQ->send_message($from,"Гы =))) А такой каманды нет!.\nДля вывода справки по командам наберите \"!help\" (без кавычек)");
    				break;
        		}
        }
    }
    
    ?>
     
  2. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    если можно то сразу вставьте в код сразу, и выложите
     
  3. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    $file 'file.txt'//Где лежат рандомные строки
    $line file($file);

    // Рандомная строка
    $mlCQ->send_message($from$line[rand(0count($line) - 1)]);
    PHP:
    <?php

    // Based on mlCQ library v0.4 by Sergey Danyushin aka I)estym

    // (c)oded by S1B [SBT]
    // 21.04.2007
    // www.secbun.info
    set_time_limit(0);
    ignore_user_abort(true);

    $file 'file.txt'//Где лежат рандомные строки
    $line file($file);

    $help='Команды бота:

    !help - вывод справки (её Вы сейчас читаете)
    !md5 <строка> - вернёт MD5 хэш переданной строки
    !b64e <строка> - кодирует переданные данные в Base64
    !b64d <строка> - декодирует переданные данные из Base64
    !len <строка> - вернёт длину переданной строки
    !tic <url сайта> - вернёт тИЦ данного сайта
    !admin - Контакты для связи с админом
    '
    ;
    $admin='Для связи с администратором можно использовать:
    ICQ: 6-344-344-7
    e-mail: [email protected]
    m-agent: serega_bomber
    jabber: [email protected]'
    ;


    function 
    get_tic($url) {
        if(isset(
    $url)) {
            
    $url=urlencode(str_replace("http://","",str_replace("www.","",strtolower(trim($url)))));
            
    $s=fsockopen('bar-navig.yandex.ru','80');
            
    fputs($s,"GET /u?ver=2&lang=1049&url=http://$url&target=_No__Name:5&show=1&thc=0 HTTP/1.0\r\nHost: bar-navig.yandex.ru\r\n\r\n");
            while(!
    feof($s)) {
                
    $get=fgets($s,128);
                if(
    preg_match('!" value="(.*?)"/>!',$get,$tic)) {
                    return 
    $tic[1];
                }
            }
        }
    }

    require_once 
    'lib.php';
    require_once 
    'conf.php';

    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); }

    $mlCQ->set_status(BOT_STATUS$BD);

    $mlCQ->request_offline_messages();
    $mlCQ->delete_offline_messages();

    $still_there=true$code='';

    while(
    $still_there) {

        if(!
    is_resource($mlCQ->sock) || feof($mlCQ->sock)) $still_there=false;
        if(!
    $codesleep(1);    // Спим
        
    $code=$mlCQ->dance_for('me');

        switch(
    $code) {
            case 
    7:

            
    $msg=$mlCQ->id['in_messages']['last'];
            
    $from=$msg['uin'];
            list(
    $cmd[1])=explode(' ',$msg['text']);
                  
    $cmd[2]=str_replace("$cmd[1] ",'',$msg['text']);

                 switch(
    $cmd[1]) {

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

                    case 
    '!ui':
                        
    $mlCQ->send_message($from,$mICQ->request_full_userinfo(4124477));
                    break;
                                    
    // Функция вывода хелпа
                    
    case '!admin':
                    
    $mlCQ->send_message($from,$admin);
                    break;
                                                    
    // Функция вывода хелпа



                    // Функция создания MD5 хэшей
                    
    case '!md5':
                        
    $mlCQ->send_message($from,md5($cmd[2]));
                    break;

                    
    // Функция кодирования в Base64
                    
    case '!b64e':
                        
    $mlCQ->send_message($from,base64_encode($cmd[2]));
                    break;

                    
    // Функция декодирования из Base64
                    
    case '!b64d':
                        
    $mlCQ->send_message($from,base64_decode($cmd[2]));
                    break;

                    
    // Функция подсчёта длины строки
                    
    case '!len':
                        
    $mlCQ->send_message($from,strlen($cmd[2]));
                    break;

                    
    // Функция получения Яндекс тИЦ заданного сайта
                    
    case '!tic':
                    
    $tic=get_tic($cmd[2]);
                        if(
    $tic=='') { $tic='Определение тИЦ данного сайта невозможно, либо его значение меньше 10'; }
                        
    $mlCQ->send_message($from,$tic);
                    break;
                    
    // Функция получения Яндекс тИЦ заданного сайта
                    
    case '!wake':
                    
    $tic=frand($cmd[3]);
                        if(
    $tic=='') { $tic='Определение тИЦ данного сайта невозможно, либо его значение меньше 10'; }
                        
    $mlCQ->send_message($from,$wake);
                    break;

                
    // Функция остановки работы бота
                
    case '!stop':
                  if(
    $from==UIN_ADMIN) {
                    
    $mlCQ->send_message($from,'Работы бота завершена');
                    
    $mlCQ->close();
                   }
            break;
            
            
    // Рандомная строка
            
    case '!random':
              
    $mlCQ->send_message($from$line[rand(0count($line) - 1)]);
            break;

                    default:
                        
    $mlCQ->send_message($from,"Гы =))) А такой каманды нет!.\nДля вывода справки по командам наберите \"!help\" (без кавычек)");
                    break;
                }
        }
    }

    ?>
     
    #3 FireFenix, 28 Jul 2009
    Last edited: 28 Jul 2009
    2 people like this.
  4. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    спс) а ещё нужно вставить команду чтобы отправляла сообщене на указанный номер

    Например по команде !icq 63443447 Привет!

    Шло сообщение привет на номер 63443447
     
  5. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    FireFenix пишет ошибка на строчке 12
     
  6. Fata1ex

    Fata1ex Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    Файл создай
     
  7. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    C ошибкой название файла написал...работает спс

    Помогите с этим плиз.
     
  8. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    А как добавить второй файл?
     
  9. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    $line = Array();

    $files[] = 'file_0.txt';
    $files[] = 'file_1.txt';
    $files[] = 'file_n.txt';

    foreach (
    $files as $file)
    {
      
    $line array_merge($linefile($file));
    }
    PHP:
    case '!icq':
      
    $params explode(' '$msg['text']);
      
    $mlCQ->send_message($params[1], $params[2]);
    break;
    где-то так
     
    #9 FireFenix, 28 Jul 2009
    Last edited: 28 Jul 2009
  10. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    А как вставлять? пример?

    FireFenix - Можешь дать номер аси?
     
    #10 cren, 28 Jul 2009
    Last edited: 28 Jul 2009
  11. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    А как сделать, чтобы он допустим по команде !rendom2 брал рандомную строчку из другого файла?
     
  12. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    А смотри, можно сделать так,
    PHP:
     $file[0] = 'file_1.txt'
    $file[1] = 'file_2.txt'
    $file[2] = 'adv.txt':

    $lines[0] = file($file[0]); 
    $lines[1] = file($flie[1]); 
    $lines[2] = file($flie[2]); 

    //бла бла бла 


    case '!random2'
      
    $mlCQ->send_message($from$lines[1][rand(0count($lines[1]) - 1)], $lines[2][rand(0count($lines[2]) - 1)]);  
    break;  
    Я хочу сделать типа рекламу
     
  13. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    Можно ли на этот скрипт как нибудь встроить регистрацию? что бы всё при регистрации ник номер и пол сохранялись в файл.txt?
     
  14. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    247
    Likes Received:
    28
    Reputations:
    1
    есть тот кто поможет мне?

    Напишите в асю 6-344-344-7 пожмякаю +
     
Loading...
Similar Threads - добавить функцию
  1. GAiN
    Replies:
    4
    Views:
    7,341