bard circle macro

o0L33T0o

MASTER OF THE PUPPETS
Joined
Jul 30, 2008
Messages
99
Reaction score
1
Points
8
Hi

Long time ago some one post a basic circle macro for bards was great for kyting like /circle

been searching for it again as i want to try run it on P99 not afk just to make kyting easyer as my bard

any one able to put it back up would be fantastic

cheers

L33t
 
found the old macro i had that auto targeted mobs in a bunch here is a snipet of it

i still need the /circle ?????? for a running circle command im not sure on the x y access bs

thanks again for your prompt reply

turbo

Sub Main

:loopstart
/doevents
/call GMcheck
/if (${Me.PctHPs}<=45) /potionbelt Activate 1
/if (${Me.PctHPs}<=60) /potionbelt Activate 2
/if (${Target.Level}>75) {
/squelch /twist stop
/target npc next
/delay 30
/squelch /twist 1 2 3 4 5 6
}
/if (${Target.Distance}>220) /tar npc radius 220
/if (${Target.ID}==FALSE) /tar npc radius 220
/delay 10
/goto :loopstart
/return

Sub GMcheck
/if (${Spawn[gm].ID}) {
/echo Gm detected
/beep
/beep
/beep
/keypress 9
/endmac
/unload
/q
}
/return
 
again this is for P999 server and not live :(
 
again this is for P999 server and not live :(

I'm not sure if you got a resolution for this. On my bard I simply play selo's in the twist and 3 DoT's, for the actual circle I simply grabbed up the critters and then pressed Forward and Right keys (W and D) and hit enter. which causes them to be held down. The auto target bit should do the rest. Places like Dulak harbor was pretty good for my bard to DoT this way.

If the keyboard mechanics are the same on P99 then pressing enter while holding any directional key should cause it to remain pressed until you hit any of the directional keys. It creates a tight circle, but with Selo's going it keeps you out of range, Typically it kept you in range for AoEDoT songs as well. Which made it epic pre-swarm kiting with charm/invis clicky.

Sometimes Selo's doesn't quite stick when doing a /twist, might consider adding a check for Selo's buff and if it isn't present doing a /twist end, /twist 1 2 3 4 (renumber based on song locations)

Something a bit more complicated than what you got could be.

Code:
turbo 



Sub Main 
	/declare alertTimer timer outer
	/declare newHP int outer
	/declare startHP int outer
	
	/twist 1 5 6 7 8

:loopstart 
	/doevents
	/call GMCheck 
	:/call HealthChk
	/call TargetNPC
	/call InvulnerableCheck
	/goto :loopstart 
/return 

Sub GMCheck 
	/if (${Spawn[GM].ID}) { 
		/echo Gm detected 
		/beep 
		/beep 
		/beep 
		/end 
		/unload 
		/q 
	}
	/delay 5
/return

Sub TargetNPC
	/if ((!${Target.ID}) || (${Target.Distance}>220)) {
		/target npc noalert 1
		/varset startHP ${Target.PctHPs}
		/varset alertTimer 12s
		/delay 5
	}
	/if (${Target.Level}>100) {
		/alert add 1 ${Target.Name}
		/keypress esc
	}
	/if ((!${Target.ID}) || (${Target.Type.Equal[corpse]})) {
		/echo Getting a new target
		/call TargetNPC
		}
	}
/return


Sub HealthChk
	/if (${Me.PctHPs}<=45) /potionbelt Activate 1
	/if (${Me.PctHPs}<=60) /potionbelt Activate 2
/return

Sub WaitKill
	:/echo Waiting
   /delay 1s
 
/return

Sub InvulnerableCheck
	/if (${alertTimer} > 0) /echo ${alertTimer}
	/if (!${alertTimer}) {
		/varset newHP ${Target.PctHPs}
		/if (${startHP} == ${newHP}) {
			/echo Times up, you can't hurt this creature.
			/alert add 1 ${Target.Name}
			/delay 5
			/keypress esc
			}
	} 
	/if (${Target.Type.Equal[NPC]}) /call WaitKill
	/return
/end

In Theory the /twist could be pulled out of the loop and placed above :loopstart. If you are using the long lasting Selo's then shouldn't be a big issue. /twist repeats casting events and even recasts selo's. Shouldn't be a need to recast every time the loop runs. I broke targeting and health check down into a function/method/sub routine, whatever you want to call it.

The /alert add 1 by target ID will add the NPC's over level 75 to a list of targets to not select from based on that NPC's ID. Then the request for a target /target npc noalert 1 means select an NPC that isn't on the alert list. This eliminates the need to do a /target npc next (This didn't have the radius check and would have likely caused some issues.) I'm not sure about the syntax of the radius request afterwords. This could also be modified to accept parameters from you IE: /mac autotarget 220 75 1 2 3 4 5 6, it's quite lengthy but would be personalized. 220 is the radius, 75 is max level for target. 1 2 3 4 5 6 would be your songs you want to /twist. But I suppose you understand the code you originally posted.
 
Last edited: