homunculusFeeder.pl

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

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

Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

homunculusFeeder.pl

Сообщение Kissa2k »

Написал небольшой плагин, который кормит хомункулуса (быстрый набор интимаси).
Также он проверят, есть ли у вас в инвентаре нужная еда для него.
В критических случаях делает Rest, чтобы уберечь вашего хомункулуса от голодной смерти :(.
Возможно позже добавлю проверку еды в телеге.

Тестированно на OpenKore 1.9.4 SVN и последней eAthena.
Никаких изменений в config.txt делать не нужно.

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

#Homunculus feeding plugin
#Just put in your plugins folder

package homunculusFeeder;

use strict;
use Globals;
use Plugins;
use Log qw(debug message warning error);
use Utils;
use Misc;
use Skill;
use Commands;
use Network;
use Network::Send;
use AI;
use Task;
use Task::UseSkill;
use Task::ErrorReport;

Plugins::register('HomunculusFeeder', 'Plugin for automatic homunculus feeding', \&Unload);

my $hook = Plugins::addHooks(
                                ['AI_pre', \&main]
);

our $homunculus;

sub Unload {
        Plugins::delHooks($hook);
}

sub main {
		return if (!$char->{homunculus} || ($char->{homunculus}{state} & 2) || ($char->{homunculus}{state} & 4));
		my $homunculusJob = $char->{homunculus}{jobID};
		my $food;
		if($homunculusJob == 6001 || $homunculusJob == 6005 || $homunculusJob == 6009 || $homunculusJob == 6013){
			$food ="Pet Food"; #Мы имеем дело с Lif
		}elsif($homunculusJob == 6002 || $homunculusJob == 6006  || $homunculusJob == 6010 || $homunculusJob == 6014){
			$food="Zargon"; #Мы имеем дело с Amistr
		}elsif($homunculusJob == 6003 || $homunculusJob == 6007 || $homunculusJob == 6011 || $homunculusJob == 6015){
			$food="Garlet"; #Мы имеем дело с  Filir
		}elsif($homunculusJob == 6004 || $homunculusJob == 6008 || $homunculusJob == 6012 || $homunculusJob == 6016){
			$food="Scell"; #Это Vanilmirth
		}
		if(
				$char->{homunculus}
				&& !inInventory($food)
				&& $char->{homunculus}{hunger} <= 12
				&& !($char->{homunculus}{state} & 2)
				&& !($char->{homunculus}{state} & 4)
				&& timeOut($homunculus{lastRest}, 5)
		){
						my $rest = Skill->new(auto => 'AM_REST');
						my $skillTask = new Task::UseSkill(
						target => $char,
						skill => $rest,
						priority => Task::HIGH_PRIORITY
						);
						my $task = new Task::ErrorReport(task => $skillTask);
						$taskManager->add($task);
						$homunculus{lastRest} = time;
		}
		
        if (
				!($char->{homunculus}{state} & 2)
				&& !($char->{homunculus}{state} & 4)
				&& $char->{homunculus}{hunger} <= 12
				&& inInventory($food)
				&& timeOut($homunculus{lastFeed}, 5)
		){
                        $homunculus{lastFeed} = time;
                        message "Time to feed your Homunculus!\n";
                        $messageSender->sendHomunculusFeed();
						message "Now your intimacy is $char->{homunculus}{intimacy}!\n";
		}       
}

return 1;
Вложения
homunculusFeeder.zip
homunculusFeeder.pl
(981 байт) 458 скачиваний
maxsus
Энтузиаст
Сообщения: 62
Зарегистрирован: Вс ноя 19, 2006 3:28 am

Сообщение maxsus »

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

 # ============================================
# homunFeed v.1.0.0
# ============================================
# by azCies
# config add
#
# homun_Feed 1
# homun_Hunger #
#
# special thank Capion (Homun Support's plugin)
# =============================================

package HomunFeed;

use strict;
use Globals;
use Plugins;
use Log qw(debug message warning error);
use Utils;
use Commands;
use Network;
use Network::Send;
use AI;

Plugins::register('HomunFeed', 'Homun Feed plugins by azCies', \&onUnload);

my $hooks = Plugins::addHooks(
                                ['Command_post', \&onCommandPost],
                                ['AI_pre', \&onHomunFeed]
);

our $homunculus;

sub onUnload {
        Plugins::delHooks($hooks);
}

sub onCommandPost {
        my (undef, $args) = @_;
        my ($cmd, $subcmd) = split(' ', $args->{input}, 2);

        if ($cmd eq "homunculus") {
                if ($subcmd eq "") {      
                
                message "------ Homunculus -------\n", "list";
                message "Name: $char->{'homunculus'}{'name'}\n";
                message "Level: $char->{'homunculus'}{'level'}\n";
                message "hungly: $char->{'homunculus'}{'hunger'}\n";
                message "Friendly: $char->{homunculus}{intimacy}\n";
                message "-------------------------\n", "list";

                } elsif ($subcmd eq "feed") {
                        message "------ Feeding -------\n", "list";
                        message "Hungly: $char->{'homunculus'}{'hunger'}\n";
                        message "Friendly: $char->{homunculus}{intimacy}\n";
                        message "----------------------\n", "list";          
                        my $msg = pack("C*", 0x2D, 0x02, 0x00, 0x00, 0x01);
                        $messageSender->sendToServer($msg);
                        message "Homunculus feeding\n", "list";
          } else {
                        error "Syntax Error in function 'homun' (homun management)\n" .
                                "Usage: homunculus < feed >\n";
                }
                $args->{return} = 1;
        }
}

sub onHomunFeed {
        if ($config{homun_Feed}) {
                if ($char->{homunculus}{hunger} < $::config{'homun_Hunger'}&& timeOut($homunculus{lastFeed}, 5)) {
                        $homunculus{lastFeed} = time;
                        message "------ Feeding -------\n", "list";
                        message "Hungly: $char->{'homunculus'}{'hunger'}\n";
                        message "Friendly: $char->{homunculus}{intimacy}\n";
                        message "----------------------\n", "list";          
                        my $msg = pack("C*", 0x2D, 0x02, 0x00, 0x00, 0x01);
                        $messageSender->sendToServer($msg);
                        message "Homunculus feeding\n", "list";
                }
        }       
}

return 1; 
Есть вот такой плагин...я нерублю в скриптах=/ Сори за дубль..

Люди помогите сделать чтоб он кармил гома на час тобишь - интемаси равно 15 он его кормит 6 раз..и на каждый раз была задержка в секунду...Оф лагучий псц..

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

Не все же люди экстрималы=) я люблю ботить акуратно=)


