интересует этот плагин или ряд плагинов которые предостовляют информацию о ценах на пронтеру.
ато их ботов частенько банят, былоб неплохо иметь своего бота который оббегал торгов и предоставлял инфу по товарам примерно как на пронтере.
Если есть у когонить поделитесь или подскажите как такое осуществить. Без пронтеры совсем жить трудно )))
Плагин для prontera.ru
Модератор: 4epT
Re: Плагин для prontera.ru
пока нашол плагин на этом форуме который скуапет указаный лут, правда еще не тестил но думаю он работает.
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
как я понял это мы пихаем в папку с плагинами, а shopper Elunium{
maxPrice 500000
maxAmount 120
disabled 0
}
это пишем в конфиге в самом низу???
зы. былоб идеально если кто поделился имеено тем что узают на пронтере, так бы я им своими ботами помогал не всех баны забрали )))
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
как я понял это мы пихаем в папку с плагинами, а shopper Elunium{
maxPrice 500000
maxAmount 120
disabled 0
}
это пишем в конфиге в самом низу???
зы. былоб идеально если кто поделился имеено тем что узают на пронтере, так бы я им своими ботами помогал не всех баны забрали )))
- chuvachok
- Грамотный
- Сообщения: 320
- Зарегистрирован: Ср авг 06, 2008 12:47 pm
- Сервер RO:: iRO
- Discord: chuvachok #2811
- Откуда: г. Москва
Re: Плагин для prontera.ru
я пытался сделать подобие пронты для себя из такого плагина:
смог удалить ненужную инфу,и добавить координаты чара
пытался вот так вставить магазин:
соотвествующие строки:
добавлял сюда:
но так ничего не получилось
подскажите как добавить название и содержание магазина в этот плагин?
Код: Выделить всё
######################################################
# This plugin is licensed under the GNU GPL #
# Copyright 2005 by isieo. Modifyed by _vit #
# contact : - isieo <AT> *NOSPAM* G*MAIL <DOT> COM #
# -------------------------------------------------- #
# -------------------------------------------------- #
# playerRecord.pl #
# Records Player's name together with AIDs #
# Usefull for players to findout other players' other#
# characters... #
# #
######################################################
package playerRecord;
use strict;
use Plugins;
use Log qw(message);
use Globals;
use Settings;
Plugins::register("prec", "playerRecord", \&on_unload, \&on_reload);
my $hooks = Plugins::addHooks(
['charNameUpdate', \&write_player],
);
my $datadir = $Plugins::current_plugin_folder;
sub on_unload {
# This plugin is about to be unloaded; remove hooks
Plugins::delHook("charNameUpdate", $hooks);
}
sub on_reload {
}
sub write_player {
my $hookname = shift;
my $args = shift;
my $targetId = unpack("V1",$args->{ID});
my $targetName = $args->{name};
my $targetGuild = $args->{guild}{name};
my $maploc = $field{name};
my $targetLvl = $args->{lv};
my $targetJob = $args->job;
my $file = "$datadir/../logs/players.txt";
my ($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime();
my $year = 1900 + $yearOffset;
my $timestamp = sprintf("%02d:%02d:%02d %02d-%02d-%4d", $hour, $minute, $second, $dayOfMonth, $month, $year);
message "Player logged: ".$targetName."\n";
if ($Settings::VERSION cmp '1.9.1' >= 0) {
open FILE, ">>:utf8", $file;
} else {
open FILE, ">> $file";
}
print FILE sprintf("%d %-20s\tlvl: %2d\t class: %-18s\tguild: %-20s\t%s\t%s\n", $targetId, $targetName, $targetLvl, $targetJob, $targetGuild, $timestamp, $maploc) if ($targetName) ;
close FILE;
}
1;
пытался вот так вставить магазин:
Код: Выделить всё
my ($packet, $args) = @_; (без неё тоже пробовал)
my $venderID = $args->{venderID};
my $price = $args->{price};
my $name = $args->{name};
my $number = $args->{number};
my $amount = $args->{amount};
Код: Выделить всё
$venderID, $price, $name, $number, $amount
Код: Выделить всё
print FILE sprintf("%d %-20s\tlvl: %2d\t class: %-18s\tguild: %-20s\t%s\t%s\n", $targetId, $targetName, $targetLvl, $targetJob, $targetGuild, $timestamp, $maploc) if ($targetName) ;
![Sad :(](./images/smilies/sad.gif)
подскажите как добавить название и содержание магазина в этот плагин?
Re: Плагин для prontera.ru
хотелось бы услышать "пирожка" у них вроде была своя база по товарам или там только по чарам была?
Re: Плагин для prontera.ru
На старом форуме опенкоры был плагин от Ангела, если не изменяет память, на нем были основаны многие старые мерч базы, сам искал из-за аналогичной проблемы с пронтой, но старый форум снесли. В текущем репозитории имеется некий mercdb, но его нужно довести до ума.
Пирожок вроде забил на ро и ботоводство, сто лет его тут не видел, периодически вижу его каменты на хабрахабре, если это он.
Пирожок вроде забил на ро и ботоводство, сто лет его тут не видел, периодически вижу его каменты на хабрахабре, если это он.
- chuvachok
- Грамотный
- Сообщения: 320
- Зарегистрирован: Ср авг 06, 2008 12:47 pm
- Сервер RO:: iRO
- Discord: chuvachok #2811
- Откуда: г. Москва
Re: Плагин для prontera.ru
вот нашёл на форуме плагин и макрос для сканирования магазинов viewtopic.php?f=27&t=747&hilit=vending