Created
May 17, 2018 20:31
-
-
Save allanon/337c8968335c1878e159dfbe49f86412 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
!include eventMacro_quests.txt | |
macro test_wi { | |
$i = 0 | |
while ($i < 3) { | |
log $i | |
$j = 0 | |
if ($j < 3) { | |
log $i.$j + | |
} | |
if ($j > 3) { | |
log $i.$j - | |
} | |
$i++ | |
pause 0.1 | |
} | |
} | |
macro test_ww { | |
$i = 0 | |
while ($i < 3) { | |
log $i | |
$j = 0 | |
while ($j < 3) { | |
log $i.$j | |
$j++ | |
pause 0.1 | |
} | |
$i++ | |
pause 0.1 | |
} | |
} | |
macro rodex { | |
do conf debugPacket_sent 2 | |
do rodex open | |
do rodex write CharName | |
do rodex settarget CharName | |
do rodex settitle test3 | |
do rodex setbody test 3 | |
do rodex setzeny 0 | |
do rodex send | |
do conf debugPacket_sent 0 | |
} | |
automacro auto_get_bwing { | |
timeout 10 | |
InCity 1 | |
StorageOpened 1 | |
InStorage "Butterfly Wing" > 1 | |
InInventory "Butterfly Wing" < 10 | |
call { | |
[ | |
do storage get Butterfly Wing &eval( 10 - $.InInventoryLastAmount ) | |
] | |
} | |
} | |
automacro auto_quest_bounty_board_aldebaran { | |
disabled 1 | |
InCity 1 | |
InMap aldebaran | |
QuestInactive 62890, 62891, 62892, 62893, 62894 | |
call quest_bounty_board_aldebaran | |
} | |
macro quest_bounty_board_aldebaran { | |
do move 143 129 aldebaran 10 | |
do talknpc 143 129 r0 r0 r0 e | |
do talknpc 143 129 r0 r1 r0 e | |
do talknpc 143 129 r0 r2 r0 e | |
do talknpc 143 129 r0 r3 r0 e | |
do talknpc 143 129 r0 r4 r0 e | |
} | |
macro list_unidentified_inventory { | |
[ | |
$i = 0 | |
$unidentified = NONE | |
$unidentcount = 0 | |
while ($i < 100) as loop | |
$identified = @eval ( $::q = Actor::Item::get($i); (!$::q || $::q->{identified}) ? 1 : 0 ) | |
if ($identified == 0) then match | |
$unidentified = $unidentified,$i | |
$unidentcount = @eval($unidentcount + 1) | |
end match | |
$i = @eval($i + 1) | |
end loop | |
$junk = [$unidentified] | |
] | |
} | |
automacro auto_arrows_1 { | |
disabled 1 | |
ConfigKey autoArrows 1 | |
timeout 300 | |
InCity 1 | |
exclusive 1 | |
call { | |
[ | |
$follow = @config(follow) | |
do follow stop | |
do conf route_step 15 | |
do conf spread_followerWaitDist 999 | |
do conf spread_followerMoveDist 999 | |
] | |
call repair | |
$opendelay = 2 | |
call arrows_resupply | |
#do conf route_step 5 | |
if ($follow != 1) goto nofollow | |
do conf follow $follow | |
:nofollow | |
[ | |
do conf spread_followerWaitDist 10 | |
do conf spread_followerMoveDist 45 | |
] | |
} | |
} | |
automacro auto_arrows_2a { | |
disabled 1 | |
ConfigKey autoArrows 1 | |
timeout 20 | |
delay 10 | |
InInventory "Arrow" < 200 | |
InInventory "Iron Arrow" < 200 | |
InInventory "Fire Arrow" < 200 | |
InInventory "Silver Arrow" < 200 | |
InInventory "Hunting Arrow" < 200 | |
InInventory "Elven Arrow" < 200 | |
InInventory "Bullet" < 200 | |
InLockMap 1 | |
call { | |
[ | |
# This macro triggers when we're not logged in and don't have any inventory info. | |
# Don't respawn if we actually have arrows! | |
if (@invamount(Arrow) > 199) goto done | |
if (@invamount(Iron Arrow) > 199) goto done | |
if (@invamount(Fire Arrow) > 199) goto done | |
if (@invamount(Silver Arrow) > 199) goto done | |
if (@invamount(Hunting Arrow) > 199) goto done | |
if (@invamount(Elven Arrow) > 199) goto done | |
if (@invamount(Bullet) > 199) goto done | |
$reason = low arrows | |
call arrows_reload | |
stop | |
:done | |
log Already have arrows! @invamount(Arrow) @invamount(Iron Arrow) @invamount(Fire Arrow) @invamount(Silver Arrow) @invamount(Elven Arrow) @invamount(Bullet) | |
] | |
} | |
} | |
automacro auto_arrows_2b { | |
disabled 1 | |
ConfigKey autoArrows 1 | |
timeout 30 | |
InLockMap 1 | |
CharCurrentWeight > 49% | |
call { | |
$reason = high weight | |
call arrows_reload | |
} | |
} | |
macro store_all { | |
call storage_open | |
do storage add 0-1000 | |
} | |
macro storage_open { | |
[ | |
$open = &eval( $::char->storage->isReady ? 1 : 0 ) | |
if ($open == 1) stop | |
call find_kafra | |
if ($kafraidx == -1) stop | |
] | |
do move $kafrapos $kaframap $kafradist | |
do talknpc $kafrapos $kafrastor | |
[ | |
# Wait up to six seconds for storage to open. | |
$openi = 0 | |
while ($openi < 12) { | |
$open = &eval( $::char->storage->isReady ? 1 : 0 ) | |
if ($open == 1) stop | |
pause 0.5 | |
$openi = @eval($openi + 1) | |
} | |
] | |
} | |
macro save { | |
[ | |
call find_kafra | |
if ($kafraidx == -1) stop | |
] | |
do move $kafrapos $kaframap $kafradist | |
do talknpc $kafrapos $kafrasave | |
} | |
macro goto_kafra { | |
call find_kafra | |
if ($kafraidx == -1) stop | |
do move $kafrapos $kaframap $kafradist | |
#do talknpc $kafrapos $kafrastor | |
#call quest_talk_dist "$kaframap,$kafrapos,$kafradist,$kafrapos,$kafrastor" | |
} | |
sub find_kafra { | |
# The task code is loaded on demand, and might not be loaded yet. | |
require Task::CalcMapRoute; | |
my $targets = []; | |
foreach ( 0 .. 200 ) { | |
last if !exists $config{"kafra_$_"}; | |
next if $config{"kafra_${_}_disabled"}; | |
next if !$config{"kafra_${_}_map"}; | |
next if $config{"kafra_${_}_pos"} !~ /^\s*(\d+)\s+(\d+)\s*$/os; | |
push @$targets, { map => $config{"kafra_${_}_map"}, x => $1, y => $2, index => $_ }; | |
} | |
my $task = Task::CalcMapRoute->new( targets => $targets ); | |
$task->activate; | |
foreach ( 1 .. 5 ) { | |
$task->iterate if $task->getStatus < 2; | |
} | |
$task->{target}->{index} || -1; | |
} | |
macro find_kafra { | |
[ | |
# Collect a list of all kafras and calculate the closest one. | |
$kafraidx = find_kafra() | |
$kaframap = &config(kafra_$kafraidx_map) | |
$kafrapos = &config(kafra_$kafraidx_pos) | |
$kafrastor = &config(kafra_$kafraidx_storage) | |
$kafrasave = &config(kafra_$kafraidx_save) | |
$kafradist = &config(kafra_$kafraidx_dist) | |
if (a$kafrastor == a) { | |
$kafrastor = &config(kafra_defaults_0_storage) | |
} | |
if (a$kafrasave == a) { | |
$kafrasave = &config(kafra_defaults_0_save) | |
} | |
if (a$kafradist == a) { | |
$kafradist = &config(kafra_defaults_0_dist) | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment