4epT
27.11.2009, 13:18
плагин предназначен для смены lockMap по таймауту
В конфиг пишется:
lockMap (map name) {
x
y
randX
randY
timeout (время в секундах пребывания на этой карте, "0" или "пустое значение" - вечно)
config (список параметров и значений конфига для этой карты)
}
Пример1:
lockMap geffen {
timeout 1000
}
lockMap payon {
}
Сначало бот будет в Geffen на 1000 секунд, а потом пойдёт в Payon. Т.к. для Payon не указано значение timeout, то бот там и останется.
Пример2:
lockMap geffen {
timeout 1000
}
lockMap payon {
timeout 1000
}
В этом примере бот будет менять локации каждые 1000 секунд. Таких блоков можно указать сколько угодно.
Пример3:
lockMap geffen {
timeout 1000
config teleportAuto minAggressives 10, sellAuto_npc geffen_in 302 24
}
В этом примере показано как правильно сипользовать параметр "config"
# licensed under gpl by joseph
# http://bibian.ath.cx/openkore/viewtopic.php?t=9784
package lockMap;
use strict;
use Globals;
use Utils qw(timeOut);
use Log qw(message);
Plugins::register('lockMap', 'lockMap_#', \&on_unload);
my $hooks = Plugins::addHooks(
['AI_pre', \&ai_hook, undef]
);
sub on_unload {
Plugins::delHooks($hooks);
}
our $lockMap = {};
sub ai_hook {
if ($config{lockMap_0} && timeOut($lockMap)) {
nextMap();
}
}
sub nextMap {
$lockMap->{pos}++;
$lockMap->{pos} = 0 if (!$config{"lockMap_$lockMap->{pos}"});
my $pos = $lockMap->{pos};
message "Switching lockMap to slot $pos: ".$config{"lockMap_$pos"}."\n";
$lockMap->{time} = time;
$lockMap->{timeout} = $config{"lockMap_$pos"."_timeout"};
$lockMap->{timeout} ||= 99999999999; # forever
$config{lockMap} = $config{"lockMap_$pos"};
$config{lockMap_x} = $config{"lockMap_$pos"."_x"};
$config{lockMap_y} = $config{"lockMap_$pos"."_y"};
$config{lockMap_randX} = $config{"lockMap_$pos"."_randX"};
$config{lockMap_randY} = $config{"lockMap_$pos"."_randY"};
if ($config{"lockMap_$pos"."_config"}) {
my @list = split(/ *,+ */, $config{"lockMap_$pos"."_config"});
my ($opt,$val);
foreach my $item (@list) {
($opt,$val) = $item =~ /(\S+) (.*)/;
$config{$opt} = $val;
message "[lockMap] Changed $opt to $val\n";
}
}
}
1;
В конфиг пишется:
lockMap (map name) {
x
y
randX
randY
timeout (время в секундах пребывания на этой карте, "0" или "пустое значение" - вечно)
config (список параметров и значений конфига для этой карты)
}
Пример1:
lockMap geffen {
timeout 1000
}
lockMap payon {
}
Сначало бот будет в Geffen на 1000 секунд, а потом пойдёт в Payon. Т.к. для Payon не указано значение timeout, то бот там и останется.
Пример2:
lockMap geffen {
timeout 1000
}
lockMap payon {
timeout 1000
}
В этом примере бот будет менять локации каждые 1000 секунд. Таких блоков можно указать сколько угодно.
Пример3:
lockMap geffen {
timeout 1000
config teleportAuto minAggressives 10, sellAuto_npc geffen_in 302 24
}
В этом примере показано как правильно сипользовать параметр "config"
# licensed under gpl by joseph
# http://bibian.ath.cx/openkore/viewtopic.php?t=9784
package lockMap;
use strict;
use Globals;
use Utils qw(timeOut);
use Log qw(message);
Plugins::register('lockMap', 'lockMap_#', \&on_unload);
my $hooks = Plugins::addHooks(
['AI_pre', \&ai_hook, undef]
);
sub on_unload {
Plugins::delHooks($hooks);
}
our $lockMap = {};
sub ai_hook {
if ($config{lockMap_0} && timeOut($lockMap)) {
nextMap();
}
}
sub nextMap {
$lockMap->{pos}++;
$lockMap->{pos} = 0 if (!$config{"lockMap_$lockMap->{pos}"});
my $pos = $lockMap->{pos};
message "Switching lockMap to slot $pos: ".$config{"lockMap_$pos"}."\n";
$lockMap->{time} = time;
$lockMap->{timeout} = $config{"lockMap_$pos"."_timeout"};
$lockMap->{timeout} ||= 99999999999; # forever
$config{lockMap} = $config{"lockMap_$pos"};
$config{lockMap_x} = $config{"lockMap_$pos"."_x"};
$config{lockMap_y} = $config{"lockMap_$pos"."_y"};
$config{lockMap_randX} = $config{"lockMap_$pos"."_randX"};
$config{lockMap_randY} = $config{"lockMap_$pos"."_randY"};
if ($config{"lockMap_$pos"."_config"}) {
my @list = split(/ *,+ */, $config{"lockMap_$pos"."_config"});
my ($opt,$val);
foreach my $item (@list) {
($opt,$val) = $item =~ /(\S+) (.*)/;
$config{$opt} = $val;
message "[lockMap] Changed $opt to $val\n";
}
}
}
1;