RagBot Forum
 

Вернуться   RagBot Forum > • Всё что касается бота • > Макросы и Плагины

Макросы и Плагины Всё что относится к макросам и плагинам. Сборник готовых макросов.

Ответ
 
Опции темы Опции просмотра
Старый 01.03.2008, 09:05   #1
stopfild
Новичок
 
Аватар для stopfild
 
Регистрация: 05.02.2008
Сообщений: 31
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию Plugin: БашОрг

Помните был макрос - анекдот за деньги. Дык вот, есть идея забахать такую штуку на коре, что бы за (допустим) деньги, бот цитировал баш. На самом сайте есть код, который можно вставлять на сайты, и проч. Там цитате генерится раз в 10 секунд. Исходный код такой:
Код:
<div style="border: 1px solid #9999bb; background: #f0f0ff; padding: 5px; font-family: 'Monaco', 'Courier New', monospace; font-size: 10pt;">
<script language="JavaScript" type="text/javascript" src="http://bash.org.ru/forweb/">
</script>
</div>
на сайт\ы и т.п. код такой:
Код:
<script language="JavaScript" type="text/javascript" src="http://bash.org.ru/forweb/?u">
</script>
Как это сделать я совсем не предстовляю. Предлогаю размятся и забыть на время о зенях и каче. Just 4 fun как грицца
stopfild вне форума   Ответить с цитированием
Старый 14.03.2008, 00:47   #2
vitt
Продвинутый
 
Регистрация: 26.02.2007
Сообщений: 300
Вы сказали Спасибо: 0
Поблагодарили 23 раз(а) в 14 сообщениях
Смех

Этот плагин берёт случайную цитату с сайта http://bash.org.ru/ и может написать ее в консоль / в публичный чат / в приватный чат / в партийный чат / в гильдийный чат.
Цитата берется со страницы http://bash.org.ru/forweb/ где она обновляется каждые 10 секунд. Подробнее об этом написано здесь: http://bash.org.ru/webmaster .
Для взятия цитаты с сайта используется модуль(маленькая его часть) LWP, взятый из ActivePerl.

Плагин регистрирует команду bash:
Цитата:
bash - вывод цитаты в консоль
bash с - бот скажет цитату в общий чат
bash p - бот скажет цитату в партийный чат
bash g - бот скажет цитату в гильдийный чат
bash pm PlayerName - бот скажет цитату в приватный чат игроку PlayerName
bash c @homtalk - ваш гомункул скажет цитату (только для серверов, поддерживающих команду @homtalk)
bash c @pettalk - ваш пет скажет цитату (только для серверов, поддерживающих команду @pettalk)
Эту команду можно использовать в макросах:
Пример 1(Поставьте в config.txt dealAuto 2 , чтобы бот принимал сделки автоматически):
Код:
automacro bash1 {
    console /^You gained (\d+) zeny/
    run-once 1
    delay 1
    call bash1M
}
macro bash1M {
    if ($.lastMatch1 < 5000) goto end
    do bash c
    :end
    release bash1
}
Результат: Если боту через дил дадут 5000z или больше, он скажет цитату в публичный чат.

Пример 2:
Код:
automacro bash2 {
    pm /хочу баян/
    run-once 1
    delay 1
    call bash2M
}
macro bash2M {
    do bash pm $.lastpm
    release bash2
}
Результат: Бот скажет цитату в приват тому игроку, кто напишет ему фразу "хочу баян".



Сам плагин:
bashorg.pl:
Код:
###########################
# BashOrg plugin by _vit
# This plugin you may use for fun:)
# Version 0.02
# 28.03.2008
###########################

package bashorg;
use strict;
use Plugins;
use Log qw(message debug error);
use Globals;
use Log qw(message warning error);
use LWP::Simple;
use I18N qw(bytesToString);

Plugins::register('bashorg', 'Talking random quote from http://bash.org.ru', \&on_unload, \&on_reload);

my $cmd = Commands::register(
    ["bash", "Talking random quote from http://bash.org.ru", \&quote],
);

sub on_unload {
    Commands::unregister($cmd);
}

sub on_reload {
}

sub quote {
    my (undef, $command) = @_;
    my @commands = split(/ /, $command); 
    my $quote = "";
	
	if ($command eq "" || $command eq "c" || $command eq "p" || $command eq "g" || $commands[0] eq "pm" || $command eq 'c @homtalk' || $command eq 'c @pettalk'){	
        
        $quote = get 'http://bash.org.ru/forweb/';
        $quote = bytesToString($quote);
        debug ("\n===== BEFORE =====\n" . $quote . "\n==================\n");

        # trim begin
        $quote =~ s/var borq='';//g;
        $quote =~ s/.+?approved by.*?</</g;
        
        # trim end
        $quote =~ s/document.write\(borq\);//g;
        $quote =~ s/.{30}<' \+ 'a href=.http:..bash.org.ru.+//g;
        
        # remove JavaScript code
        $quote =~ s/<' \+ '.*?>/\n/g;
        
        $quote =~ s/&quot;/"/g;
        $quote =~ s/&lt;(.*?)&gt;/$1/eg;
        $quote =~ s/\n\n\n/\n/g;
        $quote =~ s/\n\n/\n/g;
        
        debug ("\n===== AFTER =====\n" . $quote . "\n=================\n");
        
        my @lines = split(/\n/, $quote);
        
        for(my $i = 1; $i < scalar(@lines); $i++){
            if ($command eq ""){
                message("    " . $lines[$i] . "\n");
            }else{
                debug("Using command: $command $lines[$i]");
                Commands::run("$command $lines[$i]");
            }
            sleep(0.25);
        }
    }else{
         error("Syntax Error in function 'bash'\nUsage: bash <c|p|g|pm PlayerName|".'c @homtalk|c @pettalk'.">\n");
         error("Where:\n <c> - public chat\n <p> - party chat\n <g> - guild chat\n <pm PlayerName> - private message\n");
         error(' <c @homtalk>'." - your homuncul will talk the quote\n ".'<c @pettalk>'." - your pet will talk the quote\n"); 
    }
}

