PDA

Просмотр полной версии : бот-бс-лутер


Naslednik
03.11.2007, 19:19
Люди! Как заставить бота при виде лута делать скилл Greed (подбирает лут) и преспокойно идти дальше? И вообще, написано, что за поднятие чужого лута отвечает опция itemsGatherAuto, но нигде не написано какую цифру ставить (по умолчанию 2). Я поставил БСа, залез через xkore дык бот ходит мимо лута, и даже не пытается подобрать! жуть. HELP

4epT
03.11.2007, 21:33
itemsGatherAuto, но нигде не написано какую цифру ставить

Нигде, да?
а тут (http://ragbot.ru/forum/showthread.php?t=64&highlight=itemsGatherAuto) искал?
а тут (http://openkore.sourceforge.net/manual/view.php?p=config.txt)?

а ты вообще искал тему хотя бы по словосочетанию "чужой лут"??

ЗЫ: нехватает блока "itemSkill" :)

Gans
03.11.2007, 22:35
"грид" тоже не будет подымать чужой лут, пока не прошел таймаут...

Naslednik
04.11.2007, 08:55
мде. я запускал xkore. написано, что при гезер 2 поднимает, как тока видит. нихера. идет, как по бульвару, мимо лута и даже не пытается подобрать его. и насчет грида, всетаки как поднимать лут гридом а?
"грид" тоже не будет подымать чужой лут, пока не прошел таймаут...

спасибо, и сам это понимаю, вот тока дело в том, что сам я щелкаю и лут берецца, а бот даже не пытаецца.
стоит itemsTakeAuto 2 и itemsGatherAuto 2

4epT
04.11.2007, 15:10
Naslednik, гридом поднять не так просто. В самой коре нет такой опции. Нада подумать как это можно сделать с помошщью консольных команд.

Naslednik
04.11.2007, 16:20
пробувал делать грид как атак скил слот, но опять, потом он моба бьет а нах это надо? и еще на чужих мобов он не нападает.. кароч я хз.

4epT
04.11.2007, 17:58
пробувал делать грид как атак скил слот, но опять, потом он моба бьет
а ты что хотел от "атак скил слот"??

и еще на чужих мобов он не нападает
ну это естественно, чтоб не палить бота. золотое правило!

Женя
10.01.2008, 03:18
а если его заставить атаковать скилом лут? конечно бред, но просто узнать, такое возможно?

FragMent
10.01.2008, 04:27
А если как то так ?

pickupitems_skill Greed {
lvl 1
sp > 10
}

а ты знаешь что блоки в конфиге не от болды придуманы, и pickupitems_skill там точно нету!!

masterspirta
10.01.2008, 08:27
А если как то так ?

pickupitems_skill Greed {
lvl 1
sp > 10
}
исправь на анекдот...срочно!!!
нимагу смотреть
-----------------------------------
Я ж говорил, а если б подсуетился...то чорт бы тебя не отчитывал)))))

Sexy
11.01.2008, 01:20
Хм, а что если попробовать сделать так, чтобы когда БС убил моба, он кастовал скилл Greed, ну что нибудь в этом роде (в боте не ас)
Кстати, ты случайно не забыл прописать в pickupitems.txt "all 1"•••••• А то разные загоны бывают

4epT
11.01.2008, 01:38
попробуй ;)
тока не нужно говорить: "а я незнаю как"

CemperCeL
11.01.2008, 03:28
хм... а вот мона готовый и настроеный конфиг где нить сюзать?! просто так в лом искать и время уже ночь) чорт кинь ссылочку плиз,если таковая имеется,заранее блогодарен ;)

Всё что я могу дать есть на этом форуме, если влом искать значит оно тебе не нада

