Саг не идёт когда кастует болт-как исправить? / FreeCast?
Модератор: 4epT
Саг не идёт когда кастует болт-как исправить? / FreeCast?
У меня вопрос всё перепробовал в конфиге чтобы бот кастанул болт на моба и пошёл дальше...а когда встретил моба встал и ждал пока можно кастануть сново...незнаю как сделать Ещё 1:есть у кого ServerType 19 на посылку и приём пакетов?:roll:
Последний раз редактировалось DABASS Чт май 31, 2007 11:45 am, всего редактировалось 2 раза.
- piroJOKE
- Модератор
- Сообщения: 8205
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Флуд:
http://forums.openkore.com/viewtopic.php?t=7146 ("freeCast - experimental support for the sage skill free cast")
PS: Для справки - фрагмент из гайда для визардов:
- У нас есть правила, которые стоит соблюдать, "для общего блага".
Поэтому, фашыстов, каторые пишут заголовки типо "хелп, памагите" тут щемили и будут щемить без всякой пощады.
http://forums.openkore.com/viewtopic.php?t=7146 ("freeCast - experimental support for the sage skill free cast")
PS: Для справки - фрагмент из гайда для визардов:
Как только вы начинаете кастовать заклинание, вы не сможете двигаться до того момента, пока не закончится каст, либо пока каст не прервется. (Исключение — саги. У них есть скилл FreeCast Т_Т).
use strict;
use Plugins;
use Globals;
use Log qw(message warning error);
use AI;
use Skills;
use Misc;
use Network;
use Network::Send;
use Utils;
use Math::Trig;
my $hook1 = Plugins::addHook('AI_post', \&call);
my $ID;
my $monster;
my %timeout;
sub Unload {
Plugins::delHook('AI_post', $hook1);
}
sub call {
my $i = AI::findAction("attack");
if (defined $i) {
my $args = AI::args($i);
$ID = $args->{ID};
$monster = $monsters{$ID};
}
if (AI::action eq "skill_use") {
cast();
}
}
sub cast {
if (($config{'attackUseWeapon'}) && ($char->{skills}{SA_FREECAST}{lv}) && main::timeOut(\%timeout)){
if(Utils::distance(main::calcPosition($char), main::calcPosition($monster)) <= ($config{"attackDistance"})) {
sendAttack(\$main::remote_socket, $monster->{ID}, ($config{'tankMode'}) ? 0 : 7);
} else {
my %attackhash = getAttackCoords(main::calcPosition($monster), main::calcPosition($char), ($config{"attackDistance"} - 1));
sendMove(\$main::remote_socket, $attackhash{x}, $attackhash{y});
}
}
$timeout{time} = time;
$timeout{timeout} = 1;
}
sub getAttackCoords {
my ($obj1, $obj2, $distance) = @_;
my %attack;
if ($$obj1{x} == $$obj2{x}) {
$attack{x} = $$obj2{x};
$attack{y} = ($$obj1{y} > $$obj2{y}) ? $$obj2{y} + $distance : $$obj2{y} - $distance;
return %attack;
}
if ($$obj1{y} == $$obj2{y}) {
$attack{y} = $$obj2{y};
$attack{x} = ($$obj1{x} > $$obj2{x}) ? $$obj2{x} + $distance : $$obj2{x} - $distance;
return %attack;
}
my $ang = atan(($$obj1{y} - $$obj2{y}) / ($$obj1{x} - $$obj2{x}));
$attack{x} = ($$obj1{x} > $$obj2{x}) ? $$obj2{x} + ($distance * cos($ang)) : $$obj2{x} - ($distance * cos($ang));
$attack{y} = ($$obj1{y} > $$obj2{y}) ? $$obj2{y} + ($distance * sin($ang)) : $$obj2{y} - ($distance * sin($ang));
return %attack;
};
use Math::Trig;
sub getAttackCoords {
my ($player, $monster, $distance) = @_;
my %attack;
if (($$player{x}-$$monster{x}) == 0) {
if ($$player{y} > $$monster{y}) {$attack{y} = $$monster{y}+$distance}
else {$attack{y} = $$monster{y}-$distance};
$attack{x} = $$monster{x};
return %attack;
};
my $ang = atan(($$player{y}-$$monster{y}) / ($$player{x}-$$monster{x}));
if ($$monster{x} < $$player{x}) {$attack{x} = $$monster{x} + ($distance * cos($ang))}
else {$attack{x} = $$monster{x} - ($distance * cos($ang))}
if ($$monster{y} < $$player{y}) {$attack{y} = $$monster{y} + ($distance * sin($ang))}
else {$attack{y} = $$monster{y} - ($distance * sin($ang))};
return %attack;
};
return 1;
Смотрел по ссылке...неработает что нетак?
use Plugins;
use Globals;
use Log qw(message warning error);
use AI;
use Skills;
use Misc;
use Network;
use Network::Send;
use Utils;
use Math::Trig;
my $hook1 = Plugins::addHook('AI_post', \&call);
my $ID;
my $monster;
my %timeout;
sub Unload {
Plugins::delHook('AI_post', $hook1);
}
sub call {
my $i = AI::findAction("attack");
if (defined $i) {
my $args = AI::args($i);
$ID = $args->{ID};
$monster = $monsters{$ID};
}
if (AI::action eq "skill_use") {
cast();
}
}
sub cast {
if (($config{'attackUseWeapon'}) && ($char->{skills}{SA_FREECAST}{lv}) && main::timeOut(\%timeout)){
if(Utils::distance(main::calcPosition($char), main::calcPosition($monster)) <= ($config{"attackDistance"})) {
sendAttack(\$main::remote_socket, $monster->{ID}, ($config{'tankMode'}) ? 0 : 7);
} else {
my %attackhash = getAttackCoords(main::calcPosition($monster), main::calcPosition($char), ($config{"attackDistance"} - 1));
sendMove(\$main::remote_socket, $attackhash{x}, $attackhash{y});
}
}
$timeout{time} = time;
$timeout{timeout} = 1;
}
sub getAttackCoords {
my ($obj1, $obj2, $distance) = @_;
my %attack;
if ($$obj1{x} == $$obj2{x}) {
$attack{x} = $$obj2{x};
$attack{y} = ($$obj1{y} > $$obj2{y}) ? $$obj2{y} + $distance : $$obj2{y} - $distance;
return %attack;
}
if ($$obj1{y} == $$obj2{y}) {
$attack{y} = $$obj2{y};
$attack{x} = ($$obj1{x} > $$obj2{x}) ? $$obj2{x} + $distance : $$obj2{x} - $distance;
return %attack;
}
my $ang = atan(($$obj1{y} - $$obj2{y}) / ($$obj1{x} - $$obj2{x}));
$attack{x} = ($$obj1{x} > $$obj2{x}) ? $$obj2{x} + ($distance * cos($ang)) : $$obj2{x} - ($distance * cos($ang));
$attack{y} = ($$obj1{y} > $$obj2{y}) ? $$obj2{y} + ($distance * sin($ang)) : $$obj2{y} - ($distance * sin($ang));
return %attack;
};
use Math::Trig;
sub getAttackCoords {
my ($player, $monster, $distance) = @_;
my %attack;
if (($$player{x}-$$monster{x}) == 0) {
if ($$player{y} > $$monster{y}) {$attack{y} = $$monster{y}+$distance}
else {$attack{y} = $$monster{y}-$distance};
$attack{x} = $$monster{x};
return %attack;
};
my $ang = atan(($$player{y}-$$monster{y}) / ($$player{x}-$$monster{x}));
if ($$monster{x} < $$player{x}) {$attack{x} = $$monster{x} + ($distance * cos($ang))}
else {$attack{x} = $$monster{x} - ($distance * cos($ang))}
if ($$monster{y} < $$player{y}) {$attack{y} = $$monster{y} + ($distance * sin($ang))}
else {$attack{y} = $$monster{y} - ($distance * sin($ang))};
return %attack;
};
return 1;
Смотрел по ссылке...неработает что нетак?
- piroJOKE
- Модератор
- Сообщения: 8205
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Для порядку приложу сцылку:
viewtopic.php?t=3973 - "Эврика!!! Free Cast у сагов заработало!!" (с) AndreyLun
viewtopic.php?t=3973 - "Эврика!!! Free Cast у сагов заработало!!" (с) AndreyLun