change class in automacro condition if your char not High Priest (maybe bot cant use assumptio etc). or edit your macro plugins like this
change value of $dist if you want make it can buff/warp if char long or near distance.
if you changing 'pubm', you also need to change $msg too or bot wont buff/warp.
changing $g to your guild name list or bot wont buff/warp to your guild member.
this macros still need improvement, so dont blame if you got problem when using it.
buff available :-
asum/assum = assumptio on you/your guild member.
heal = heal on you/your guild member.
sant/santuary = santuary on you/your guild member position.
agi = increase agility on you/your guild member.
bless = blessing on you/your guild member.
ab = increase agility, blessing on you/your guild member.
buff = increase agility, blessing, assumtio and Impositio Manus on you/your guild member.
aspersio = aspersio on you/your guild member.
impo/manus = Impositio manus on you/your guild member.
ky/kyrie = kyrie eleison on you/your guild member.
warp available :-
alde/ald = warp to aldebaran castle.
sq/pron/prt = warp to prontera castle.
minting/hl/pay = warp to payon castle.
morocc/morok = warp to morocc town(if you need to go repair, ahh depent on you).
Code: Select all
automacro buffAndWarp {
pubm /(ald|alde|sq|pron|prt|minting|HL|pay|morok|morocc|asum|assum|heal|santuary|sant|ab|buff|agi|bless|manus|impo|ky|kyrie|aspersio)$/i
eval !$::storage{opened}
sp >= 70
priority 0
class High Priest, Priest, Acolyte, High Acolyte
exclusive 1
run-once 1
call checkMsg
}
macro checkMsg {
[
lock all
$i = @player ($.lastpub)
do eval foreach my $_player (@{$::playersList->getItems()}) { next if $_player->{'name'} eq ""; next if $_player->{actorType} ne "Player"; if ($_player->{binID} eq "$::Macro::Data::varStack{i}") {$::Macro::Data::varStack{dist} = sprintf("%.1f", distance($::char->{pos_to}, $_player->{pos_to})); }}
]
if ($dist > 6) goto far
[
$holy = @invamount (Holy Water)
$bg = @invamount (Blue Gemstone)
$msg = $.lastpubMsg
$pause1 = 1.5
$pause2 = 2.0
$c = $.caller
$g = @eval (exists $::players{$::playersID[$i]}->{guild} ? $::players{$::playersID[$i]}->{guild}{name} : 'null')
if (($g == Gothic || $g == Arrancar) || ($g == E m O || $g == Statik)) goto accessGranted
]
goto end
:accessGranted
[
$posx = @random ("-7", "-5", "-3", "-1", "1", "3", "5", "7")
$posy = @random ("-8", "-6", "-4", "-2", "2", "4", "6", "8")
$x = @arg ("$.pos", 1)
$y = @arg ("$.pos", 2)
$herex = @eval ($x + $posx)
$herey = @eval ($y - $posy)
$cellIsFull = 0
do eval $::Macro::Data::varStack{cellIsFull} = 0;foreach (@{$::playersList->getItems()}) { next if (($_->{pos_to}{x} != $posx) && ($_->{pos_to}{y} != $posy));$::Macro::Data::varStack{cellIsFull} = 1; last;}
if ($cellIsFull == 1) goto accessGranted
]
if (($msg == ALD || $msg == ald) || $msg == alde) goto warpAld
if (($msg == SQ || $msg == sq) || ($msg == prt || $msg == pron)) goto warpSq
if ($msg == GEF || $msg == gef) goto warpGef
if ($msg == MINTING || $msg == minting) goto warpMinting
if (($msg == MOROK || $msg == morok) || $msg == morocc) goto warpMorocc
if (($msg == HL || $msg == hl) || ($msg == pay || $msg == payon)) goto warpHl
if (($msg == asum || $msg == ASUM) || ($msg == assum || $msg == ASSUM)) goto asum
if ($msg == agi || $msg == AGI) goto agi
if ($msg == bless || $msg == BLESS) goto bless
if ($msg == aspersio || $msg == ASPERSIO) goto aspersio
if (($msg == kyrie || $msg == KYRIE) || ($msg == ky || $msg == KY)) goto kyrie
if (($msg == manus || $msg == MANUS) || ($msg == IMPO || $msg == impo)) goto manus
if ($msg == ab || $msg == AB) goto agiBless
if ($msg == buff || $msg == BUFF) goto buffAll
if ($msg == heal || $msg == HEAL) goto heal
if (($msg == sant || $msg == SANT) || ($msg == santuary || $msg == SANTUARY)) goto santuary
goto end
:warpAld
if ($bg < 1) goto noGemstone
do sl 27 $herex $herey
pause $pause1
do warp alde_gld
release $c
stop
:warpSq
if ($bg < 1) goto noGemstone
do sl 27 $herex $herey
pause $pause1
do warp prt_gld
release $c
stop
:warpGef
if ($bg < 1) goto noGemstone
do sl 27 $herex $herey
pause $pause1
do warp gef_fild13
release $c
stop
:warpMinting
if ($bg < 1) goto noGemstone
do sl 27 $herex $herey
pause $pause1
do warp pay_gld
release $c
stop
:warpMorocc
if ($bg < 1) goto noGemstone
do sl 27 $herex $herey
pause $pause1
do warp morocc
release $c
stop
:warpHl
if ($bg < 1) goto noGemstone
do sl 27 $herex $herey
pause $pause1
do warp pay_gld
release $c
stop
:asum
[
do sp 361 $i 5
]
release $c
stop
:agi
[
do sp 29 $i 10
]
release $c
stop
:bless
[
do sp 34 $i 10
]
release $c
stop
:manus
[
do sp 66 $i 5
]
release $c
stop
:kyrie
[
do sp 73 $i 5
]
do eval AI::clear;$::taskManager->stopAll();delete $::ai_v{temp};undef $::char->{dead};
release $c
stop
:aspersio
[
if ($holy < 1) goto noHolyWater
do sp 68 $i 5
]
release $c
stop
:agiBless
do sp 34 $i 10
pause $pause1
do sp 29 $i 10
release $c
stop
:buffAll
do sp 34 $i 10
pause $pause1
do sp 29 $i 10
pause $pause2
do sp 361 $i 5
pause $pause2
do sp 66 $i 5
release $c
stop
:heal
do sp 28 $i 10
pause $pause2
do sp 28 $i 10
pause $pause2
do sp 28 $i 10
pause $pause2
do sp 28 $i 10
release $c
stop
:santuary
if ($bg < 1) goto noGemstone
[
do eval foreach my Actor::Player $_player (@{$::playersList->getItems()}) {if ($_player->{binID} eq "$::Macro::Data::varStack{i}") {$_x = $_player->{pos_to}{x};$_y = $_player->{pos_to}{y};$::Macro::Data::varStack{pos} = "$_x" . " $_y";last;}}
do sl 70 $pos 7
]
release $c
stop
:end
log $msg
release $c
stop
:noGemstone
log No More Left Blue Gemstone In Inventory
release $c
stop
:noHolyWater
log No More Left Holy Water In Inventory
release $c
stop
:far
log $.lastpub is out of distance
release $c
stop
}