• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Bard Macro Question (1 Viewer)

jman123

New member
Joined
Feb 15, 2005
RedCents
Ok this post might end up going down in flames before I even finish writing it, but I have to try. I'm trying to use the following macro:

|Usage: /mac chantkite (radius) (heal%) (healsong) (selos) (#of dots) (dot1-9)
|ie. /mac chantkite 55 60 1 8 5 2 3 4 5 7
|radius of 55, heals at 60%, plays song 1 to heal, plays song 8 for selos, 5 dots, #'s 2 3 4 5 7
|

#event NeedTarget "You must first select a target for this spell!"
#event NeedTarget2 "Your target is out of range, get closer!"
#event seetarget "You cannot see your target."
#event exp "#*#experience!!"

Sub Main(int outer rad,int hp,int hps,int selos,int dots,int dots1,int dots2,int dots3,int dots4,int dots5,int
dots6,int dots7,int dots8,int dots9)
/declare radius int outer ${rad}
/declare health int outer ${hp}
/declare hpsong int outer ${hps}
/declare dotnumber int outer ${dots}
/declare dot1 int outer ${dots1}
/declare dot2 int outer ${dots2}
/declare dot3 int outer ${dots3}
/declare dot4 int outer ${dots4}
/declare dot5 int outer ${dots5}
/declare dot6 int outer ${dots6}
/declare dot7 int outer ${dots7}
/declare dot8 int outer ${dots8}
/declare dot9 int outer ${dots9}
/declare healsong int outer 0
/declare SeloSong int outer ${selos}
/declare targetammount int outer
/declare PrevSong int outer
/varset PrevSong 0

/echo Selo's: ${Me.Gem[${SeloSong}].Name}
/circle on ${radius}
/call normaltwist
:MainLoop
/doevents
/call gmcheck
/nomodkey /keypress forward hold
/call selosong
/call healsong
/delay 1S
/nomodkey /keypress forward hold
/goto :MainLoop

/return

Sub Event_exp
/tar npc radius 150
/call normaltwist
/return

Sub Event_NeedTarget
/if (!${Target.ID}) /target npc radius 150
/return

Sub Event_NeedTarget2
/target npc
/return

Sub Event_seetarget
/varcalc targetammount ${targetammount}+1
/if (${targetammount}>=10) {
/target npc
/varset targetammount 0
/return
}
/return

Sub Event_targetid
/varset targetammount 0
/return

sub selosong
/if (${Me.Buff[${Me.Gem[${SeloSong}].Name}].Duration}<=6) {
/echo Selos about to die
/stopsong
/twist ${SeloSong}
/delay 1S
/nomodkey /keypress forward hold
/delay 1S
/nomodkey /keypress forward hold
/delay 1S
/nomodkey /keypress forward hold
/delay 1S
/nomodkey /keypress forward hold
/call normaltwist
/varset PrevSong 0
/doevents
/return
}

/return

Sub healsong
/if (${healsong}==0) /if (${Me.PctHPs}<=${health}) {
/call healtwist
/varset healsong 1
/return
}
/if (${healsong}==1) /if (${Me.PctHPs}>=96) {
/call normaltwist
/varset healsong 0
/return
}
/return

sub normaltwist
/if (${dotnumber}==1) /twist ${dot1}
/if (${dotnumber}==2) /twist ${dot1} ${dot2}
/if (${dotnumber}==3) /twist ${dot1} ${dot2} ${dot3}
/if (${dotnumber}==4) /twist ${dot1} ${dot2} ${dot3} ${dot4}
/if (${dotnumber}==5) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5}
/if (${dotnumber}==6) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5} ${dot6}
/if (${dotnumber}==7) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5} ${dot6} ${dot7}
/if (${dotnumber}==8) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5} ${dot6} ${dot7} ${dot8}
/if (${dotnumber}==9) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5} ${dot6} ${dot7} ${dot8} ${dot9}
/return

