• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Bard Kite Macro Dizzy.mac

Jmo

Ex-Admin Dust Bunny
Creator
Joined
Mar 16, 2006
RedCents
794¢
Hey Everyone. As there has been a recent interest in Bards and Bard macros, I thought I'd share one that I've used quite a bit in the past. I am not the author of this, but I did slightly modify it. Nothing too big, but tried to make it a little more user friendly. My props to the original author for creating this.

If you don't want to have to edit the macro, have the following spell gems set up:

Spellgem 1 - Heal Song
Spellgems 2-5 - DoT's 1-4
Spellgem 8 - Selos

You also must have MQ2Twist loaded in order to use this.

ex. on how to run the macro: /mac dizzy circle 250 -1121 75 300 -- This will start the macro running a circle around coordinates 250,-1121 with a 75 radius and a 300 Paranoia range.

If any PC comes within your set Paranoia range, the macro will stop you from circling and Fade. I leveled my bard up quite a bit using this early on starting in Gunthak and then Dulak Harbor and working my way up into the Planes, with PoN getting me to almost 60. There's plenty of other bard guides out there for you to find out where this will be useful to you. :)


Rich (BB code):
---------------------------------------------------------------------------------------------------- 
| Dizzy.mac version 3.3 
| Created by IceIsFun
| Modified by Jmo 
| Features: 
| - Keeps a tally of your exp while you kite, with properly formatted HH:MM:SS. 
| - Stop kiting when pesky spectators come to see the "amazingly AFK bard!!1!" 
| - Stops twisting and lets DoTs fade before going into standby-mode (if you use Paranoia Range}. 
| - Able to run in either diamond or circular paths. 
| - Set a password to let your friends join your group while you kite. 
| - Automatically get targets in range while you kite, tag them with Boastful Bellow, and kill. 
| 
| Dizzy.mac usage: 
| 
| .: CIRCLE VERSION :. 
| /mac Dizzy circle <Y> <X> <Radius> [<Paranoia Range>] 
| <Y> - The Y-coordinate of the center of the circle you want to run. 
| <X> - The X-coordinate of the center of the circle you want to run. 
| <Radius> - The radius of the circle you want to run. 
| <Paranoia Range> - OPTIONAL range at which non-friendly PCs will trigger a standby mode. 
| 
| .: DIAMOND VERSION :. 
| /mac Dizzy diamond <Y> <X> <North> <South> <East> <West> [<Paranoia Range>] 
| <Y> - The Y-coordinate of the center of the diamond you want to run. 
| <X> - The X-coordinate of the center of the diamond you want to run. 
| <North> - The distance "north" (+Y) from the center of the diamond you want to run. 
| <South> - The distance "south" (-Y) from the center of the diamond you want to run. 
| <East> - The distance "east" (-X) from the center of the diamond you want to run. 
| <West> - The distance "west" (+X) from the center of the diamond you want to run. 
| <Paranoia Range> - OPTIONAL range at which non-friendly PCs will trigger a standby mode. 
| 
| NOTES/WARNINGS: 
| - This macro assumes you have compiled and loaded the MQ2Twist plugin. 
| - Edit the line that says "/squelch /twist 2 3 4 5" with the gems for your chants. 
| - Edit the line that says "/if (${ChatText.Equal["password"]}) {" with the password of your choice. 
| - If you don't have the bard AA "Fading Memories", Paranoia Range will probably get you killed. 
| - To add a "friendly" PC, type "/alert add 1 mynewfriendsname". 
| - If there's something in Dizzy.mac you don't like, select and delete it, don't contact me about it. 
| ---------------------------------------------------------------------------------------------------- 

#event CampCheck "#*#out of character#*#camp#*#check#*#" 
#event CampCheck "#*#out of character#*#cc#*#" 
#event CampCheck "#*#shout#*#camp#*#check#*#" 
#event CampCheck "#*#shout#*#cc#*#" 
#turbo 40 
#chat tell 

