Bus - система взаимодействия ботов, помогите разобраться.
Модератор: 4epT
piroJOKE
альясы - да. Но чтобы альяс сработал надо перенаправить фрагмент чата в консоль + я не тестил, альяс понимает великий и могучий ?
Монжо сделать перенаправление макросами, но их нужно просто невероятное количество.
Я рассматриваю гилдчат и пати чат как замену bus'у, но с акробатическими приемами, чтобы не спалиться. Собсно сейчас по такой схеме отлично работает фулпати (только там еще чат-команды задействованы).
альясы - да. Но чтобы альяс сработал надо перенаправить фрагмент чата в консоль + я не тестил, альяс понимает великий и могучий ?
Монжо сделать перенаправление макросами, но их нужно просто невероятное количество.
Я рассматриваю гилдчат и пати чат как замену bus'у, но с акробатическими приемами, чтобы не спалиться. Собсно сейчас по такой схеме отлично работает фулпати (только там еще чат-команды задействованы).
callSign [<call name>]
This option specifies the word or call name that must be included in chat commands sent to Kore through party and guild chats for such commands to be recognized. This is not case sensitive.
Не работает, poringi становится командой для консоли, но не для чат-команд. Точно так же нельзя с помощью чат команды вызвать макрос , а еще нельзя обращаться к лэйблам (хотя в мануале написано что можно)allSign Vasia
alias_poringi macro goPoringGo
и
g Vasia poringi
Вот наваял плагинчик для программы минимум так что зацените...
piroJOKE
Немного не соответствует твоему тз...так что жду критику и предложения...
BUSCommander.pl:
На GMAlert нужно отлавливать Hook: bus_GMAlert ...
Например таким макросом:
Жду отзывов...
piroJOKE
Немного не соответствует твоему тз...так что жду критику и предложения...
BUSCommander.pl:
Код: Выделить всё
#====================================================#
# This plugin is licensed under the GNU GPL #
# Copyright 2008 by Wider #
# ************************************************** #
# BUSCommander.pl #
# version 1.01 #
# #
# This plugin uses bus system for sending and #
# processings of the received commands between bots. #
# #
#====================================================#
package BUSCommander;
use lib $Plugins::current_plugin_folder;
use strict;
use warnings;
use Globals;
use Settings;
use Plugins;
use Utils;
use Misc;
use Utils;
use Log qw(message debug warning error);
my $callBUS_busProc;
Plugins::register('BUS', 'BUSCommander', \&onUnload);
my $hook = Plugins::addHook("AI_pre", \&AI_pre_sub, undef);
my $bus_cmd = Commands::register(
['bus', "BUSCommander", \&bus_cmd]
);
sub onUnload {
Plugins::delHook('AI_pre',$hook);
Commands::unregister($bus_cmd);
if (defined $bus) {
$bus->onMessageReceived->remove($callBUS_busProc);
}
}
sub AI_pre_sub {
if (defined $bus) {
$callBUS_busProc = $bus->onMessageReceived->add(undef, \&bus_proc);
message "[BUS] Enabled...\n";
Plugins::delHook('AI_pre',$hook);
} elsif (!$config{bus}) {
message "[BUS] Disabled...\n";
onUnload();
}
}
sub bus_proc {
my (undef, undef, $message) = @_;
my $mesgID=$message->{messageID};
my $args=$message->{args};
if($mesgID eq 'GMAlert') {
message "[BUS] Receive GMAlert from $args->{Name}\n";
message "[BUS] Sending Hook: \"bus_GMAlert\"\n";
Plugins::callHook('bus_GMAlert', {Name => $args->{Name}});
return
} else {
message "[BUS] Message: $mesgID\n";
return
}
}
sub bus_cmd {
if (!defined $_[1]) {
message "[BUS] Usage: bus [GMAlert|help]\n";
return
}
my ($arg, @params) = split(/\s+/, $_[1]);
my %hash = (
Name => $char->{name}
);
if($arg eq 'GMAlert')
{
$bus->send('GMAlert',\%hash);
message "[BUS] Sending broadcast: GMAlert\n";
return
}elsif($arg eq 'help')
{
message "[BUS] Usage: bus [GMAlert|help]\n";
}else
{
error "[BUS] Read first help manual. Command: \"bus help\".\n";
return
}
}
Например таким макросом:
Код: Выделить всё
automacro GMAlert {
hook bus_GMAlert
call GMAlertM
}
macro GMAlertM {
log !GMAlert!
}
- DeniZka
- Разработчик
- Сообщения: 410
- Зарегистрирован: Ср ноя 15, 2006 6:36 pm
- Сервер RO:: rRO AsgardRO
- Откуда: Mos-Cow Citadel
- Контактная информация:
Тема тронула мое сердце и я решил внести в нее свою лепту.
На днях тестово будет поднят Web сервис для группового оповещения ботов.
Смысл сервиса следующий:
1) Группа друзей/знакомых ботоводов регистрируют на веб сайте аккаунт и устанавливают ботам спец плагин.
2) Переодически плагин лазиет на странчку группы в поисках нехороших новостей от друзей
3) В случае нежелаемых ситуаций т.к. бан, тюрьма, "бот" в личку, и др. пакость, бот высылает на страничку своей группы предупреждение
4) Боты получившие информацию реагируют согласно настройкам. Дисконнект на время, или полный отрубон, или АФК или еще че-нить.
Теперь небольшие пояснения. Группы - это чтобы поршивая овца (ГМ сервера) не попала в стадо. Группы - это чтобы для разных серверов свои сообщества.
В итоге получается как в жизни животных. Беззащитные рыбки ходят большими косяками, чтобы хищнику было тяжело их поймать.
В мире РО группа из 50 нубоботеров с такой системой оповещения значительно продлит себе жизнь.
На днях тестово будет поднят Web сервис для группового оповещения ботов.
Смысл сервиса следующий:
1) Группа друзей/знакомых ботоводов регистрируют на веб сайте аккаунт и устанавливают ботам спец плагин.
2) Переодически плагин лазиет на странчку группы в поисках нехороших новостей от друзей
3) В случае нежелаемых ситуаций т.к. бан, тюрьма, "бот" в личку, и др. пакость, бот высылает на страничку своей группы предупреждение
4) Боты получившие информацию реагируют согласно настройкам. Дисконнект на время, или полный отрубон, или АФК или еще че-нить.
Теперь небольшие пояснения. Группы - это чтобы поршивая овца (ГМ сервера) не попала в стадо. Группы - это чтобы для разных серверов свои сообщества.
В итоге получается как в жизни животных. Беззащитные рыбки ходят большими косяками, чтобы хищнику было тяжело их поймать.
В мире РО группа из 50 нубоботеров с такой системой оповещения значительно продлит себе жизнь.
Ребят, решение под ногами валяется а вы в дебри...
Что нам надо:
Независимая от сервера среда для общения между группой ботов. Желательна возможность установки удаленного сервера этой "среды".
Решение:
IRC . Где-то я видел плагин управления ботом через IRC, если его немного почикать до "публичного" состояния (чтоб он стал не для управления ботом через irc,а для оповещения), то мы получим отличную среду с кучей дполнительных возможностей. +Всегда можно поднять свою ирку на локалхосте.
Чем вам не bus ?
Что нам надо:
Независимая от сервера среда для общения между группой ботов. Желательна возможность установки удаленного сервера этой "среды".
Решение:
IRC . Где-то я видел плагин управления ботом через IRC, если его немного почикать до "публичного" состояния (чтоб он стал не для управления ботом через irc,а для оповещения), то мы получим отличную среду с кучей дполнительных возможностей. +Всегда можно поднять свою ирку на локалхосте.
Чем вам не bus ?