покупка у мерчей (прим: покуп расходн,создание и продаж ОББ)
Модератор: 4epT
покупка у мерчей (прим: покуп расходн,создание и продаж ОББ)
нету.
Последний раз редактировалось antigony Сб сен 20, 2008 8:45 pm, всего редактировалось 25 раз.
Не удалось решить проблему корректирования списка покупки при добавлении из файла... нужно чтобы добавлял не макросом, а из плагина на основе содержимого инвентаря и карта..
Тогда можно спокойно будет в файл autobuy.txt добавлять все что нужно.
Вопрос я этот тут ставил. но прождав тучу времени просто удалил. Потому что сразу через несколько дней цены на обб упали на 10-15к, в просто гиганском количестве появились на рынке, а никто так и не отписался, не помог...одни личеры словом, количество просмотров темы было больше 300...
--------------------------------------------------------------------------------
еще добавлял скупку у конкурентов, и прочие прелести...
как то, делал свой список базы, в котором отслеживал изменения цен на нужные мне вещи. чтобы корректировать вовремя...
но это уже сами думайте.
Тогда можно спокойно будет в файл autobuy.txt добавлять все что нужно.
Вопрос я этот тут ставил. но прождав тучу времени просто удалил. Потому что сразу через несколько дней цены на обб упали на 10-15к, в просто гиганском количестве появились на рынке, а никто так и не отписался, не помог...одни личеры словом, количество просмотров темы было больше 300...
--------------------------------------------------------------------------------
еще добавлял скупку у конкурентов, и прочие прелести...
как то, делал свой список базы, в котором отслеживал изменения цен на нужные мне вещи. чтобы корректировать вовремя...
но это уже сами думайте.
Последний раз редактировалось antigony Ср фев 28, 2007 3:28 pm, всего редактировалось 5 раз.
antigony
Исправь будь добр всё на
Исправь будь добр всё на
Код: Выделить всё
А то смайлы тыкает где не надо.
-
- Грамотный
- Сообщения: 221
- Зарегистрирован: Чт дек 07, 2006 8:43 pm
- Откуда: Бирмингем, ул. Бр.Грим....
-
- Грамотный
- Сообщения: 221
- Зарегистрирован: Чт дек 07, 2006 8:43 pm
- Откуда: Бирмингем, ул. Бр.Грим....
-
- Грамотный
- Сообщения: 221
- Зарегистрирован: Чт дек 07, 2006 8:43 pm
- Откуда: Бирмингем, ул. Бр.Грим....
Непонятно куда с форума и из сборки пропали файлы сканирования магазинов у мерчей (мне лично сильно помогают при нестабильной работе базы по мерчам), вообщем выложу тут:
и ещё;
ну и макросик:
Код: Выделить всё
package shopLog;
#Configuration for the YAMD
#location/filename to save the market log
use constant LOGPATH => "marketlog.txt";
#delay between opening each vending shop
use constant VISITDELAY => 1;
#max number of tries for retrieving the vender name
use constant MAXTRY => 10;
use strict;
use warnings;
use Globals;
use Log qw(message debug error warning);
use Network::Send;
use Settings;
use Plugins;
#use Skills;
use Utils;
use Misc;
use AI;
use Actor;
Plugins::register('shopLog', 'logs venders information to a file', \&Unload);
my $hooks = Plugins::addHooks(
['AI_pre', \&visitShop, undef],
['packet_vender', \& venderFound, undef],
['packet_vender_store2', \&dumpShop, undef],
);
my $commandsID = Commands::register(
["info", "displays number of shops visited so far", \&visitedShops],
["flush", "empties the market log information", \&emptyBuffer]
);
sub Unload {
Plugins::delHooks($hooks);
Commands::unregister($commandsID);
message "shopLog plugin unloaded\n";
}
my %VenderVisited;
my $timetovisit = time();
my $checkTry = 0;
sub dumpShop {
my $hookName = shift;
my $args = shift;
my $vender = Actor::get($args->{'venderID'});
my @venderItemList = @{$args->{'itemList'}};
if ($VenderVisited{$args->{'venderID'}}) {
return 0; #do nothing if the vender is already visitied for this run
}
else {
my $vendername = $vender->name;
my $venderlocation = "$vender->{pos_to}{x},$vender->{pos_to}{y}";
my $shopname = $venderLists{$venderID}{'title'};
#saving the vender information to the marketlog
marketLog($vendername."\n".$field{name}." (".$venderlocation.")\n".$shopname."\n");
#process the list of items in the shop
for (my $itemID = 0; $itemID < @venderItemList; $itemID++) {
if (defined $venderItemList[$itemID]) {
my ($itemName, $itemPrice, $itemAmount);
$itemName = $venderItemList[$itemID]->{name};
$itemPrice = $venderItemList[$itemID]->{price};
$itemAmount = $venderItemList[$itemID]->{amount};
#saving the item log to the marketlog
marketLog("$itemName\n$itemPrice\n$itemAmount\n");
#add the entry to PMDB - delete this line if you don't want to use PMDB
PMDB::addItemEntry($vendername, $venderlocation, $shopname, $itemName, $itemPrice, $itemAmount);
}
}
$VenderVisited{$args->{'venderID'}} = 1;
marketLog("\n");
}
}
sub venderFound {
my ($packet, $args) = @_;
my $ID = $args->{ID};
AI::queue('checkShop', {vendorID => $ID});
}
sub visitShop {
if (AI::is('checkShop') && main::timeOut($timetovisit, VISITDELAY)) {
my $venderId = AI::args->{vendorID};
my $vender = Actor::get($venderId);
my $venderName = $vender->name;
$checkTry++;
message "(".scalar(keys(%VenderVisited))." shops)[Retrieving for vender information (TRY $checkTry)]\n";
if (rindex($venderName, "Unknown #") == -1 || $checkTry == MAXTRY) {
sendEnteringVender(\$remote_socket, $venderId);
AI::dequeue;
$checkTry = 0;
}
$timetovisit = time;
}
}
sub emptyBuffer {
message "resetting the market log buffers\n";
%VenderVisited = ();
PMDB::clearDB();
resetMarketLog(time()."\n");
}
sub visitedShops {
message "you visited :".scalar(keys(%VenderVisited))." shops";
}
sub resetMarketLog {
my $logbuffer = shift;
open(F, ">".LOGPATH);
print F $logbuffer;
close(F);
}
sub marketLog {
my $logText = shift;
open(F, ">>".LOGPATH);
print F $logText;
close(F);
}
1;
Код: Выделить всё
package PMDB;
#Configuration for the PM based item DB
#you need to put
#use_pmdb 1 in config to activate this
#password to auth a user for queries - change this
use constant AUTHPASS => "CHANGETHIS";
use Log qw(message debug error warning);
use Network::Send;
use Plugins;
use Globals;
use Utils;
use Misc;
my %DBAuth;
my %itemDB;
Plugins::register('PMDB', 'PM base item search DB', \&Unload);
my $hooks = Plugins::addHooks(
['packet_privMsg', \&processPM, undef]
);
#my $commandsID = Commands::register(
#);
sub Unload {
Plugins::delHooks($hooks);
# Commands::unregister($commandsID);
message "PMDB plugin unloaded\n";
}
###########################
#functions for PM DB submodule
###########################
sub searchName {
my $searchName = shift;
my $searchResult;
foreach my $key (keys %itemDB) {
my $value = $itemDB{$key};
if(rindex(uc($key), uc($searchName)) > -1) {
my @itemFound = @{$value};
$searchResult .= "<$key>\n";
foreach(@itemFound) {
my @item = @{$_};
$searchResult .= '"'.$item[0].'" ('.$item[1].") at (".$item[2].") ".formatNumber($item[3])." EA for ".formatNumber($item[4])."z\n";
}
}
}
return $searchResult;
}
sub addItemEntry {
my $vendername = shift;
my $venderlocation = shift;
my $shopname = shift;
my $itemName = shift;
my $itemPrice = shift;
my $itemAmount = shift;
my @dbEntry = [$shopname, $vendername, $venderlocation, $itemAmount, $itemPrice];
my @itemFound = @{$itemDB{$itemName}};
my $repeated = 0;
foreach(@itemFound) {
my @item = @{$_};
if ($vendername eq $item[1]) {
$repeated = 1;
}
}
if ($repeated == 0) {
push(@{$itemDB{$itemName}}, @dbEntry);
}
}
sub processPM {
if ($config{'use_pmdb'}) {
my $hookName = shift;
my $args = shift;
my $user = $args->{'privMsgUser'};
my $msg = $args->{'privMsg'};
if($msg eq AUTHPASS) {
$DBAuth{$user} = 1;
message "chatUI : authorized ".$user." for queries!\n";
sendPM($user,"you are authorized for using itemDB");
}
elsif ($DBAuth{$user}) {
message "chatUI : authorized query accepted - processing\n";
my @args = split(/ /,$msg);
my $command = shift(@args);
if($command eq "find") {
my $itemName = join(" ", @args);
if($itemName) {
my $searchResult = searchName($itemName);
if($searchResult) {
sendPM($user,$searchResult);
}
else {
sendPM($user, "couldn't find the item");
}
}
}
else {
#do nothing for wrong command
}
}
}
else {
}
}
sub sendPM {
my $user = shift;
my $message = shift;
if ($user) {
foreach(split(/\n/,$message)) {
if ($_ ) {
sendMessage($net, "pm", $_, $user);
}
}
}
}
sub clearDB {
%itemDB = ();
}
Код: Выделить всё
automacro autoScan {
run-once 1
location prontera
call {
do move 148 182
do move 148 30
do move 163 30
do move 163 182
do quit
}
}
от РО до шестой палаты - один шаг...
Господа программисты, помогите..
сохраняет наименование, цену, количество в несколько строк.. как изменить команду, чтобы все сохранять в одну строку с табуляцией?
Код: Выделить всё
marketLog("$itemName\n$itemPrice\n$itemAmount\n");
от РО до шестой палаты - один шаг...