Sub Main(string PathType) 
/if (${PathType.Equal[diamond]}) { 
/declare DiamondY float outer 
/declare DiamondX float outer 
/declare N float outer 
/declare S float outer 
/declare E float outer 
/declare W float outer 
/declare TooClose float outer 
/varset DiamondY ${Param1} 
/varset DiamondX ${Param2} 
/varset N ${Param3} 
/varset S ${Param4} 
/varset E ${Param5} 
/varset W ${Param6} 
/varset TooClose ${Param7} 
/echo Running a diamond around (${DiamondY},${DiamondX}) with N/S/E/W corners ${N} ${S} ${E} ${W} ${If[${TooClose}>0,"- Paranoia Range set at: ${TooClose}",]}. 
} else /if (${PathType.Equal[circle]}) { 
/declare CircleY float outer 
/declare CircleX float outer 
/declare CircleR float outer 
/declare TooClose float outer 
/varset CircleY ${Param1} 
/varset CircleX ${Param2} 
/varset CircleR ${Param3} 
/varset TooClose ${Param4} 
/echo Running a perfect circle around (${CircleY},${CircleX}) at radius ${CircleR} ${If[${TooClose}>0,"- Paranoia Range set at: ${TooClose}",]}. 
} else { 
/call DumbAss 
} 

| Declare and set some variables for A.I. control. 
/declare ProximityTimer timer outer 
/declare StopMe int outer 0 
/declare LastAAExp float outer ${Me.PctAAExp} 
/declare TotalAAExp float outer 0 
/declare LastLvl float outer ${Me.PctExp} 
/declare TotalLvl float outer 0 


| Add myself to the friendly PC list. 
/squelch /alert add 1 ${Me.Name} 

| EDIT THIS LINE - the songs you'll twist while kiting go here. 
|Modified to be Selos, Dot1, Dot2, Dot3, Dot4 ~Jmo
/squelch /twist 8, 2, 3, 4, 5

| Start moving and keep running Clockwise around the circular path. 
/keypress up hold 
:MainLoop 
/if (${PathType.Equal[circle]}) /call Circle ${CircleY} ${CircleX} ${CircleR} 
/if (${PathType.Equal[diamond]}) /call Diamond ${DiamondY} ${DiamondX} ${N} ${S} ${E} ${W} 

/if (${Spawn[gm].ID}) { 
/q 
/end 
} 

/if (!${StopMe}) { 
/doevents 

| Display 
/if (${Me.PctExp}!=${LastLvl} || ${Me.PctAAExp}!=${LastAAExp}) /call ExpGain 

| If any PCs are too close, go into standby. 
/if (${TooClose} && ${Spawn[pc noalert 1 radius ${TooClose}].ID}) { 
/twist stop 
/varset StopMe 1 
/varset ProximityTimer 20s 
/echo Foreign PC (${Spawn[pc noalert 1 radius ${TooClose}].Name}) detected inside Paranoia Range (${TooClose}), going into Standby mode. 
} 

| Stop twisting if no target. 
/if (${Target.Type.Equal[PC]} && ${Twisting}) /squelch /twist stop 

| If the current target is too high-level, too far away or is a PC, find a new one. 
/if (!${Target.Type.Equal[NPC]} || ${Target.Distance}>300 || !${Target.ID}) { 
/target myself 
/if (${Spawn[npc radius 250].ID}) { 
/target npc radius 250 

| Activate the Boastful Bellows AA to tag the targetted mob. 
/alt activate 199 
/squelch /twist start 
} else { 
/squelch /twist stop 
} 
} 
} 

/if (${StopMe}>0 && ${Twisting}) /squelch /twist stop 

/if (${StopMe} && !${ProximityTimer}) /goto :Standby 
/goto :MainLoop 

:Standby 
/alt activate 212 
/keypress up 

| This loop iterates until no foreign PCs are in range and the bard has enough mana to FM. 
:StandbyLoop 
/doevents 
/if (${Math.Calc[${Spawn[pc noalert 1 radius ${TooClose}].ID}==NULL]} && ${Me.CurrentMana}>1000) { 
/varset StopMe 0 
/keypress up hold 
/echo No foreign PCs detected, resuming chant-kiting. 
/squelch /twist start 
/keypress Esc 
/goto :MainLoop 
} 
/goto :StandbyLoop 

