plugin [ICQ Commander]|камандим ботом через аську!

Дополнения к OpenKore, расширяющиее её функциональность, называются плагинами.

Модератор: 4epT

varg
Начинающий
Сообщения: 35
Зарегистрирован: Вс ноя 19, 2006 9:33 pm

plugin [ICQ Commander]|камандим ботом через аську!

Сообщение varg »

фсем превед )
это дубль пост, ветка на офф сайте http://forums.openkore.com/viewtopic.php?t=34973

ну как видно из названия, этот плагин для общения с ботом по средствам ICQ протокола.


Это мой первый плугин, скажу больше..
это мой первый скрипт на perl;)
так что "Hello world";)
и не сильно ругайте за баги :)

Этот плугин базируется на 2х вещах
1) Plugin "[IRC/DCC Commander]" http://forums.openkore.com/viewtopic.php?t=7134
2) perl module Net-ICQ2000-0.2.2

Код: Выделить всё

# in config.txt file add:
#    ICQ_uin 654321            # - bot uin
#    ICQ_pass mY_s1cret_Pa$$   # - bot icq password
#    ICQ_start 1               # - If you wish to receive the message when the bot has entered online
#    ICQ_admin 123456          # - admin icq

наслаждайтесь ;)

tested openKore openkore-2.0.4

Known bugs
- плугин не может передать аське большой ответ от бота, например при использовании команды "help",
может ктонить поможет разбить строку ответа от бота на несколько частей (засунуть в массив??? O_o) DONE
+add 19/10/2007
-вылетает при попытке отослать на аську русские имена - DONE


P.S. Раггейм - ПРЕВЕД "Гг Y"
Update 19/10/2007
эммм а почему diff нельзя выкладывать О_о ?
Вложения
20071019_my_icq.diff.txt
различия
(3.69 КБ) 427 скачиваний
my_icq.tar.gz
structure:
plugins
|-icq.pl
|-ICQ2000_Easy.pm
|-[Net]
__|-ICQ2000.pm
(19.33 КБ) 461 скачивание
Последний раз редактировалось varg Пт окт 19, 2007 7:44 pm, всего редактировалось 3 раза.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Куясе, аська на перле, прикольно! :)
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
jack_spa
Грамотный
Сообщения: 330
Зарегистрирован: Чт июл 26, 2007 11:12 am
Откуда: Crimean Sea

Сообщение jack_spa »

Мои поздравления,и огромное спасибо за энтузиазм ;)
[url=irc://irc.openkore.com:6667/openkore-ru]Its your destiny,join us! © Wanted[/url]
Antarx
Бывалый
Сообщения: 640
Зарегистрирован: Вс янв 07, 2007 5:56 am

Сообщение Antarx »

угу, плагин рулит ;) Осталось самую малость доработать (исправить вышеназванный баг), и им можно будет полноценно пользоваться. ИМХО, довольно удобно
Превосходство некоторых людей над окружающими одни считают несправедливостью, требующей уравнивания, другие - неполноценностью недовольных.
Выбор взгляда за Вами...
Изображение :)
zeleboba

Сообщение zeleboba »

:) Для квипа бы еще, было бы просто замечательно
Аватара пользователя
jack_spa
Грамотный
Сообщения: 330
Зарегистрирован: Чт июл 26, 2007 11:12 am
Откуда: Crimean Sea

Сообщение jack_spa »

zeleboba писал(а)::) Для квипа бы еще, было бы просто замечательно
QIP - аналог клиента ICQ протокола.
varg
Начинающий
Сообщения: 35
Зарегистрирован: Вс ноя 19, 2006 9:33 pm

Сообщение varg »

спасибо за отзывы, :) знач работа проделана не зря ;)
zeleboba писал(а)::) Для квипа бы еще, было бы просто замечательно
вобщето он и разрабатывался на квип инфиум, и тестировался на нём же
(FOR DEVELOP)
.... просто OSCAR как среда не подходит. т.к. в кипе никогда не бывает онлайн, а данный модуль в кипе висит в нормальном онлайн статусе ...
to do:
- исправить баг с длинными сообщениями (очень сильно нужна помощ людей знающих перл)
- переадресация в ICQ при получении PM сообщения
- оповещение при "сдохнувшем" боте
- более полный консольный лист (like openKore "you atackmonster poring .... dmg - miss ")
- поиск предметов из БД (для Базы данных продавцов)
Аватара пользователя
jack_spa
Грамотный
Сообщения: 330
Зарегистрирован: Чт июл 26, 2007 11:12 am
Откуда: Crimean Sea

