PDA

Просмотр полной версии : пьяный шаг


Dima
27.10.2007, 22:42
как его сделать присту чтобы он не только держался своей цели но както отличался от бота)

4epT
28.10.2007, 12:56
Dima, а ты эту идею где видел?? Вот там и почитай ;)

Ну если покопаться то для бота 1.9.4(SVN5704), нада а файл src\Task\Route.pm добавить:

$self->{new_x} = $self->{solution}[$self->{index}]{x};
$self->{new_y} = $self->{solution}[$self->{index}]{y};

################################################## #############
# Drinked walking
# by Click and kLabMouse
################################################## #############
# Config options:
# # Enable drinked randowm walking
# route_randomWalk_drinked 1
# # How much beers bot allready drinked
# route_randomWalk_how_much_drinked 3
################################################## #############
if (($config{route_randomWalk_drinked})&&($stepsleft > 2)&&(!AI::inQueue("ai_follow","ai_partyfollow","ai_items_take","ai_skillUse","ai_skillUse2","attack","gather","sit","stand","take"))) {
my $pjanostj = $config{route_randomWalk_how_much_drinked};
my @rectBlock = calcRectArea2($self->{new_x}, $self->{new_y}, $pjanostj, 0);
my $blockCount = scalar(@rectBlock);
my $loopCount = 0;
my $new_pos;
do {
$new_pos = $rectBlock[int(rand($blockCount))];
$loopCount++;
} while ((!$field->isWalkable($new_pos->{x}, $new_pos->{y})
|| !checkLineWalkable($pos, $new_pos))
&& ($blockCount > $loopCount));

$self->{new_x} = $new_pos->{x};
$self->{new_y} = $new_pos->{y};
}
################################################## #############
# Drinked walking end
################################################## #############

# But first, check whether the distance of the next point isn't abnormally large.
# If it is, then we've moved to an unexpected place. This could be caused by auto-attack,
# for example.
my %nextPos = (x => $self->{new_x}, y => $self->{new_y});


Эти строчки добавить в конфиг:
route_randomWalk_drinked 1
route_randomWalk_how_much_drinked 3
рекомендуемые значения route_randomWalk_how_much_drinked 2 или 3

PS: В идеале "$stepsleft > 1", но сильно увеличивается пляска вокруг моба, поэтому рекомендую 2 или 3.

KillMe
15.03.2008, 15:27
ЧЕрт выложи свой пм фаил плиз;) а то у мну не фига не получается :(

vitt
15.03.2008, 19:26
Это исправление для версии бота 194. С более новыми не работает.

4epT
15.03.2008, 19:58
KillMe, ксто сказал что я этим пользуюсь?

bloom
15.03.2008, 21:14
Вобщем. У меня версия последняя вроде ОК, 206SVN6212. Пьяный шаг делал с помощью этой темы (http://rofan.ru/viewtopic.php?t=415), с рофана. Работает :) Тебе нужен архив Priest_0_0_2.zip, но если ты тупо скопируешь и поставишь на последнюю версию ОК - ничего рабоатать не будет. т.к. там под СВН 6095. А будет после того, как ты ручками используя follow_patch_0_0_1.diff, сам всё не изменишь. Вобщем довольно непростая была для меня процедура, так как я нуп в этом деле. Надеюсь тебе это поможет :)