/return 

| ------------------------------------------------------- 
| Circle: Keeps the character facing a clockwise tangent 
| to a circular path. Arguments are the center 
| coordinates and the radius of the circle. 
| Created by IceIsFun 
| ------------------------------------------------------- 
Sub Circle(float Y,float X,float R) 
/declare C_Heading float local 
/declare C_Distance float local 
/vardata C_Heading Heading[${Y},${X}].DegreesCCW 
/vardata C_Distance Math.Distance[${Y},${X}] 

/if (${C_Distance}<${R}) { 
/face heading ${Math.Calc[${C_Heading}+180]} 
} else { 
/face heading ${Math.Calc[${C_Heading}+${Math.Calc[90*${Math.Calc[${R}/${C_Distance}]}]}]} 
} 
/return 

| ------------------------------------------------------- 
| Diamond: Keeps the character facing the next corner of 
| a clock-wise diamond path. Arguments are the center 
| coordinates and N/S/E/W distance offsets for each 
| corner of the diamond. 
| Created by IceIsFun 
| ------------------------------------------------------- 
Sub Diamond(float CenterY,float CenterX,float North,float South,float East,float West) 
/if (${Me.X}>${CenterX} && ${Me.Y}>${CenterY}) /face fast nolook loc ${Math.Calc[${CenterY}+${North}]},${CenterX} 
/if (${Me.X}>${CenterX} && ${Me.Y}<${CenterY}) /face fast nolook loc ${CenterY},${Math.Calc[${CenterX}+${West}]} 
/if (${Me.X}<${CenterX} && ${Me.Y}>${CenterY}) /face fast nolook loc ${CenterY},${Math.Calc[${CenterX}-${East}]} 
/if (${Me.X}<${CenterX} && ${Me.Y}<${CenterY}) /face fast nolook loc ${Math.Calc[${CenterY}-${South}]},${CenterX} 
/return 

| ------------------------------------------------------- 
| ExpGain: echos a formatted message, indicating total AA 
| and regular exp gained during the RunTime of the 
| current macro. Calls Sub Formatted_RunTime. 
| Assumes the following declarations in Sub Main: 
| /declare LastAAExp float outer ${Me.PctAAExp} 
| /declare TotalAAExp float outer 0 
| /declare LastLvl float outer ${Me.PctExp} 
| /declare TotalLvl float outer 0 
| Created by IceIsFun 
| ------------------------------------------------------- 
Sub ExpGain 

/if (${Me.PctExp}<${LastLvl}) { 
/varset TotalLvl ${Math.Calc[${TotalLvl}+${Math.Calc[100+${Me.PctExp}-${LastLvl}]}]} 
/varset LastLvl ${Me.PctExp} 
} else { 
/varset TotalLvl ${Math.Calc[${TotalLvl}+${Math.Calc[${Me.PctExp}-${LastLvl}]}]} 
/varset LastLvl ${Me.PctExp} 
} 

/if (${Me.PctAAExp}<${LastAAExp}) { 
/varset TotalAAExp ${Math.Calc[${TotalAAExp}+${Math.Calc[100+${Me.PctAAExp}-${LastAAExp}]}]} 
/varset LastAAExp ${Me.PctAAExp} 
} else { 
/varset TotalAAExp ${Math.Calc[${TotalAAExp}+${Math.Calc[${Me.PctAAExp}-${LastAAExp}]}]} 
/varset LastAAExp ${Me.PctAAExp} 
} 

/call Formatted_RunTime 

/echo ${Macro.Name} has generated ${TotalAAExp}% AA Exp and ${TotalLvl}% Regular Exp in ${Macro.Return}. 
/return 

| ------------------------------------------------------- 
| Formatted_RunTime: returns a formatted string, giving 
| the RunTime of the current Macro in HH:MM:SS. 
| Created by IceIsFun 
| ------------------------------------------------------- 
Sub Formatted_RunTime 
/declare Hours int local ${Math.Calc[${Macro.RunTime}/3600].Int} 
/declare Minutes int local ${Math.Calc[${Math.Calc[${Macro.RunTime}-${Math.Calc[${Hours}*3600]}]}/60].Int} 
/declare Seconds int local ${Math.Calc[${Macro.RunTime}-${Math.Calc[${Hours}*3600]}-${Math.Calc[${Minutes}*60]}]} 
/declare Zero int local 0 