4epT
28.01.2008, 20:24
greedPlugin for greed people (http://forums.openkore.com/viewtopic.php?t=28564)

extezi
03.05.2010, 21:29
нельзя ли обновить ссылку,не работает уже(

4epT
05.05.2010, 11:24
к сожалению ссылка умерла вместе со старым форумом, плагин можно по спрашивать у народа тут (http://www.rofan.ru/viewtopic.php?f=8&t=4799)

4epT
07.09.2020, 04:02
Пожнял из архива (https://web.archive.org/web/20071011142404/https://forums.openkore.com/viewtopic.php?t=28564):
################################################## ########################
# This software is open source, licensed under the GNU General Public
# License, version 2.
# Basically, this means that you're allowed to modify and distribute
# this software. However, if you distribute modified versions, you MUST
# also distribute the source code.
# See http://www.gnu.org/licenses/gpl.html for the full license.
################################################## ########################

###########################
# greedPlugin V1.0.0b
#
# (c)2007 abt123
# For OpenKore 1.9.4+

package greedPlugin;

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

Plugins::register('greedPlugin', 'greedPlugin for greed people', \&onUnload);
my $hook = Plugins::addHook('AI_post', \&processTake);

sub onUnload {
Plugins::delHook($hook);
};

sub isSurroundedItemsEnough {
my $itemCounter = 0;
foreach (@itemsID) {
next unless $_;
my $item = $items{$_};
next if (pickupitems($item->{name}) eq "0" || pickupitems($item->{name}) == -1);
$itemCounter++ if (distance($item->{pos}, $char->{pos_to}) < 3);
}
return 0 if ($itemCounter < $config{surroundedItemsMin});
return 1;
}

##
# modified process take
sub processTake {
return if (!$config{greedPlugin});

##### TAKE #####

if (AI::action eq "take" && AI::args->{suspended}) {
AI::args->{ai_take_giveup}{time} += time - AI::args->{suspended};
delete AI::args->{suspended};
}

if (AI::action eq "take" && ( !$items{AI::args->{ID}} || !%{$items{AI::args->{ID}}} )) {
AI::dequeue;

} elsif (AI::action eq "take" && timeOut(AI::args->{ai_take_giveup})) {
my $item = $items{AI::args->{ID}};
message TF("Failed to take %s (%s) from (%s, %s) to (%s, %s)\n", $item->{name}, $item->{binID}, $char->{pos}{x}, $char->{pos}{y}, $item->{pos}{x}, $item->{pos}{y});
$items{AI::args->{ID}}{take_failed}++;
AI::dequeue;

} elsif (AI::action eq "take") {
my $ID = AI::args->{ID};
my $myPos = $char->{pos_to};
my $dist = distance($items{$ID}{pos}, $myPos);
my $item = $items{AI::args->{ID}};
debug "Planning to take $item->{name} ($item->{binID}), distance $dist\n", "drop";

if ($char->{sitting}) {
stand();

} elsif ($dist > 2) {
if (!$config{itemsTakeAuto_new}) {
my (%vec, %pos);
getVector(\%vec, $item->{pos}, $myPos);
moveAlongVector(\%pos, $myPos, \%vec, $dist - 1);
move($pos{x}, $pos{y});
} else {
my $pos = $item->{pos};
message TF("Routing to (%s, %s) to take %s (%s), distance %s\n", $pos->{x}, $pos->{y}, $item->{name}, $item->{binID}, $dist);
ai_route($field{name}, $pos->{x}, $pos->{y}, maxRouteDistance => $config{'attackMaxRouteDistance'});
}

} elsif (timeOut($timeout{ai_take})) {
if (isSurroundedItemsEnough) {
my $skill = Skill->new(auto => 'greed');
my $skillTask = new Task::UseSkill(
target => $char,
skill => $skill,
priority => Task::USER_PRIORITY
);
my $task = new Task::ErrorReport(task => $skillTask);
$taskManager->add($task);
} else {
my %vec;
my $direction;
getVector(\%vec, $item->{pos}, $myPos);
$direction = int(sprintf("%.0f", (360 - vectorToDegree(\%vec)) / 45)) % 8;
$messageSender->sendLook($direction, 0) if ($direction != $char->{look}{body});
$messageSender->sendTake($ID);
}
$timeout{ai_take}{time} = time;
}
}
}

return 1;

What does this plugin do?
This plugin scan for wanted items around you within 2 block radian(5x5). if number of item enough then use skill "Greed", instead of taking single item at a time. This useful when you kill looter.

How to use this thing?
1. There are 2 options for this plugin. Add them to config.txt
- greedPlugin <boolean flag> Enable/Disable plugin.
- surroundedItemsMin <num> least number of item to use skill.
2. Greed skill gather all kinds of items. so you must config pickupitems.txt to drop item that you don't want.(like a rough with auto steal)


Requirement
- OpenKore 1.9.4+
- Blacksmith/Whitesmith/Mastersmith with Greed skill.