Ботом запустить бота / плагин Launch

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

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

Lims
Нууууп
Сообщения: 723
Зарегистрирован: Чт ноя 09, 2006 7:55 pm

Ботом запустить бота / плагин Launch

Сообщение Lims »

Добрый день
Появилась необходимость запустить из одного бота другого бота. Как это можно сделать? Например срабатывает макрос и бот запускает другого бота. Хочу сделать прохождение квеста на найта, но на 40джобе он еще слишком мал чтобы бить лут на квест и я хочу чтобы он запускал другого бота и брал у него нужный лут на квест.

[mod="piroJOKE"]благодаря тому, что афтар Kissa2k сбацал полезный плагин "лаунч" (см. ниже) тема стала полезной![/mod]

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

Сообщение jack_spa »

Думаю,через eval
4epT писал(а):В принципе эта команда оценивает выражение Perl
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Написал небольшой примитивный плагин, умеющий запускать приложения.
Что он делает? Он регистрирует команду launch <путь_к_бинарнику>. С ее помощью происходит запуск указанного приложения.
Можно работать с ней при помощи Macro плагина или doCommand плагина.
Чуть позже немного изменю его для более удобного использования.
Протестировано: MS Windows XP, Ubuntu Linux 7.10.
Известные баги: в пути к исполняемому файлу не должно быть кириллицы, иначе он не запуститься.

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

#appLauncher
#Usage: launch < patch >. Where < patch > is a patch to your application
#By Kissa2k

package appLauncher;
use strict;
use Globals;
use Plugins;
use Log qw(debug message warning error);
use Commands;
use Utils;

Plugins::register('appLauncher', 'Launch MS Windows/Unix applications.', \&Unload, \&Unload);

my $hook = Commands::register(

    ['launch','Launch MS Windows/Unix applications.',\&launch]

);

sub Unload {
	Commands::unregister($hook);

}

sub launch {
   my (undef, $args) = @_;
   my @args = split(/ /, $args);
   if($args[0]){
		launchApp(1, $args[0]);
		message "Launching $args[0]\n";
	}else{
		message("Syntax Error in function 'launch'\nUsage: launch < patch >\nWhere < patch > is a patch to your application.\n","info"); 
	}
}

return 1; 
Вложения
appLauncher.pl.zip
AppLauncher for OpenKore
(563 байт) 228 скачиваний
Последний раз редактировалось Kissa2k Вс дек 23, 2007 1:53 pm, всего редактировалось 10 раз.
Lims
Нууууп
Сообщения: 723
Зарегистрирован: Чт ноя 09, 2006 7:55 pm

Сообщение Lims »

Kissa2k
Спасибо большое!

[mod="piroJOKE"]присоединяюсь! отличная работа![/mod]
dimmka
Энтузиаст
Сообщения: 87
Зарегистрирован: Вс ноя 19, 2006 12:40 pm

Сообщение dimmka »

у меня получается полный бред при запуске одним ботом другого. Бот который запускает каким то образом подставляет свой конфиг в запускаемый и получается Dual login prohibited (это если запускать в wxstart другого. Если же вызывать start.exe, он открывается в окне бота, который его вызвал((( :( )
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Даже если то, что ты говоришь - правда (надо проверить), почему бы тебе не запускать bat-файл, а не прямо exe-шник, ы?
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

или cmd файл под виндой, start.exe переименовать в какой-нибудь astart.exe, а в cmd указанать:
@echo off
start c:\blablabla\astart.exe
?


___

(pJ: на всякий случай напомню - в соседней теме пишут, что не получится переименовать wxstart.exe, но со start.exe всё в порядке)
Rumata
Грамотный
Сообщения: 235
Зарегистрирован: Ср фев 14, 2007 10:52 am

Сообщение Rumata »

dimmka писал(а):у меня получается полный бред при запуске одним ботом другого. Бот который запускает каким то образом подставляет свой конфиг в запускаемый и получается Dual login prohibited (это если запускать в wxstart другого. Если же вызывать start.exe, он открывается в окне бота, который его вызвал((( :( )
истинная правда, сам давно уже все start.exe запускаю батниками при использовании этого плагина, если одинаковые имена у запустившегося и запускаемого, то это плаг игнорит путь, и перезапускается запустившийся :) извиняюсь за тавтологию :)
KALEXI
Новичок
Сообщения: 7
Зарегистрирован: Пт дек 01, 2006 1:39 pm

Не хочет запускать стороннее приложение ((

Сообщение KALEXI »

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

control\macros.txt

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

# macro
package appLauncher;
use strict;
use Globals;
use Plugins;
use Log qw(debug message warning error);
use Commands;
use Utils;

Plugins::register('appLauncher', 'Launch MS Windows/Unix applications.', \&Unload, \&Unload);

my $hook = Commands::register(

    ['launch','Launch MS Windows/Unix applications.',\&launch]

);

sub Unload {
   Commands::unregister($hook);

}

sub launch {
   my (undef, $args) = @_;
   my @args = split(/ /, $args);
   if($args[0]){
      launchApp(1, $args[0]);
      message "Launching $args[0]\n";
   }else{
      message("Syntax Error in function 'launch'\nUsage: launch < patch >\nWhere < patch > is a patch to your application.\n","info");
   }
}

return 1;
control\config.txt

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

alertSound - {
	eventList private chat
	notInTown 0
	inLockOnly 0
	play D:\RO\BOT\sounds\phone.wav
	Macro launch D:\RO\BOT\BotMail.exe
}
Пишет это и отказывается запускать:

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

...
[Jun 13 17:27:12 2008.84] Loading control\macros.txt...
[Jun 13 17:27:12 2008.96] control\macros.txt: ignoring ');' (munch, munch, strange food)
[Jun 13 17:27:12 2008.99] control\macros.txt: ignoring line 'sub Unload {' (munch, munch, strange block)
[Jun 13 17:27:13 2008.11] control\macros.txt: ignoring line 'sub launch {' (munch, munch, strange block)
[Jun 13 17:27:13 2008.33] control\macros.txt: ignoring '}' (munch, munch, strange food)
[Jun 13 17:27:13 2008.87] [macro] hooking to AI_pre
...
Сохраняю в UTF-8. Первая строчка закоментирована.
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

Прочитай в документации как правильно использовать плагины (если коротко, то плагин нужно помещать в директорию plugins в корне OK.).
Ответить