/declare S_Total string local ${Hours}: 

/if (${Minutes}>9) { 
/varset S_Total ${S_Total}${Minutes}: 
} else { 
/varset S_Total ${S_Total}${Zero}${Minutes}: 
} 

/if (${Seconds}>9) { 
/varset S_Total ${S_Total}${Seconds} 
} else { 
/varset S_Total ${S_Total}${Zero}${Seconds} 
} 
/return ${S_Total} 

| ------------------------------------------------------- 
| DumbAss: Echos usage instructions for Dizzy.mac 
| ------------------------------------------------------- 
Sub DumbAss 
/popup Hello, dumbass. 
/echo Dizzy.mac usage: 
/echo 
/echo .: CIRCLE VERSION :. 
/echo /mac Dizzy circle <Y> <X> <Radius> [<Paranoia Range>] 
/echo <Y> - The Y-coordinate of the center of the circle you want to run. 
/echo <X> - The X-coordinate of the center of the circle you want to run. 
/echo <Radius> - The radius of the circle you want to run. 
/echo <Paranoia Range> - OPTIONAL range at which non-friendly PCs will trigger a standby mode. 
/echo 
/echo .: DIAMOND VERSION :. 
/echo /mac Dizzy diamond <Y> <X> <North> <South> <East> <West> [<Paranoia Range>] 
/echo <Y> - The Y-coordinate of the center of the diamond you want to run. 
/echo <X> - The X-coordinate of the center of the diamond you want to run. 
/echo <North> - The distance "north" (+Y) from the center of the diamond you want to run. 
/echo <South> - The distance "south" (-Y) from the center of the diamond you want to run. 
/echo <East> - The distance "east" (-X) from the center of the diamond you want to run. 
/echo <West> - The distance "west" (+X) from the center of the diamond you want to run. 
/echo <Paranoia Range> - OPTIONAL range at which non-friendly PCs will trigger a standby mode. 
/echo 
/echo NOTES: 
/echo - This macro assumes you have compiled and loaded the MQ2Twist plugin. 
/echo - Edit the line that says "/squelch /twist 2 3 4 5" with the gems for your chants. 
/echo - Edit the line that says "/if (${ChatText.Equal["password"]}) {" with the password of your choice. 
/echo - If you don't have the bard AA "Fading Memories", Paranoia Range will probably get you killed. 
/echo - To add a "friendly" PC, type "/alert add 1 mynewfriendsname". 
/return 

| ------------------------------------------------------- 
| Event_Chat: responds to password-protected 
| group requests and status requests. Invites the sender 
| to the group and sets them to "friendly" status if the 
| correct password is given. 
| ------------------------------------------------------- 
Sub Event_Chat(string ChatType,string Sender,string ChatText) 

/declare MyMob int local 
/varset MyMob ${Target.ID} 

| EDIT THIS LINE - your new password goes here. 
/if (${ChatText.Equal["password"]}) { 
/alert add 1 ${Sender} 
/if (${Group}<6) { 
/target range 1 22000 ${Sender} 
/invite 
/tell ${Sender} I'm kiting at ${Me.Y}, ${Me.Y} -- come join me. 
} else { 
/tell ${Sender} My group is full right now, try back later! 
} 
} 

/if (${ChatText.Equal["status"]}) { 
/tell ${Sender} I am currently ${If[${StopMe}>0,"in Standby Mode","chant-kiting"]} in ${Zone.Name}. I have ${Me.AAPoints} unspent AA points and have ${Me.PctExp}% experience. 
} 

/target id MyMob 
/return 

Sub Event_CampCheck 
/doevents flush 
/echo ${Time} Camp Check Called 
/delay 40 
/ooc
/return

Enjoy!
 
Going to have to surely give this a try today

The Macro I used before, was just a basic Target macro and I had to set up the Circle myself using mq2moveutils.

