Полезный плагин для поиска у торгашей за определенную цену
Модератор: 4epT
-
- Грамотный
- Сообщения: 221
- Зарегистрирован: Чт дек 07, 2006 8:43 pm
- Откуда: Бирмингем, ул. Бр.Грим....
Полезный плагин для поиска у торгашей за определенную цену
Полезный плагин если надо что-то купить за определенную цену, ищет шмотки по параметрам, цена и нужное колличество:
Сам плагин:
package shopper;
#
# This plugin is licensed under the GNU GPL
# Copyright 2006 by kaliwanagan
# --------------------------------------------------
#
use strict;
use Plugins;
use Globals;
use Log qw(message warning error debug);
use AI;
use Misc;
use Network;
use Network::Send;
Plugins::register('shopper', 'automatically buy items from merchant vendors', \&Unload);
my $AI_pre = Plugins::addHook('AI_pre', \&AI_pre);
my $encounter = Plugins::addHook('packet_vender', \&encounter);
my $storeList = Plugins::addHook('packet_vender_store', \&storeList);
my @vendorList;
sub Unload {
Plugins::delHook('AI_pre', $AI_pre);
Plugins::delHook('packet_vender', $encounter);
Plugins::delHook('packet_vender_store', $storeList);
}
my $delay = 1;
my $time = time;
sub AI_pre {
if (AI::is('checkShop') && main::timeOut($time, $delay)) {
my $vendorID = AI::args->{vendorID};
$messageSender->sendEnteringVender($vendorID);
AI::dequeue;
}
$time = time;
}
# we encounter a vend shop
sub encounter {
my ($packet, $args) = @_;
my $ID = $args->{ID};
# don't check the same store twice
# FIXME: clear the vendor list from time to time or else
# it will get very large
#foreach my $vendorID (@vendorList) {
# return if ($ID == $vendorID);
#}
#push (@vendorList, $ID);
AI::queue('checkShop', {vendorID => $ID});
}
# we're currently inside a store if we receive this packet
sub storeList {
my ($packet, $args) = @_;
my $venderID = $args->{venderID};
my $price = $args->{price};
my $name = $args->{name};
my $number = $args->{number};
my $amount = $args->{amount};
my $prefix = "shopper_";
my $i = 0;
while (exists $config{$prefix.$i}) {
my $maxPrice = $config{$prefix.$i."_maxPrice"};
my $maxAmount = $config{$prefix.$i."_maxAmount"};
my $invIndex = main::findIndexString_lc($char->{'inventory'}, "name", $config{$prefix.$i});
my $item = $char->{'inventory'}[$invIndex];
if (main::checkSelfCondition($prefix.$i) &&
($price <= $maxPrice) &&
(lc($name) eq lc($config{$prefix.$i}))
)
{
message "$name found!!! Buying it for $price (max price: $maxPrice).\n";
$messageSender->sendBuyVender($venderID, $number, $maxAmount);
configModify($prefix.$i."_disabled", 1);
}
$i++;
}
}
return 1;
Пример использования:
shopper Elunium{
maxPrice 500000
maxAmount 120
disabled 0
}
Если кора найдет магаз меньше чем с 120 Эликами
--------------------------- Vender: Kore Masta (0) ----------------------------
# Name Type Amount Price
Elunium found!!! Buying it for 10000 (max price: 500000).
Config 'shopper_0_disabled' set to 1 (was 0)
2 Elunium Non-usable 119 10,000z
-------------------------------------------------------------------------------
Failed to buy 119 of item #2 from vender (unknown code 4).
Если найдет больше чем со 120 то ккупит
--------------------------- Vender: Kore Masta (0) ----------------------------
# Name Type Amount Price
Elunium found!!! Buying it for 10000 (max price: 500000).
Config 'shopper_0_disabled' set to 1 (was 0)
2 Elunium Non-usable 148 10,000z
-------------------------------------------------------------------------------
You lost 1,200,000 zeny.
Item added to inventory: Elunium (0) x 120 - Non-usable
Сам плагин:
package shopper;
#
# This plugin is licensed under the GNU GPL
# Copyright 2006 by kaliwanagan
# --------------------------------------------------
#
use strict;
use Plugins;
use Globals;
use Log qw(message warning error debug);
use AI;
use Misc;
use Network;
use Network::Send;
Plugins::register('shopper', 'automatically buy items from merchant vendors', \&Unload);
my $AI_pre = Plugins::addHook('AI_pre', \&AI_pre);
my $encounter = Plugins::addHook('packet_vender', \&encounter);
my $storeList = Plugins::addHook('packet_vender_store', \&storeList);
my @vendorList;
sub Unload {
Plugins::delHook('AI_pre', $AI_pre);
Plugins::delHook('packet_vender', $encounter);
Plugins::delHook('packet_vender_store', $storeList);
}
my $delay = 1;
my $time = time;
sub AI_pre {
if (AI::is('checkShop') && main::timeOut($time, $delay)) {
my $vendorID = AI::args->{vendorID};
$messageSender->sendEnteringVender($vendorID);
AI::dequeue;
}
$time = time;
}
# we encounter a vend shop
sub encounter {
my ($packet, $args) = @_;
my $ID = $args->{ID};
# don't check the same store twice
# FIXME: clear the vendor list from time to time or else
# it will get very large
#foreach my $vendorID (@vendorList) {
# return if ($ID == $vendorID);
#}
#push (@vendorList, $ID);
AI::queue('checkShop', {vendorID => $ID});
}
# we're currently inside a store if we receive this packet
sub storeList {
my ($packet, $args) = @_;
my $venderID = $args->{venderID};
my $price = $args->{price};
my $name = $args->{name};
my $number = $args->{number};
my $amount = $args->{amount};
my $prefix = "shopper_";
my $i = 0;
while (exists $config{$prefix.$i}) {
my $maxPrice = $config{$prefix.$i."_maxPrice"};
my $maxAmount = $config{$prefix.$i."_maxAmount"};
my $invIndex = main::findIndexString_lc($char->{'inventory'}, "name", $config{$prefix.$i});
my $item = $char->{'inventory'}[$invIndex];
if (main::checkSelfCondition($prefix.$i) &&
($price <= $maxPrice) &&
(lc($name) eq lc($config{$prefix.$i}))
)
{
message "$name found!!! Buying it for $price (max price: $maxPrice).\n";
$messageSender->sendBuyVender($venderID, $number, $maxAmount);
configModify($prefix.$i."_disabled", 1);
}
$i++;
}
}
return 1;
Пример использования:
shopper Elunium{
maxPrice 500000
maxAmount 120
disabled 0
}
Если кора найдет магаз меньше чем с 120 Эликами
--------------------------- Vender: Kore Masta (0) ----------------------------
# Name Type Amount Price
Elunium found!!! Buying it for 10000 (max price: 500000).
Config 'shopper_0_disabled' set to 1 (was 0)
2 Elunium Non-usable 119 10,000z
-------------------------------------------------------------------------------
Failed to buy 119 of item #2 from vender (unknown code 4).
Если найдет больше чем со 120 то ккупит
--------------------------- Vender: Kore Masta (0) ----------------------------
# Name Type Amount Price
Elunium found!!! Buying it for 10000 (max price: 500000).
Config 'shopper_0_disabled' set to 1 (was 0)
2 Elunium Non-usable 148 10,000z
-------------------------------------------------------------------------------
You lost 1,200,000 zeny.
Item added to inventory: Elunium (0) x 120 - Non-usable
-
- Грамотный
- Сообщения: 221
- Зарегистрирован: Чт дек 07, 2006 8:43 pm
- Откуда: Бирмингем, ул. Бр.Грим....
Вот ссылка http://forums.openkore.com/viewtopic.ph ... 54&start=0
Antarx
Бот ходит с помощью макроса.
Пробовал этот плагин давно. Что-то не очень понравился. Проще уж или по базе товар найти или на скупку сесть.
Antarx
Бот ходит с помощью макроса.
Пробовал этот плагин давно. Что-то не очень понравился. Проще уж или по базе товар найти или на скупку сесть.
Хм, с тех пор как появились базы вроде prontera.ru, думаю стоит написать другой плагин, который скажем раз в 5-10 минут проверят нужную вещь по базе и если находит её, то выцепляет координаты торговца и бежит покупать ^_^
Прошу прощения, решил поробовать данный плаги но не могу разобратся почему не работает.
необходимо чтобы бот скупал необходимый хим лут а именно тряпки.
в конфиге:
shopper Fabric {
maxPrice 1401
maxAmount 1
}
если верить мануалу то он должен скупать если больше 1й тряпки с ценой меньше 1401 зени или я чегото не понимаю?
при таких настройках покупает 1 тряпку и все=)
если поставить maxAmount 1 более то выдает ошибку
я так понимаю что сдесь не встроено покупка всего что есть в шопе если есть возможность подправте............
необходимо чтобы бот скупал необходимый хим лут а именно тряпки.
в конфиге:
shopper Fabric {
maxPrice 1401
maxAmount 1
}
если верить мануалу то он должен скупать если больше 1й тряпки с ценой меньше 1401 зени или я чегото не понимаю?
при таких настройках покупает 1 тряпку и все=)
если поставить maxAmount 1 более то выдает ошибку
я так понимаю что сдесь не встроено покупка всего что есть в шопе если есть возможность подправте............
настроино чтобы в инвентаре было 8к требуемого лута и помещал еще в тележку
тоесть тут я не думаю что в этм проблема
Добавлено спустя 58 минут 2 секунды:
maxAmount
работает немого не коректно если пишишь 1 то покупает только одну вещь и все, это удобно если допусти карту какуюнить купить а если необходимо купить много, плюс нет возможности поставить флаг покупать все пока есть деньги
А также больная прозьба разьясните как работает флаг:
Config 'shopper_0_disabled'
тоесть тут я не думаю что в этм проблема
Добавлено спустя 58 минут 2 секунды:
maxAmount
работает немого не коректно если пишишь 1 то покупает только одну вещь и все, это удобно если допусти карту какуюнить купить а если необходимо купить много, плюс нет возможности поставить флаг покупать все пока есть деньги
А также больная прозьба разьясните как работает флаг:
Config 'shopper_0_disabled'
Fabric found!!! Buying it for 1500 (max price: 1501).
Config 'shopper_0_disabled' set to 1 (was )
Failed to buy 580 of item #6 from vender (unknown code 4).
Добавлено спустя 1 минуту 36 секунд:
может я не правельно настраиваю как мне заставить бота скупать допустим бесконечное количество лута меньше определенной цены, что нужно добавлять в конфиг?
Config 'shopper_0_disabled' set to 1 (was )
Failed to buy 580 of item #6 from vender (unknown code 4).
Добавлено спустя 1 минуту 36 секунд:
может я не правельно настраиваю как мне заставить бота скупать допустим бесконечное количество лута меньше определенной цены, что нужно добавлять в конфиг?
-
- Новичок
- Сообщения: 8
- Зарегистрирован: Ср апр 09, 2008 2:54 pm
Re: Полезный плагин для поиска у торгашей за определенную цену
А как сделать так, чтобы он просто ходил и записывал цены? Ничерта в макросах не понимаю (