return 1;
-------------------------
Изменение от 28.03.2008:
добавил поддержку команд @homtalk и @pettalk.
-------------------------

Внимание! Одного плагина недостаточно. Нужны еще 2 файла (они находятся в архиве):
\src\LWP\Simple.pm
\src\HTTP\Status.pm
P.S: Если вы найдете баг, или у вас появится какая-нибудь интересная идея, обязательно напишите это тут.
Вложения
Тип файла: rar bashorg_0_02.rar (5.9 Кб, 9 просмотров)

Последний раз редактировалось vitt; 28.03.2008 в 17:29.
vitt вне форума   Ответить с цитированием
Старый 14.03.2008, 12:16   #3
bloom
Гость
 
Сообщений: n/a
По умолчанию

Работает чьёрт побери
  Ответить с цитированием
Старый 14.03.2008, 22:15   #4
4epT
Админ
 
Аватар для 4epT
 
Регистрация: 10.12.2006
Сообщений: 4,370
Вы сказали Спасибо: 7
Поблагодарили 386 раз(а) в 240 сообщениях
Отправить сообщение для 4epT с помощью ICQ
По умолчанию

Комментарий администратора
4epT:
перенёс в "макросы и плагины"
__________________
¤Config checker¤Руководство¤Файлы¤Конфиги¤Макросы¤
Быстро и качественно напишу конфиг (макрос) за yAD! Стучи!
4epT вне форума   Ответить с цитированием
Старый 16.03.2008, 16:42   #5
dixoos
Начинающий ботовод
 
Регистрация: 01.11.2007
Адрес: RUS53
Сообщений: 56
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для dixoos с помощью ICQ
По умолчанию

у меня говорит только первые две стврочки, и если не влазит в строку то обрыв(

Последний раз редактировалось dixoos; 16.03.2008 в 16:53.
dixoos вне форума   Ответить с цитированием
Старый 16.03.2008, 19:56   #6
vitt
Продвинутый
 
Регистрация: 26.02.2007
Сообщений: 300
Вы сказали Спасибо: 0
Поблагодарили 23 раз(а) в 14 сообщениях
По умолчанию

Цитата:
Сообщение от dixoos Посмотреть сообщение
у меня говорит только первые две стврочки, и если не влазит в строку то обрыв(
Какая версия ОК? Используешь ВХ, или просто консоль? И поподробней распиши, что за ошибка вылазит(приложи файл эррорс.тхт), ну и что в консоли пишется.
vitt вне форума   Ответить с цитированием
Старый 16.03.2008, 20:47   #7
dixoos
Начинающий ботовод
 
Регистрация: 01.11.2007
Адрес: RUS53
Сообщений: 56
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Отправить сообщение для dixoos с помощью ICQ
По умолчанию

OpenKore 1.9.4, ВХ...
если цитата больше чем две строки, тока кажет только первые две...
и если сама строка длинее чем можно отправить за один раз в игре, то она обрывается
З.Ы.: ошибок нет, просто некоректно получается
dixoos вне форума   Ответить с цитированием
Старый 16.03.2008, 23:10   #8
vitt
Продвинутый
 
Регистрация: 26.02.2007
Сообщений: 300
Вы сказали Спасибо: 0
Поблагодарили 23 раз(а) в 14 сообщениях
По умолчанию

Цитата:
Сообщение от dixoos Посмотреть сообщение
OpenKore 1.9.4,
и если сама строка длинее чем можно отправить за один раз в игре, то она обрывается
Ага, в коре 2.0.6 - там бот автоматически разделяет цитату по нескольким сообщениям, попробуй его.
vitt вне форума   Ответить с цитированием
Старый 26.03.2008, 16:59   #9
bloom
Гость
 
Сообщений: n/a
По умолчанию

Предлагаю усовершенствовать плагин, добавлением комманд @homtalk и @pettalk
Что бы за хозаина говорил пет Или гом

@pettalk Бла бла бла - и пет это говорит Так же и с гомом (@homtalk)

сервак:
Тор, или Thor как вам угодно. Это х1к RusRO.
  Ответить с цитированием
Старый 28.03.2008, 17:45   #10
vitt
Продвинутый
 
Регистрация: 26.02.2007
Сообщений: 300
Вы сказали Спасибо: 0
Поблагодарили 23 раз(а) в 14 сообщениях
По умолчанию

Обновил, тестируйте
vitt вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Plugin - PetFeeder Freddie Mercury Макросы и Плагины 13 11.12.2008 17:29
ГАЙД по Macro plugin 4epT Мини ЧАВО 46 06.05.2008 19:36


Текущее время: 23:56. Часовой пояс GMT +3.