But this seems to be alot more complete with the PC detection and everything
 
This is working very well.. Just had a hard time finding a place to use it...

Redcent inc!

- decker
 
Anyone know a good place to use this 70+? used it in ruined city of dranik from 65 to 70, goign to say there and get some more aa's for awhile.
 
I got sick of changing the code so i would /o camp_im_in

So i altered the code a little:
Rich (BB code):
---------------------------------------------------------------------------------------------------- 
| Dizzy.mac version 3.3 
| Created by IceIsFun
| Modified by Jmo 
| Features: 
| - Keeps a tally of your exp while you kite, with properly formatted HH:MM:SS. 
| - Stop kiting when pesky spectators come to see the "amazingly AFK bard!!1!" 
| - Stops twisting and lets DoTs fade before going into standby-mode (if you use Paranoia Range}. 
| - Able to run in either diamond or circular paths. 
| - Set a password to let your friends join your group while you kite. 
| - Automatically get targets in range while you kite, tag them with Boastful Bellow, and kill. 
| 
| Dizzy.mac usage: 
| 
| .: CIRCLE VERSION :. 
| /mac Dizzy circle <Y> <X> <Radius> [<Paranoia Range>] 
| <Y> - The Y-coordinate of the center of the circle you want to run. 
| <X> - The X-coordinate of the center of the circle you want to run. 
| <Radius> - The radius of the circle you want to run. 
| <Paranoia Range> - OPTIONAL range at which non-friendly PCs will trigger a standby mode. 
| 
| .: DIAMOND VERSION :. 
| /mac Dizzy diamond <Y> <X> <North> <South> <East> <West> [<Paranoia Range>] 
| <Y> - The Y-coordinate of the center of the diamond you want to run. 
| <X> - The X-coordinate of the center of the diamond you want to run. 
| <North> - The distance "north" (+Y) from the center of the diamond you want to run. 
| <South> - The distance "south" (-Y) from the center of the diamond you want to run. 
| <East> - The distance "east" (-X) from the center of the diamond you want to run. 
| <West> - The distance "west" (+X) from the center of the diamond you want to run. 
| <Paranoia Range> - OPTIONAL range at which non-friendly PCs will trigger a standby mode. 
| 
| NOTES/WARNINGS: 
| - This macro assumes you have compiled and loaded the MQ2Twist plugin. 
| - Edit the line that says "/squelch /twist 2 3 4 5" with the gems for your chants. 
| - Edit the line that says "/if (${ChatText.Equal["password"]}) {" with the password of your choice. 
| - If you don't have the bard AA "Fading Memories", Paranoia Range will probably get you killed. 
| - To add a "friendly" PC, type "/alert add 1 mynewfriendsname". 
| - If there's something in Dizzy.mac you don't like, select and delete it, don't contact me about it. 
| ---------------------------------------------------------------------------------------------------- 

#event CampCheck "#*#out of character#*#camp#*#check#*#" 
#event CampCheck "#*#out of character#*#cc#*#" 
#event CampCheck "#*#shout#*#camp#*#check#*#" 
#event CampCheck "#*#shout#*#cc#*#" 
#turbo 40 
#chat tell 

Sub Main(string PathType) 
/if (${PathType.Equal[diamond]}) { 
/declare DiamondY float outer 
/declare DiamondX float outer 
/declare N float outer 
/declare S float outer 
/declare E float outer 
/declare W float outer 
/declare TooClose float outer 
/declare CampName string outer 
/varset DiamondY ${Param1} 
/varset DiamondX ${Param2} 
/varset N ${Param3} 
/varset S ${Param4} 
/varset E ${Param5} 
/varset W ${Param6} 
/varset TooClose ${Param7} 
/varset CampName ${Param8} 
/echo Running a diamond around (${DiamondY},${DiamondX}) with N/S/E/W corners ${N} ${S} ${E} ${W} ${If[${TooClose}>0,"- Paranoia Range set at: ${TooClose}" in a camp called: ${CampName},]}. 
} else /if (${PathType.Equal[circle]}) { 
/declare CircleY float outer 
/declare CircleX float outer 
/declare CircleR float outer 
/declare TooClose float outer 
/declare CampName string outer 
/varset CircleY ${Param1} 
/varset CircleX ${Param2} 
/varset CircleR ${Param3} 
/varset TooClose ${Param4} 
/varset CampName ${Param5} 
/echo Running a perfect circle around (${CircleY},${CircleX}) at radius ${CircleR} ${If[${TooClose}>0,"- Paranoia Range set at: ${TooClose}" in a camp called: ${CampName} ,]}. 
} else { 
/call DumbAss 
} 