В том плаге что я выложил, вроде он кормит отправкой пакета о кормлении"my $msg = pack("C*", 0x2D, 0x02, 0x00, 0x00, 0x01);" может ее дублировать как то.....

В зарание пасибо! :oops:
megabotovod
Энтузиаст
Сообщения: 55
Зарегистрирован: Чт мар 13, 2008 3:37 pm

Сообщение megabotovod »

В конфиге закоментил все что связано с гомой,добавил плагин в папку с плагинами, но столкнулся с такой проблемой, бот гому вообще не кормит, а когда наступает 12 голода пишет вот это: Код:

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

Your Homunculus was vaporized! 
You use Rest on yourself : Lv 1
Что делать, подскажите?
П.С. Еда 100% есть в инвенте, сначала тоже подумал что нету, проверил--есть!

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

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

......
-- Non-Usable --
0    Scell x 621                                          
......                        
......
Your Homunculus was recalled!
Your Homunculus was vaporized!
You use Rest on yourself : Lv 1
......
Вот.
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

megabotovod
Такс, а класс хомункулуса какой?
Вообще лучше пользоваться встроенной кормилкой в ОК, этот плагин стоит использовать если нужно выключить AI..
megabotovod
Энтузиаст
Сообщения: 55
Зарегистрирован: Чт мар 13, 2008 3:37 pm

Сообщение megabotovod »

Класс ванилька.
Можно поподробней по поводу встроенной кормилки ОК?

Добавлено спустя 57 секунд:

И не будет ли опять проблем с дисконнектом,если им пользоваться?
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Сообщение Kissa2k »

По поводу встроенной кормилки - смотри директивы, начинающиеся с префикса homunculus_ в control/config.txt
megabotovod писал(а):Класс ванилька...
Нужно тестить, сложно с ходу сказать чем это может быть вызвано. Если это того стоит, то в свободное время можно проверить это.. :oops:
megabotovod
Энтузиаст
Сообщения: 55
Зарегистрирован: Чт мар 13, 2008 3:37 pm

Сообщение megabotovod »

Kissa2k писал(а):По поводу встроенной кормилки - смотри директивы, начинающиеся с префикса homunculus_ в control/config.txt
Да, но ведь в той теме где я изначально писал, указали, что надо убрать все связанное с гомой из конфига, т.к. дисконнектит когда гома атачит?

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

Короче, плагин удалил, а в конфиг добавил

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

homunculus_intimacyMax 999
homunculus_intimacyMin 911
homunculus_hungerTimeoutMax 60
homunculus_hungerTimeoutMin 10
homunculus_autoFeed 1
homunculus_autoFeedAllowedMaps
homunculus_hungerMin 13
homunculus_hungerMax 15
Пока кормит, буду следить дальше.
megabotovod
Энтузиаст
Сообщения: 55
Зарегистрирован: Чт мар 13, 2008 3:37 pm

Сообщение megabotovod »

В общем убрал из плагина проверку на наличие еды и все, связанное с $rest, и все заработало!
Аватара пользователя
wxBotowod
Грамотный
Сообщения: 228
Зарегистрирован: Пт ноя 07, 2008 4:13 pm
Сервер RO:: laggame
Контактная информация:

Re:

Сообщение wxBotowod »

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

homunculus_intimacyMax 999
homunculus_intimacyMin 911
homunculus_hungerTimeoutMax 60
homunculus_hungerTimeoutMin 10
homunculus_autoFeed 1
homunculus_autoFeedAllowedMaps
homunculus_hungerMin 13
homunculus_hungerMax 15
Насчет этого вопрос. А оно будет работать в Хкор 1 на ручном управлении? Просто я хочу свой аи из клиента использовать. Или тогда придется использовать плагин?
Изображение
ВасильевСаша
Новичок
Сообщения: 9
Зарегистрирован: Сб апр 04, 2009 12:23 pm
Сервер RO:: ZeniRO

Re:

Сообщение ВасильевСаша »

megabotovod писал(а):В общем убрал из плагина проверку на наличие еды и все, связанное с $rest, и все заработало!
А можно выложить этот плагин, модифицированный.
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Re: homunculusFeeder.pl

Сообщение Kissa2k »

Последняя версия ОК может самостоятельно кормить вашего хомункулуса, этот плагин уже давно бесполезен
Аватара пользователя
xgoowix
Новичок
Сообщения: 9
Зарегистрирован: Пн фев 16, 2009 7:47 pm
Сервер RO:: Raggame
Откуда: Санк-Петербур

Re: homunculusFeeder.pl

Сообщение xgoowix »

Народ а я чёто непонимаю как сделать чтобы он кормил помогите пожалуйста!!!
Ответить