sub healtwist
/if (${dotnumber}==1) /twist ${dot1} ${hpsong}
/if (${dotnumber}==2) /twist ${dot1} ${dot2} ${hpsong}
/if (${dotnumber}==3) /twist ${dot1} ${dot2} ${dot3} ${hpsong}
/if (${dotnumber}>=4) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${hpsong}
/return

sub gmcheck
/if (${Spawn[gm].ID}) {
/MQLog GM entered the zone!
/mqlog For safty reasons ending the macro
/echo GM entered the zone!
/echo For safty reasons ending the macro
/endmac
/keypress instant_camp
}
/return


This one twists a different song after the mob hits whatever % hp

This is EXACTLY how it is pasted in my notepad. I have my hotkey in-game setup as follows:

/mac chantkite 70 0 0 1 1 2

I do this to achieve a 70 circle, never heal, selo's in slot 1, and brusco's bellow in slot 2 (wanna keep it simple till I get it down). Now this is what I see in my MQ window when I press the hotkey:

DoCommand - Couldn't parse 'dots6,int dots7,int dots8,int dots9)'
chantkite.mac@12 (Main(int outer rad,int hp,int hps,int selos,int dots,int dots1,int dots2,int dots3,int dots4,int dots5,int): dots6,int dots7,int dots8,int dots9)
[MQ2] Selo's: Selo's Accelerando
DoCommand - Couldn't parse '/circle on $(radius)'
chantkite.mac@33 (Main(int outer rad,int hp,int hps,int selos,int dots,int dots1/int dots2,int dots3,int dots4,int dots5,int): /circle on $(radius)
DoCommand - Couldn't parse '/twist 2'

Ugh......typing it out by hand hopefully someone reading this already knows the answer to fix lol but here's the short version of the rest:

blah blah blah
[MQ2] Selos about to die
DoCommand - Couldn't parse '/twist $(SeloSong)'
blah blah blah

My bard never targets a mob or runs in a circle....just runs strait. Hopefully this is an easy fix that everyone knows about because I just got carpal tunnel from all this typing lol.

P.S. All person's who help shall receive free 2-week vacations at my beach resort I just bought in Kansas (those salespeople are so nice!)
 
this should fix it
Rich (BB code):
|Usage: /mac chantkite (radius) (heal%) (healsong) (selos) (#of dots) (dot1-9)
|ie. /mac chantkite 55 60 1 8 5 2 3 4 5 7
|radius of 55, heals at 60%, plays song 1 to heal, plays song 8 for selos, 5 dots, #'s 2 3 4 5 7
|
 
#event NeedTarget "You must first select a target for this spell!" 
#event NeedTarget2 "Your target is out of range, get closer!"
#event seetarget "You cannot see your target."
#event exp "#*#experience!!"
 
Sub Main(int rad,int hp,int hps,int selos,int dots,int dots1,int dots2,int dots3,int dots4,int dots5,int dots6,int dots7,int dots8,int dots9)
/delay 2
/declare radius int outer ${rad}
/declare health int outer ${hp}
/declare hpsong int outer ${hps}
/declare dotnumber int outer ${dots}
/declare dot1 int outer ${dots1}
/declare dot2 int outer ${dots2}
/declare dot3 int outer ${dots3}
/declare dot4 int outer ${dots4}
/declare dot5 int outer ${dots5}
/declare dot6 int outer ${dots6}
/declare dot7 int outer ${dots7}
/declare dot8 int outer ${dots8}
/declare dot9 int outer ${dots9}
/declare healsong int outer 0
/declare SeloSong int outer ${selos} 
/declare targetammount int outer
/declare PrevSong int outer 
/varset PrevSong 0 
/echo Selo's: ${Me.Gem[${SeloSong}].Name}
/circle on ${radius}
/call normaltwist
:MainLoop 
/doevents
/call gmcheck
/nomodkey /keypress forward hold
/call selosong
/call healsong
/delay 1S
/nomodkey /keypress forward hold
/goto :MainLoop 
 
/return 
 
Sub Event_exp
/tar npc radius 150
/call normaltwist
/return
 
Sub Event_NeedTarget 
/if (!${Target.ID}) /target npc radius 150
/return
 
Sub Event_NeedTarget2
/target npc
/return
 
Sub Event_seetarget
/varcalc targetammount ${targetammount}+1
/if (${targetammount}>=10) {
/target npc
/varset targetammount 0
/return
}
/return
 
Sub Event_targetid
/varset targetammount 0
/return
 
sub selosong
/if (${Me.Buff[${Me.Gem[${SeloSong}].Name}].Duration}<=6) { 
/echo Selos about to die 
/stopsong
/twist ${SeloSong}
/delay 1S
/nomodkey /keypress forward hold
/delay 1S
/nomodkey /keypress forward hold
/delay 1S
/nomodkey /keypress forward hold
/delay 1S
/nomodkey /keypress forward hold
/call normaltwist
/varset PrevSong 0 
/doevents 
/return 
} 
 
/return
 
Sub healsong
/if (${healsong}==0) /if (${Me.PctHPs}<=${health}) {
/call healtwist
/varset healsong 1
/return
}
/if (${healsong}==1) /if (${Me.PctHPs}>=96) {
/call normaltwist
/varset healsong 0
/return
}
/return
 
sub normaltwist
/if (${dotnumber}==1) /twist ${dot1}
/if (${dotnumber}==2) /twist ${dot1} ${dot2}
/if (${dotnumber}==3) /twist ${dot1} ${dot2} ${dot3}
/if (${dotnumber}==4) /twist ${dot1} ${dot2} ${dot3} ${dot4}
/if (${dotnumber}==5) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5}
/if (${dotnumber}==6) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5} ${dot6}
/if (${dotnumber}==7) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5} ${dot6} ${dot7}
/if (${dotnumber}==8) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5} ${dot6} ${dot7} ${dot8}
/if (${dotnumber}==9) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${dot5} ${dot6} ${dot7} ${dot8} ${dot9}
/return
 