| Declare and set some variables for A.I. control. 
/declare ProximityTimer timer outer 
/declare StopMe int outer 0 
/declare LastAAExp float outer ${Me.PctAAExp} 
/declare TotalAAExp float outer 0 
/declare LastLvl float outer ${Me.PctExp} 
/declare TotalLvl float outer 0 


| Add myself to the friendly PC list. 
/squelch /alert add 1 ${Me.Name} 

| EDIT THIS LINE - the songs you'll twist while kiting go here. 
|Modified to be Selos, Dot1, Dot2, Dot3, Dot4 ~Jmo
/squelch /twist 8, 2, 3, 4, 5

| Start moving and keep running Clockwise around the circular path. 
/keypress up hold 
:MainLoop 
/if (${PathType.Equal[circle]}) /call Circle ${CircleY} ${CircleX} ${CircleR} 
/if (${PathType.Equal[diamond]}) /call Diamond ${DiamondY} ${DiamondX} ${N} ${S} ${E} ${W} 

/if (${Spawn[gm].ID}) { 
/q 
/end 
} 

/if (!${StopMe}) { 
/doevents 

| Display 
/if (${Me.PctExp}!=${LastLvl} || ${Me.PctAAExp}!=${LastAAExp}) /call ExpGain 

| If any PCs are too close, go into standby. 
/if (${TooClose} && ${Spawn[pc noalert 1 radius ${TooClose}].ID}) { 
/twist stop 
/varset StopMe 1 
/varset ProximityTimer 20s 
/echo Foreign PC (${Spawn[pc noalert 1 radius ${TooClose}].Name}) detected inside Paranoia Range (${TooClose}), going into Standby mode. 
} 

| Stop twisting if no target. 
/if (${Target.Type.Equal[PC]} && ${Twisting}) /squelch /twist stop 

| If the current target is too high-level, too far away or is a PC, find a new one. 
/if (!${Target.Type.Equal[NPC]} || ${Target.Distance}>300 || !${Target.ID}) { 
/target myself 
/if (${Spawn[npc radius 250].ID}) { 
/target npc radius 250 

| Activate the Boastful Bellows AA to tag the targetted mob. 
/alt activate 199 
/squelch /twist start 
} else { 
/squelch /twist stop 
} 
} 
} 

/if (${StopMe}>0 && ${Twisting}) /squelch /twist stop 

/if (${StopMe} && !${ProximityTimer}) /goto :Standby 
/goto :MainLoop 

:Standby 
/alt activate 212 
/keypress up 

| This loop iterates until no foreign PCs are in range and the bard has enough mana to FM. 
:StandbyLoop 
/doevents 
/if (${Math.Calc[${Spawn[pc noalert 1 radius ${TooClose}].ID}==NULL]} && ${Me.CurrentMana}>1000) { 
/varset StopMe 0 
/keypress up hold 
/echo No foreign PCs detected, resuming chant-kiting. 
/squelch /twist start 
/keypress Esc 
/goto :MainLoop 
} 
/goto :StandbyLoop 

/return 

| ------------------------------------------------------- 
| Circle: Keeps the character facing a clockwise tangent 
| to a circular path. Arguments are the center 
| coordinates and the radius of the circle. 
| Created by IceIsFun 
| ------------------------------------------------------- 
Sub Circle(float Y,float X,float R) 
/declare C_Heading float local 
/declare C_Distance float local 
/vardata C_Heading Heading[${Y},${X}].DegreesCCW 
/vardata C_Distance Math.Distance[${Y},${X}] 

