Plan to walk in lock map !
Moderator: Moderators
Re: Plan to walk in lock map !
eee.... i noob in plugin those thg... so conclusion how to active the planWalk.pl, CoreLogic.pm and the planWalk.txt??
can someone send me pls... i see wat u all say n i try test but cant... pls help me... thanks
can someone send me pls... i see wat u all say n i try test but cant... pls help me... thanks
Re: Plan to walk in lock map !
Which one plugin you use ? planLockMapWalk.pl or planWalk.pl ?crazydoy wrote:eee.... i noob in plugin those thg... so conclusion how to active the planWalk.pl, CoreLogic.pm and the planWalk.txt??
can someone send me pls... i see wat u all say n i try test but cant... pls help me... thanks
If you use the "planLockMapWalk.pl" !
PS : "planLockMapWalk.pl" is the better one !
But, using the "planLockMapWalk.pl", You firstly have to modify the CoreLogic.pm program file.
If you use the "planLockMapWalk.pl", did you add the following setting in config.txt ?
Code: Select all
autoPlanLockMapWalk 1
planWalk_file planwalk.txt
planWalk_maxRouteTime 300
Code: Select all
# planLockMapWalk by Snoopy
package planLockMapWalk;
use strict;
#use warnings;
use Time::HiRes qw(time);
use Globals;
use Utils;
use Misc;
use AI;
use Log qw(debug message warning error);
use Translation;
#use encoding 'utf8';
my $nSpot = 0;
my $planMap = "";
my $cfID;
my $planwalk_file = "";
my @points = ();
Plugins::register('planLockMapWalk', 'Auto Plan to walk.', \&on_unload, \&on_reload);
my $hooks = Plugins::addHooks(
['configModify', \&on_configModify, undef],
['start3', \&on_start3, undef],
['postloadfiles', \&on_loadfiles, undef],
['pref_RandomWalk', \&pref_planWalk, undef],
['post_RandomWalk', \&post_planWalk, undef]
);
my $chooks = Commands::register(
['planwalk', "Plan Lock Map Walk plugin", \&commandHandler]
);
sub on_unload {
Plugins::delHooks($hooks);
}
sub on_reload {
message "planLockMapWalk plugin reloading\n";
Plugins::delHooks($hooks);
&on_start3
}
sub on_configModify {
my (undef, $args) = @_;
if ($args->{key} eq 'planWalk_file') {
$planwalk_file = $args->{val};
Settings::removeFile($cfID);
$cfID = Settings::addControlFile($planwalk_file, loader => [ \&parsePlanWalk, undef]);
Settings::loadByHandle($cfID);
} elsif ($args->{key} eq 'lockMap') {
if ($planMap ne $args->{val}) {
$planMap = $args->{val};
$nSpot = 0;
# message T("..... change lockMap...\n");
Settings::loadByHandle($cfID);
}
}
}
sub on_start3 {
&checkFile;
Settings::removeFile($cfID) if ($cfID);
$cfID = Settings::addControlFile($planwalk_file, loader => [ \&parsePlanWalk]);
Settings::loadByHandle($cfID);
}
sub on_loadfiles {
if ($char && ($planMap ne $config{lockMap} || $planwalk_file ne $config{planWalk_file})) {
# message TF("1. %s : %s , 2. %s : %s\n", $planMap, $config{lockMap}, $planwalk_file, $config{planWalk_file});
$planMap = $config{lockMap};
$planwalk_file = (defined $config{planWalk_file})? $config{planWalk_file} : "planwalk.txt";
Settings::removeFile($cfID) if ($cfID);
$cfID = Settings::addControlFile($planwalk_file, loader => [ \&parsePlanWalk]);
Settings::loadByHandle($cfID);
}
}
# checks planwalk file
sub checkFile {
$planMap = $config{lockMap};
$planwalk_file = (defined $config{planWalk_file})? $config{planWalk_file} : "planwalk.txt";
}
# onFile(Re)load
sub parsePlanWalk {
my $file = shift;
# message TF("The plak walk on %s in file: %s\n", $planMap, $file);
my $flag1 = 0;
@points = ();
if (-e $file && $planMap) {
# if (-e $file) {
open my $fp, "<:utf8", $file;
while (<$fp>) {
$. == 1 && s/^\x{FEFF}//; # utf bom
s/(.*)[\s\t]+#.*$/$1/; # remove last comments
s/^\s*#.*$//; # remove comments
s/^\s*//; # remove leading whitespaces
s/\s*[\r\n]?$//g; # remove trailing whitespaces and eol
s/ +/ /g; # trim down spaces - very cool for user's string data?
next unless ($_);
if (/^\[(.+)\]$/) {
$flag1 = ($1 eq $planMap) ? 1 : 0;
# $flag1 = ($1 eq $config{lockMap}) ? 1 : 0;
} elsif ($flag1) {
if (/^(\d+):(\d+)$/) {
push @points, {'xPos' => $1, 'yPos' => $2};
}
}
}
# foreach my $pp (@points) {
# message TF("Point : %s, %s\n", $pp->{xPos}, $pp->{yPos});
# }
}
}
sub pref_planWalk {
return if (!$config{autoPlanLockMapWalk} || $config{lockMap} ne $field->baseName);
my (undef, $args) = @_;
my $ret = 1;
my $maxRouteTime = $config{planWalk_maxRouteTime} ? $config{planWalk_maxRouteTime} :
($config{route_randomWalk_maxRouteTime} ? $config{route_randomWalk_maxRouteTime} : 120);
$nSpot = @points - 1 if ($nSpot >= @points);
if ($nSpot >= 0) {
my ($to_x, $to_y);
$to_x = $points[$nSpot]->{xPos};
$to_y = $points[$nSpot]->{yPos};
if ($to_x eq "" || $to_y eq "") {
error T("Empty coordinates setting for planLockMapWalk; planLockMapWalk disabled\n");
$config{autoPlanLockMapWalk} = '0';
} elsif ($field->isWalkable($to_x, $to_y)) {
AI::clear(qw/move route mapRoute/);
message TF("Do plan walking route to: %s: %s, %s\n", $field->descString(), $to_x, $to_y), "route";
main::ai_route($field->baseName, $to_x, $to_y,
maxRouteTime => $maxRouteTime,
attackOnRoute => 2,
noMapRoute => ($config{route_randomWalk} == 2 ? 1 : 0));
$ret = 0;
} else {
error TF("Invalid coordinates specified (%d, %d) for planLockMapWalk (coordinates are unwalkable); planLockMapWalk disabled\n", $to_x, $to_y);
$config{autoPlanLockMapWalk} = '0';
}
$nSpot++;
$nSpot = 0 if ($nSpot >= @points);
}
$args->{return} = $ret;
}
sub post_planWalk {
}
sub commandHandler {
message TF("The Plan Lock Map is : %s (Step: %d)\n", ($planMap) ? $planMap : "???", $nSpot - 1);
message TF("The configuration file is : %s \n", ($planwalk_file) ? $planwalk_file : "???");
for(my $i = 0 ; $i < @points ; $i++) {
message TF("Walk Point(%d) : %s, %s\n", $i, $points[$i]->{xPos}, $points[$i]->{yPos});
}
}
1;
Re: Plan to walk in lock map !
would macro help? i never tried the sitting feature of the bot since there never was a need for any of my characters to sit..sofax222 wrote:There is a problem for running of WayPoint plugin.
That is, the "sit" console command will be blocked !
Because in running of WayPoint, there always is an ai task "waypoint" in the ai queue !
Re: Plan to walk in lock map !
May be macro could help ! I don't know !crowser wrote:would macro help? i never tried the sitting feature of the bot since there never was a need for any of my characters to sit..sofax222 wrote:There is a problem for running of WayPoint plugin.
That is, the "sit" console command will be blocked !
Because in running of WayPoint, there always is an ai task "waypoint" in the ai queue !
Sometime, I need to pause the bot by "sit", such as manual reviving HP/SP.
Re: Plan to walk in lock map !
this is how i did it with only 2 small macro
macro maps {
$i = 0
$map = <maps>
$xpos = 10, 20, 30, 40, 50, 60 , 70, 80, 90, 100, stop
$ypos = 10, 20, 30, 40, 50, 60 , 70, 80, 90, 100
call route
}
macro route {
if ($xpos != stop) goto increment
$i = 1
:increment
$i++
log moving to $map @arg("$xpos",$i) @arg("$ypos",$i)
do eval ai_route($.map,@arg("$xpos",$i),@arg("$ypos",$i), attackOnRoute => 2)
call route
}
Problems are that i can't run other macro because macro route is looping. I am looking for a more elegant solution and i thing this topic will help me ^^
macro maps {
$i = 0
$map = <maps>
$xpos = 10, 20, 30, 40, 50, 60 , 70, 80, 90, 100, stop
$ypos = 10, 20, 30, 40, 50, 60 , 70, 80, 90, 100
call route
}
macro route {
if ($xpos != stop) goto increment
$i = 1
:increment
$i++
log moving to $map @arg("$xpos",$i) @arg("$ypos",$i)
do eval ai_route($.map,@arg("$xpos",$i),@arg("$ypos",$i), attackOnRoute => 2)
call route
}
Problems are that i can't run other macro because macro route is looping. I am looking for a more elegant solution and i thing this topic will help me ^^
Re: Plan to walk in lock map !
Did you try the "planLockMapWalk" plugin ?Oligo21 wrote:this is how i did it with only 2 small macro
macro maps {
$i = 0
$map = <maps>
$xpos = 10, 20, 30, 40, 50, 60 , 70, 80, 90, 100, stop
$ypos = 10, 20, 30, 40, 50, 60 , 70, 80, 90, 100
call route
}
macro route {
if ($xpos != stop) goto increment
$i = 1
:increment
$i++
log moving to $map @arg("$xpos",$i) @arg("$ypos",$i)
do eval ai_route($.map,@arg("$xpos",$i),@arg("$ypos",$i), attackOnRoute => 2)
call route
}
Problems are that i can't run other macro because macro route is looping. I am looking for a more elegant solution and i thing this topic will help me ^^
Re: Plan to walk in lock map !
i was use this plugin
but does not work at all
its still random route
but does not work at all
its still random route
Re: Plan to walk in lock map !
Did you modify the src/AI/CoreLogic.pm file ??Dzar wrote:i was use this plugin
but does not work at all
its still random route
Re: Plan to walk in lock map !
sofax222 wrote:Did you modify the src/AI/CoreLogic.pm file ??Dzar wrote:i was use this plugin
but does not work at all
its still random route
ok nvm
its work to me
i see the plan walk must have a - g plan walk
cos before that i just only use 4 plan walk
Re: Plan to walk in lock map !
I keep getting the message:
Variable "%field" is not imported at src/AI/CoreLogic.pm line xxxx.
Global symbol "%field" requires explicit package name at src/AI/CoreLogic.pm line xxxx.
I already have the plugin.
I already have planwalk.txt with coordinates in config folder.
I have put the necessary block in config.txt
and I already copied over the Random Walk block in CoreLogic.pm
What am I doing wrong?
Variable "%field" is not imported at src/AI/CoreLogic.pm line xxxx.
Global symbol "%field" requires explicit package name at src/AI/CoreLogic.pm line xxxx.
I already have the plugin.
I already have planwalk.txt with coordinates in config folder.
I have put the necessary block in config.txt
and I already copied over the Random Walk block in CoreLogic.pm
What am I doing wrong?