sub healtwist
/if (${dotnumber}==1) /twist ${dot1} ${hpsong}
/if (${dotnumber}==2) /twist ${dot1} ${dot2} ${hpsong}
/if (${dotnumber}==3) /twist ${dot1} ${dot2} ${dot3} ${hpsong}
/if (${dotnumber}>=4) /twist ${dot1} ${dot2} ${dot3} ${dot4} ${hpsong}
/return
 
sub gmcheck
/if (${Spawn[gm].ID}) {
/MQLog GM entered the zone!
/mqlog For safty reasons ending the macro
/echo GM entered the zone!
/echo For safty reasons ending the macro
/endmac
/keypress instant_camp
}
/return
 
Ok got the program up and running but I'm having a few problems:

1. Selo's is only 12 seconds long and I think the program keeps stopping other songs to recast....thus no dmamage is being done to mobs. I was thinking maybe taking it out (as I could use a sow potion) or putting something in the code to increase the amount of time between casts regardless of whether or not it drops?

2. I've don circle radius of 70 and 55 (Marus Seru) and I always get a message that my target is too far away....not sure if this is because selo's is messing up the timing or if it's something else.

I ran it for 30 minutes with my cleric there to babysit and bard never did a single point of damage to anything.

P.S. Thanks for the help earlier with my /plugins for twist and moveutils was tearing my hair out :D
 
One other way I found that works because sometimes you miss the note and don't get Selo for a few rounds is to build it into twist twice.

ie: if Selo is in slot one and you do 1 3 4 6 then change it to 1 3 4 6 1 4 6. I can tell you it hurt in HOH if you miss a few notes in a row. lol
 
Bard Macro Question

Users who are viewing this thread

Back
Top