Сообщение jack_spa »

А приаттач ОК на котором юзаешь,а то у меня что-то эррорит.
[url=irc://irc.openkore.com:6667/openkore-ru]Its your destiny,join us! © Wanted[/url]
varg
Начинающий
Сообщения: 35
Зарегистрирован: Вс ноя 19, 2006 9:33 pm

Сообщение varg »

использую на
http://forums.openkore.com/viewtopic.php?t=34529
только брал из SVNа OK2.0.4, OS FreeBSD, perl 5.8.8...
ПС. эррор в ПМ или в топик ...
при тесте на винде, билд который вылоден на этом форуме (1.9.4) вывалилось сообщение что нехватает Time/Local.pm
Аватара пользователя
jack_spa
Грамотный
Сообщения: 330
Зарегистрирован: Чт июл 26, 2007 11:12 am
Откуда: Crimean Sea

Сообщение jack_spa »

OpenKore version 2.0.4 (SVN version)
Network state = 5
Network handler = Network::DirectConnection
SVN revision: unknown
Loaded plugins:
plugins/icq.pl (icqCommander)

Error message:
Can't locate Net/ICQ2000.pm in @INC at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/ICQ2000_Easy.pm line 38.
BEGIN failed--compilation aborted at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/ICQ2000_Easy.pm line 38.
Compilation failed in require at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/plugins/icq.pl line 61.

Stack trace:
Can't locate Net/ICQ2000.pm in @INC at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/ICQ2000_Easy.pm line 38.
BEGIN failed--compilation aborted at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/ICQ2000_Easy.pm line 38.
Compilation failed in require at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/plugins/icq.pl line 61.
at perlapp.pl line 1431
PerlApp::my_require('ICQ2000_Easy.pm') called at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/plugins/icq.pl line 61
icqCommander::mainAI called at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/plugins/icq.pl line 38
icqCommander::init('AI_pre', 'undef', 'undef') called at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/src/Plugins.pm line 414
Plugins::callHook('AI_pre') called at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/src/AI/CoreLogic.pm line 111
AI::CoreLogic::iterate() called at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/src/functions.pl line 593
main::mainLoop_initialized() called at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/src/functions.pl line 69
main::mainLoop() called at C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/src/Interface.pm line 75
Interface::mainLoop('Interface::Console::Win32=HASH(0x2bcbf28)') called at openkore.pl line 96
main::__start() called at start.pl line 125

Died at this line:

* require 'ICQ2000_Easy.pm';
$icq = Net::ICQ2000_Easy->new($icq_uin, $icq_passw,"1");
[url=irc://irc.openkore.com:6667/openkore-ru]Its your destiny,join us! © Wanted[/url]
varg
Начинающий
Сообщения: 35
Зарегистрирован: Вс ноя 19, 2006 9:33 pm

Сообщение varg »

вылечиваицц0
1)download perl http://www.activestate.com/store/activeperl/download/ and install it
2)push button "Start"->"run"-> type "cmd" + enter
3) type "ppm-shell" or "cd you_install_perl_dir/bin/"+enter, type ppm-shell.bat
4)in promt like "ppm>" type install Time-Locate

Код: Выделить всё

C:\Documents and Settings\xxx>cd /
C:\>cd Perl/bin/
C:\Perl\bin>ppm-shell.bat
ppm 4.01
Copyright (C) 2007 ActiveState Software Inc.  All rights reserved.
ppm> install Time-Local
Downloading ActiveState Package Repository packlist...done
Updating ActiveState Package Repository database...done
Syncing site PPM database with .packlists...done
No missing packages to install
5) after install in you bot dir? finde openkore.pl
6) edit you openkore pl, find line "use lib "$RealBin/src";" and add after "use lib "C:/path_to_install_perl/lib/";"

Код: Выделить всё

package main;
use strict;
use FindBin qw($RealBin);
use lib "$RealBin";
use lib "$RealBin/src";
use lib "$RealBin/src/deps";


[b]use lib "C:/Perl/lib/";[/b]



use Time::HiRes qw(time usleep);
.......
Enjoy )))))

Добавлено спустя 1 минуту 39 секунд:

а куда ты положил папку Net ?
она должна лежать в директории с плугинами

Добавлено спустя 2 минуты 25 секунд:

даже не так,
она должна лежать в директории с
ICQ2000_Easy.pm

если у тебя это файл лежит в
C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/
то тудаже подожи папу Net
C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/Net/ICQ2000.pm

