Wandering Buffbot (80% complete)

Moderator: Moderators

Message
Author
User avatar
help_us
Testers Team
Testers Team
Posts: 106
Joined: 04 Apr 2008, 21:53
Noob?: No
Location: Asia
Contact:

Re: Wandering Buffbot (80% complete)

#11 Post by help_us »

complete buffBot and warp to several map for guild member.
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
}
Image
Image

Post Reply