/if (${C_Distance}<${R}) { 
/face heading ${Math.Calc[${C_Heading}+180]} 
} else { 
/face heading ${Math.Calc[${C_Heading}+${Math.Calc[90*${Math.Calc[${R}/${C_Distance}]}]}]} 
} 
/return 

| ------------------------------------------------------- 
| Diamond: Keeps the character facing the next corner of 
| a clock-wise diamond path. Arguments are the center 
| coordinates and N/S/E/W distance offsets for each 
| corner of the diamond. 
| Created by IceIsFun 
| ------------------------------------------------------- 
Sub Diamond(float CenterY,float CenterX,float North,float South,float East,float West) 
/if (${Me.X}>${CenterX} && ${Me.Y}>${CenterY}) /face fast nolook loc ${Math.Calc[${CenterY}+${North}]},${CenterX} 
/if (${Me.X}>${CenterX} && ${Me.Y}<${CenterY}) /face fast nolook loc ${CenterY},${Math.Calc[${CenterX}+${West}]} 
/if (${Me.X}<${CenterX} && ${Me.Y}>${CenterY}) /face fast nolook loc ${CenterY},${Math.Calc[${CenterX}-${East}]} 
/if (${Me.X}<${CenterX} && ${Me.Y}<${CenterY}) /face fast nolook loc ${Math.Calc[${CenterY}-${South}]},${CenterX} 
/return 

| ------------------------------------------------------- 
| ExpGain: echos a formatted message, indicating total AA 
| and regular exp gained during the RunTime of the 
| current macro. Calls Sub Formatted_RunTime. 
| Assumes the following declarations in Sub Main: 
| /declare LastAAExp float outer ${Me.PctAAExp} 
| /declare TotalAAExp float outer 0 
| /declare LastLvl float outer ${Me.PctExp} 
| /declare TotalLvl float outer 0 
| Created by IceIsFun 
| ------------------------------------------------------- 
Sub ExpGain 

/if (${Me.PctExp}<${LastLvl}) { 
/varset TotalLvl ${Math.Calc[${TotalLvl}+${Math.Calc[100+${Me.PctExp}-${LastLvl}]}]} 
/varset LastLvl ${Me.PctExp} 
} else { 
/varset TotalLvl ${Math.Calc[${TotalLvl}+${Math.Calc[${Me.PctExp}-${LastLvl}]}]} 
/varset LastLvl ${Me.PctExp} 
} 

/if (${Me.PctAAExp}<${LastAAExp}) { 
/varset TotalAAExp ${Math.Calc[${TotalAAExp}+${Math.Calc[100+${Me.PctAAExp}-${LastAAExp}]}]} 
/varset LastAAExp ${Me.PctAAExp} 
} else { 
/varset TotalAAExp ${Math.Calc[${TotalAAExp}+${Math.Calc[${Me.PctAAExp}-${LastAAExp}]}]} 
/varset LastAAExp ${Me.PctAAExp} 
} 

/call Formatted_RunTime 

/echo ${Macro.Name} has generated ${TotalAAExp}% AA Exp and ${TotalLvl}% Regular Exp in ${Macro.Return}. 
/return 

| ------------------------------------------------------- 
| Formatted_RunTime: returns a formatted string, giving 
| the RunTime of the current Macro in HH:MM:SS. 
| Created by IceIsFun 
| ------------------------------------------------------- 
Sub Formatted_RunTime 
/declare Hours int local ${Math.Calc[${Macro.RunTime}/3600].Int} 
/declare Minutes int local ${Math.Calc[${Math.Calc[${Macro.RunTime}-${Math.Calc[${Hours}*3600]}]}/60].Int} 
/declare Seconds int local ${Math.Calc[${Macro.RunTime}-${Math.Calc[${Hours}*3600]}-${Math.Calc[${Minutes}*60]}]} 
/declare Zero int local 0 

/declare S_Total string local ${Hours}: 

/if (${Minutes}>9) { 
/varset S_Total ${S_Total}${Minutes}: 
} else { 
/varset S_Total ${S_Total}${Zero}${Minutes}: 
} 

/if (${Seconds}>9) { 
/varset S_Total ${S_Total}${Seconds} 
} else { 
/varset S_Total ${S_Total}${Zero}${Seconds} 
} 
/return ${S_Total} 

