Code: Select all
automacro sayconfHP1 {
hp >= 55%
sp >= 25%
run-once 1
exclusive 1
call {
do p confHP1
}
}
#automacro sayconfHP3 {
hp >= 55%, sp <= 25%
run-once 1
exclusive 1
call {
do p confHP2
}
}
automacro sayconfHP2 {
hp <= 35%, sp <= 19%
run-once 1
exclusive 1
call {
do p confHP2
}
}
automacro sayconfHP4 {
hp <= 55%, sp >= 25%
run-once 1
exclusive 1
call {
do p confHP2
}
}
automacro confHP1 {
party /confHP1/
exclusive 1
run-once 1
set setting Magmaring
set attack 2
call HP
}
automacro confHP2 {
party /confHP2/
exclusive 1
run-once 1
set setting Magmaring
set attack 0
call HP
}
macro HP {
#Getting the value of the $setting monster name Ex: $setting $exist1 $exist2 $exist3
$exist1 = @eval (defined Misc::mon_control("$setting")?Misc::mon_control("$setting")->{attack_auto}:"None")
log Old Values are $setting $exist1 $exist2 $exist3
log Changing the values to $setting $attack
do eval Misc::mon_control("$::Macro::Data::varStack{setting}")->{attack_auto} = $attack
log Writting mon_control.txt with new values
rewrite() # see the sub-routine function below
log Reloading mon_control.txt
do reload mon_control
$exist1 = @eval (defined Misc::mon_control("$setting")?Misc::mon_control("$setting")->{attack_auto}:"None")
log New mon_control.txt Setting: $setting $exist1
log Macro done
#if $teleport = 0 ; means the Higher automacro HP is currently triggered
#if $teleport = 2 ; means the Lower automacro HP is currently triggered
if ($attack > 2) goto releaseHighHp
:releaseLowHp
release confHP1
stop
:releaseHighHp
release confHP2
stop
}
sub rewrite {
my $monster = Misc::mon_control("$::Macro::Data::varStack{setting}");
my @lines = ();
if (open(FILE, "<:utf8", Settings::getControlFilename("mon_control.txt"))) {
while (<FILE>) {
s/\x{FEFF}//g; chomp;
if (/^#/ || /^\n/ || /^\r/) {
push @lines,$_;
next
}
/^(\d+|([a-zA-Z' ]+)*) -?\d/;
if ("$::Macro::Data::varStack{setting}" eq $1 && defined $monster) {
$_ = $1; s/\s+$//;
push @lines,$_ . " $monster->{attack_auto} $monster->{teleport_auto} $monster->{teleport_search} $monster->{attack_lvl} $monster->{attack_jlvl} $monster->{attack_hp} $monster->{attack_sp} $monster->{weight}"
}
else {push @lines,$_}
}
close FILE
}
open(FILE, ">:utf8", Settings::getControlFilename("mon_control.txt"));
print FILE join "\n", @lines;
close FILE;
}