Добавлено спустя 3 минуты 25 секунд:

но по хорошему (я в верху писал структуру)всё должно вынлядить так
для твоего случая

Код: Выделить всё

C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/plugins/icq.pl
C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/plugins/ICQ2000_Easy.pm
C:/Ragnarok/openkore-2.0.4-win32/openkore-2.0.4/plugins/Net/ICQ2000.pm
Аватара пользователя
jack_spa
Грамотный
Сообщения: 330
Зарегистрирован: Чт июл 26, 2007 11:12 am
Откуда: Crimean Sea

Сообщение jack_spa »

Разложил всё в плагинс,и вот

Код: Выделить всё

OpenKore version 2.0.4 (SVN version)
Network state = 5
Network handler = Network::DirectConnection
SVN revision: unknown
Loaded plugins:
  plugins/icq.pl (icqCommander)

Error message:
Can't locate ICQ2000_Easy.pm in @INC at C:/openkore-2.0.4/plugins/icq.pl line 61.

Stack trace:
Can't locate ICQ2000_Easy.pm in @INC at C:/openkore-2.0.4/plugins/icq.pl line 61.
 at perlapp.pl line 1431
	PerlApp::my_require('ICQ2000_Easy.pm') called at C:/openkore-2.0.4/plugins/icq.pl line 61
	icqCommander::mainAI called at C:/openkore-2.0.4/plugins/icq.pl line 38
	icqCommander::init('AI_pre', 'undef', 'undef') called at C:/openkore-2.0.4/src/Plugins.pm line 414
	Plugins::callHook('AI_pre') called at C:/openkore-2.0.4/src/AI/CoreLogic.pm line 111
	AI::CoreLogic::iterate() called at C:/openkore-2.0.4/src/functions.pl line 593
	main::mainLoop_initialized() called at C:/openkore-2.0.4/src/functions.pl line 69
	main::mainLoop() called at C:/openkore-2.0.4/src/Interface.pm line 75
	Interface::mainLoop('Interface::Console::Win32=HASH(0x2b6ac38)') called at openkore.pl line 96
	main::__start() called at start.pl line 125

Died at this line:
     
* require 'ICQ2000_Easy.pm';
  $icq = Net::ICQ2000_Easy->new($icq_uin, $icq_passw,"1");
Добавлено спустя 27 секунд:

А ставить перл... :o
Подругому никак?:)

Добавлено спустя 2 минуты 8 секунд:

а вот ещё из под Wx на другой версии

Код: Выделить всё

OpenKore version 2.0.1
Network state = 5
Network handler = Network::DirectConnection
Loaded plugins:
  plugins/icq.pl (icqCommander)

Error message:
Can't locate ICQ2000_Easy.pm in @INC at C:/Ragnarok/openkore-wx-2.0.1/openkore-2.0.1/plugins/icq.pl line 61.

Stack trace:
Can't locate ICQ2000_Easy.pm in @INC at C:/Ragnarok/openkore-wx-2.0.1/openkore-2.0.1/src/Interface/Wx.pm line 109
	Interface::Wx::mainLoop('Interface::Wx=HASH(0x2712ff8)') called at openkore.pl line 96
	main::__start() called at start.pl line 119

Died at this line:
     
* require 'ICQ2000_Easy.pm';
  $icq = Net::ICQ2000_Easy->new($icq_uin, $icq_passw,"1");
[url=irc://irc.openkore.com:6667/openkore-ru]Its your destiny,join us! © Wanted[/url]
varg
Начинающий
Сообщения: 35
Зарегистрирован: Вс ноя 19, 2006 9:33 pm

Сообщение varg »

скажи, где у тебя находится файл ICQ2000_Easy.pm ?
Аватара пользователя
jack_spa
Грамотный
Сообщения: 330
Зарегистрирован: Чт июл 26, 2007 11:12 am
Откуда: Crimean Sea

Сообщение jack_spa »

Всё лежит в плагинс.
[url=irc://irc.openkore.com:6667/openkore-ru]Its your destiny,join us! © Wanted[/url]
varg
Начинающий
Сообщения: 35
Зарегистрирован: Вс ноя 19, 2006 9:33 pm

Сообщение varg »

только что скачал сборку OpenKore v1.9.4 beta SVN5704,
из этого viewtopic.php?t=2 топика,
подрубил плугин - старт нормальный :)
А ставить перл...
ставить перл если выпадает с сообщением

Код: Выделить всё

Can't locate Time/Local.pm in @INC at
Ответить