Показать сообщение отдельно

  #10  
Старый 27.02.2007, 02:18
sni4ok
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
С нами: 10271420

Репутация: 175
По умолчанию

Цитата:
Сообщение от _Great_  
Итак, попробуем же реализовать на нашем любимом языке программирования (Си )
а теперь пишем плагин к миранде, который позволяет делать следующее:
при вводе /blo text, для text'а делаем замену на бландинистый стиль, и выплювывем обратна(работает как в личке(icq, irc), так и на irc канале, также наводимся на цель.
комадой
/aim имя_цели
которая устанавливает цель на irc канале,и при попытке этого чувачка написать текст, выводит нечто следующее
PHP код:
    [01:12]    sni40k15430: UnNam3D wanna say: ЧО ТАМА ????!!!!!
    [
01:12]    Dr_Check|off: да
    
[01:12]    SliP|: -_-
    [
01:12]    UnNam3D: про америкосов нах ?
    [
01:12]    sni40k15430: UnNam3D wanna say: ПРО АМЕРИКОСОВ НАХ ????!!!!! 
ну и собственно исходник плагинчега:

PHP код:

<?php



function mbot_load()
{
    
mb_SelfRegister(MB_EVENT_MSG_OUT|IRC_EVENT_GUI_OUT|IRC_EVENT_GUI_IN, 1);
}

function 
ConvertStringToBlondy($msg)
{
    
$msg = @strtoupper($msg);
    
$msg = @str_replace(",", "!!!!", $msg);
    
$msg = @str_replace("?", "????!!", $msg);
    
$msg = $msg.'!!!';
    return 
$msg;
}

function 
MakeBlonyString($body){
    if(@
strlen($body) <= 6) return 0;
    if(@
substr($body,0,4) == '/blo'){
        
$msg = @substr($body,5);
        
$msg = @ConvertStringToBlondy($msg);
        return 
$msg;
    }
    return 
0;
}

function 
SetTarget($aim)
{
    if(@
strlen($aim) <= 6) return 0;
    if(@
substr($aim,0,4) == '/aim'){
        
$aim = @substr($aim,5);
        @
mt_setvar('target', $aim, 1);
        
mb_PUMsg('Target setted');
        return 
1;
    }
    return 
0;
}

function 
ApplyMsg($msg)
{
    
$ret = @SetTarget($msg);
    if(
$ret === 1) return 1;
    return @
MakeBlonyString($msg);
}

function 
mbe_MsgOut($cid,$body)
{
    
$msg = @ApplyMsg($body);
    if(
$msg === 0) return 0;
    if(
$msg === 1) return "drop";
    
mb_MsgSetBody($msg);
    return 
"send";
}

function 
irc_GuiOut($module,$iType,$channel,$pszUID,$text)
{
    
$msg = @ApplyMsg($text);
    if(
$msg === 0) return 0;
    if(
$msg === 1) return "drop";
    
mb_IrcSetGuiDataOut($iType,null,$pszUID,"$msg");
    return 
0;
}

function 
irc_GuiIn($module,$eventtype,$channel,$nick,$text)
{
    if(@
strcmp($eventtype, 64) == 0){
        
$target = @mt_getvar('target');
        if(@
strcmp($nick, $target) == 0){
//            mb_PUMsg('voshli');
            
$msg = @ConvertStringToBlondy($text);
            if(
$msg === 0) return 0;
            
$msg = $target.' wanna say: '.$msg;    
            
$msg = '/MSG '.$channel.' '.$msg;
            
mb_IrcPostMessage($module,$msg);
//            mb_PUMsg($msg);
        
}
        return 
0;
    }
}

?>

да, работает он используя плагин:
MBot/MSP (Miranda Scripting Plugin)

Последний раз редактировалось sni4ok; 27.02.2007 в 02:29..
 
Ответить с цитированием