Goto page Previous  1, 2, 3 Public Macros Macro basics - a tutorial
Reply
${Me.Casting.ID} can still return false even in the middle of a Twist. It happens once every cycle with a 3 song twist. It can happen in a 4 song cycle if you have low latency or if one of the songs lasts longer than 3 ticks (like the 150s Selo's). It can happen in the 8 song twist as well (missed notes). The /twist commands may fire even if the preceding /twist stop do not.

We also need to know how and when Sub Song is called and also how and when your bard's attack is turned on. Each affects the logic flow.
Fri Jan 11, 2013 11:47 pm
Senior Project Member
This seems to work, although like you said sometimes it want turn on the CMBT_SONGS, have to turn on attack on and off. Twisting is a bit weird too, if I used a hotkey like /bct BardName ///twist 1 2 3 4 8 9 lets say all the songs work, but if I run the macro an average of 5 songs are on at all times. The bard does have all singing aa. They are all 3 second songs, wish they cast faster. I put in Me.Buff to detect if buffs are missing and prevent going ld because the macro is trying to spam /twist stop in other subs.

For now assists are mapkeyed and use EQ macros from the hotbar. I been doing this a very short time, trying to improve it on the fly. Thanks again.

Oh Song List:
Harmony of Sound - 3 sec - Debuff
Slayer's Destiny Rk. II - 3 sec - Song
Minstrel's Guard Rk. II - 3 sec - Song
Vulka's Chant of Flame - 3 sec - Debuff / Dot
Cantata of Hope Rk. II - 3 sec - Song
War March of Chaos - 3 sec - Song

If possible I would like to use 2 more 3 sec Debuffs, but the way it is working now don't think I can.

I use /call cast item, because it was one of the first click item commands I learned. It seems to work, I have attempted food switching and mouse clicking, it works on my non singing toons, but o the bard it does not. It may need a longer delay?



Macro
More +


#turbo 40

#include spell_routines.inc

#chat group
#chat tell
#chat raid

#define CMBT_SONGS "1 2 3 4 8 9"
#define REST_SONGS "2 3 8 9"

#event dps "#1# tells the group, 'Burst Dps'"
#event epic "#1# tells the group, 'Epic Click'"


#event Dead                   "#*#You have been slain by#*#"
#Event Summoned "#*#You have been summoned#*#"


Sub Main

/popup BardLogic
/declare x int outer 0
/declare buffs int 1
/declare FoundBuff bool
/declare counter int 19


/declare epic     string outer    Ancient Frozen Blade of Vesagran
/declare skull     string outer  Immaculate Band of Frost

/declare TRUE int outer 1



|Comment- Adjust Timer
/declare maintimer  timer            outer 0s
/declare briartimer  timer            outer 0s
/declare contimer  timer            outer 0s
/declare peaktimer  timer            outer 0s
/declare woventimer  timer            outer 0s
/declare epictimer    timer            outer 0s
/declare skulltimer    timer            outer 0s
/declare songtimer    timer            outer 0s
/declare song2timer    timer            outer 0s

:Start
/doevents
/delay 10


|- If we're stunned or RH is paused, just service events

 | /if (${Me.State.Equal[STUN]}) /Call Song

|/if (${Me.State.Equal[FEIGN]}) /goto :Start
|/if (${Me.State.Equal[DUCK]}) /goto :Start
/if (${Me.State.Equal[SILENCE]}) /goto :Start

/call drink
/call food
/if (!${Me.Buff[Briarcoat].ID}) /call brier
/if (!${Me.Buff[Improved Dodge I].ID}) /call con
/if (!${Me.Buff[Aged Power].ID}) /call peak
/if (!${Me.Buff[Form of Defense VII].ID}) /call woven
/if (!${Me.Buff[Firedance].ID}) /call click1


/call Song





:next



/goto :Start

Sub drink

/if (3500 > ${Me.Thirst}) /goto :drink
/return
:drink
/twist stop
/exchange "Qeynos Afternoon Tea" ${InvSlot[Pack8]}
/delay 2
/itemnotify ${FindItem["Qeynos Afternoon Tea"].InvSlot[30]} rightmouseup
/delay 2
/exchange "Iced Necklace" ${InvSlot[Pack8]}
/delay 1

/return

Sub food

/if (3500 > ${Me.Hunger}) /goto :food
/return
:food
/twist stop
/exchange "Misty Thicket Picnic" ${InvSlot[Pack8]}
/delay 2
/itemnotify ${FindItem["Misty Thicket Picnic"].InvSlot[30]} rightmouseup
/delay 2
/exchange "Iced Necklace" ${InvSlot[Pack8]}
/delay 1

/return


Sub brier

 /twist stop
/if (${Me.SpellReady[9]}) /goto :br

/return
:br

/if (${briertimer} == 0) {
/call cast "Iced Necklace" item 0s
/delay 1

/varset briartimer 10s
 }     
/return


Sub con

 /twist stop
/if (${Me.SpellReady[9]}) /goto :cons

/return
:cons

/if (${contimer} == 0) {
/call cast "Ring of the Constable" item 2s
/delay 1

/varset contimer 10s
 }     
/return

Sub peak


/twist stop
/if (${Me.SpellReady[9]}) /goto :peak

/return
:peak

/if (${peaktimer} == 0) {
/call cast "Earring of Corruption" item 1s
/delay 1

/varset peaktimer 10s
 }     
/return



Sub woven

 /twist stop
/if (${Me.SpellReady[9]}) /goto :woven

/return
:woven

/if (${woventimer} == 0) {
/call cast "Woven Order Sash" item 1s
/delay 1


/varset woventimer 10s
 }     
/return


Sub click1

 /twist stop
/if (${Me.SpellReady[9]}) /goto :click

/return
:click

/if (${maintimer} == 0) {
/call cast "Eloquent Sword of the Minstrel" item 0s
/delay 1

/varset maintimer 120s
 }     
/return


Sub Song

/if (!${Me.Buff[Briarcoat].ID} || !${Me.Buff[Improved Dodge I].ID} || !${Me.Buff[Aged Power].ID} || !${Me.Buff[Form of Defense VII].ID} || !${Me.Buff[Firedance].ID}) /return




/if (${Target.PctHPs}<97 && ${Target.Type.Equal[NPC]} && ${Target.Type.NotEqual[CORPSE]} && ${Twist.List.NotEqual[CMBT_SONGS]})  /goto :L

/if (${Me.Combat}) /twist stop
/if (!${Me.Casting.ID}) /twist 2 3 8 9
/return

:L

/if (!${Me.Combat} && ${Twist.List.NotEqual[REST_SONGS]}) /twist stop
/if (!${Me.Casting.ID}) /twist 1 2 3 4 8 9
 }
