Code: Select all
automacro itemempty {
inventory "Apple" < 3
exclusive 1
run-once 1
set setting Glove
set flag 1
call item
}
automacro itemfull {
inventory "Apple" > 29
exclusive 1
run-once 1
set setting Glove
set pickup 0
call item
}
macro item {
#Getting the value of the $setting item name Ex: $setting $exist1
$exist1 = @eval (defined Misc::pickupitems("$setting")?Misc::pickupitems("$setting")->{pickup}:"None")
log Old Values are $setting $exist1
log Changing the values to $setting $pickup
do eval Misc::pickupitems("$::Macro::Data::varStack{setting}")->{flag} = $flag
log Writting pickupitems.txt with new values
rewrite() # see the sub-routine function below
log Reloading pickupitems.txt
do reload pickupitems
$exist1 = @eval (defined Misc::pickupitems("$setting")?Misc::pickupitems("$setting")->{pickup}:"None")
log New pickupitems.txt Setting: $setting $exist1
log Macro done
#if $teleport = 0 ; means the Higher automacro HP is currently triggered <-this part was from the original macro
#if $teleport = 2 ; means the Lower automacro HP is currently triggered <-this part was from the original macro
if ($pickup = 1) goto releaseitemempty
:releaseitemempty
release itemempty
stop
:releaseitemfull
release itemfull
stop
}
sub rewrite {
my $item = Misc::pickupitems("$::Macro::Data::varStack{setting}");
my @lines = ();
if (open(FILE, "<:utf8", Settings::getControlFilename("pickupitems.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 $item) {
$_ = $1; s/\s+$//;
push @lines,$_ . " $item->{pickup}"
}
else {push @lines,$_}
}
close FILE
}
open(FILE, ">:utf8", Settings::getControlFilename("pickupitems.txt"));
print FILE join "\n", @lines;
close FILE;
}