| ------------------------------------------------------- 
| DumbAss: Echos usage instructions for Dizzy.mac 
| ------------------------------------------------------- 
Sub DumbAss 
/popup Hello, dumbass. 
/echo Dizzy.mac usage: 
/echo 
/echo .: CIRCLE VERSION :. 
/echo /mac Dizzy circle <Y> <X> <Radius> [<Paranoia Range>] 
/echo <Y> - The Y-coordinate of the center of the circle you want to run. 
/echo <X> - The X-coordinate of the center of the circle you want to run. 
/echo <Radius> - The radius of the circle you want to run. 
/echo <Paranoia Range> - OPTIONAL range at which non-friendly PCs will trigger a standby mode. 
/echo 
/echo .: DIAMOND VERSION :. 
/echo /mac Dizzy diamond <Y> <X> <North> <South> <East> <West> [<Paranoia Range>] 
/echo <Y> - The Y-coordinate of the center of the diamond you want to run. 
/echo <X> - The X-coordinate of the center of the diamond you want to run. 
/echo <North> - The distance "north" (+Y) from the center of the diamond you want to run. 
/echo <South> - The distance "south" (-Y) from the center of the diamond you want to run. 
/echo <East> - The distance "east" (-X) from the center of the diamond you want to run. 
/echo <West> - The distance "west" (+X) from the center of the diamond you want to run. 
/echo <Paranoia Range> - OPTIONAL range at which non-friendly PCs will trigger a standby mode. 
/echo 
/echo NOTES: 
/echo - This macro assumes you have compiled and loaded the MQ2Twist plugin. 
/echo - Edit the line that says "/squelch /twist 2 3 4 5" with the gems for your chants. 
/echo - Edit the line that says "/if (${ChatText.Equal["password"]}) {" with the password of your choice. 
/echo - If you don't have the bard AA "Fading Memories", Paranoia Range will probably get you killed. 
/echo - To add a "friendly" PC, type "/alert add 1 mynewfriendsname". 
/return 

| ------------------------------------------------------- 
| Event_Chat: responds to password-protected 
| group requests and status requests. Invites the sender 
| to the group and sets them to "friendly" status if the 
| correct password is given. 
| ------------------------------------------------------- 
Sub Event_Chat(string ChatType,string Sender,string ChatText) 

/declare MyMob int local 
/varset MyMob ${Target.ID} 

| EDIT THIS LINE - your new password goes here. 
/if (${ChatText.Equal["password"]}) { 
/alert add 1 ${Sender} 
/if (${Group}<6) { 
/target range 1 22000 ${Sender} 
/invite 
/tell ${Sender} I'm kiting at ${Me.Y}, ${Me.Y} -- come join me. 
} else { 
/tell ${Sender} My group is full right now, try back later! 
} 
} 

/if (${ChatText.Equal["status"]}) { 
/tell ${Sender} I am currently ${If[${StopMe}>0,"in Standby Mode","chant-kiting"]} in ${Zone.Name}. I have ${Me.AAPoints} unspent AA points and have ${Me.PctExp}% experience. 
} 

/target id MyMob 
/return 

Sub Event_CampCheck 
/doevents flush 
/echo ${Time} Camp Check Called 
/delay 40 
/ooc ${CampName}
/return

So now you can:
/mac dizzy circle 250 -1121 75 300 CampName

And it will wait a little and then send a /ooc CampName

- decker
 
Last edited:
Ok that was a wrong one.. If you made a macro before i posted this then it will not work....


Now it will so copy / pass it if you want that extra camp name thing =)

- decker
 
Thanks... Finally got it working.

I would like the mac to continue when hit by a mob. The toon will usually go ofcourse and end when it leaves the circle and I have to manually press the mac again.

Any help appreciated.
 
Wheres somoe good spots for a 56 bard ? Maybe a good one in PoN ? Any one got a good loc and maybe the cords to run with it ? Any where i can get xp and the mobs dont run would be cool.
 
Bard Kite Macro Dizzy.mac

Users who are viewing this thread

Back
Top
Cart