/return







Sub Event_dps(Line,Targ)
/if (${skulltimer} == 0) /goto :skull
/declare product int local ${Math.Calc[${skulltimer}*0.1]}
/g Time to reuse on the Immaculate Band of Frost is ${product} seconds
/return

:skull

/twist stop

/delay 1
/call cast "${skull}" item 0s
/g Clicked Immaculate Band of Frost - Power of Fear On!!!
/if (!${Me.Casting}) /twist 2 3 8 9

/varset skulltimer 120s
 }     
/return


Sub Event_epic(Line,Targ)
/if (${epictimer} == 0) /goto :epic
/declare product int local ${Math.Calc[${epictimer}*0.1]}
/g Time to reuse on the Ancient Frozen Blade of Vesagran is ${product} seconds
/return

:epic
/twist stop
/delay 1

/call cast "${epic}" item 0s
/g Clicked Ancient Frozen Blade of Vesagran - Epic is On!!!
/delay 1
/if (!${Me.Casting}) /twist 2 3 8 9

/varset epictimer 180s
 }     
/return



| ################## I Died
Sub Event_Dead

/delay 15s
/echo you died sniff
/delay 3



 /consent ${Group.Member[0]}
 /echo consented ${Group.Member[0]}


 /consent ${Group.Member[1]}
 /echo consented ${Group.Member[1]}

 /consent ${Group.Member[2]}
 /echo consented ${Group.Member[2]}

 /consent ${Group.Member[3]}
 /echo consented ${Group.Member[3]}

 /consent ${Group.Member[4]}
 /echo consented ${Group.Member[4]}

 /consent ${Group.Member[5]}
 /echo consented ${Group.Member[5]}

/delay 5s

/memspellset 3

/return


SUB Event_Summoned
/delay 3s
/return


Wonder if this may be improved. Thanks!
Sat Jan 12, 2013 1:02 am
Hiya,

i have a question about /bca command:

Other toons target me:
/bca //target ID ${Me.ID}

Other toons target my target:
/bca //target ID ${Target.ID}

But is there any way to command other toons (more than one toon) to target themself ?
Fri Jan 17, 2014 3:34 am
Try /noparse /bca //target ID ${Me.ID}

That should in theory keep the Variable from parsing on the senders client, so the receiver gets the me variable as written and then parses it himself
Fri Jan 17, 2014 8:03 am
Project Lead
Another way (not as good, just showing alternatives):
/bca //targetclear
/bca //keypress F1

or something like that. There are in client commands to do that action. MQ2/netbots can send the proper keystrokes.
Sat Jan 18, 2014 1:52 am
Senior Project Member
Maudigan is correct. Use /noparse and they will target themselves.
Keep in mind you don't always need to target depending on what you are doing.
ie /cast, /casting, stick
Sun Jan 19, 2014 3:28 am
Listen to This Guy
Thank you again for the help, the selftarget works wonderful with /noparse.
Tue Jan 21, 2014 8:10 am
Goto page Previous  1, 2, 3 Public Macros Macro basics - a tutorial
Reply