mq2melody

Sorry didn't realize it didn't like correctly.

Plugin creator is winnower.

PLUGIN: MQ2Medley 20150723 - Bard Song Scheduler

Song scheduler for the modern bard.

This is the preview version. It's pretty fully features and working, but I expect there to be a few issues, just keep an eye on it.

This plugin grew out my frustration with MQ2Twist and it being hard to change from twist to twist while still being efficient and not recasting the songs that already had signification duration left. Was hard to use aria, "A Tune Struck in My Head", and burn twists effectively

This is the next evolution of MQ2Twist. Features
set conditions for each song in the medley. Only want to cast on named? Only want to do insult if mana > 10%? Only want to cast dots if attack is on? Only want to cast mana regen when not in combat?
Advanced queuing support. Can specific target of queued spells for mez or cure and plugin will switch back to existing target with plugin reflexes. Optional interrupt when queing song.
Adapt your song song set without missing a beat when under the effect of "A tune stuck in my head"
priority scheduling. Did you just mez 3 mobs? Switch back to your most important spells automatically
automatically switch to maintaining 7 songs when Tune is up
switch from medley to medley while still remembering the duration of current songs. Named up? just do switch to your burn medley to introduce new songs to the mix, while knowing what songs are already up.
 
I had it working pretty well. Haven't tested it in about two years though.
 
Thanks alot!

I love this community!
 
whaaaat :)

cant wait to try it out, is there wiki info somewhere btw :)?
 
a little insight on medley if anyone understands

Trying this plugin out and wondering what the ^ before and after 60 stands for, guessing the 60 is recast?

Also how many songs is medley able to keep up 4, 5 maybe 6?

Do the songs that you use in your line up have to be set up in order (song1 song2 song3 etc)

Would there be a way to put in AE mez (if in combat state, and mobs in X range), I have an idea based on attempts from holy flags but any insight appreciated


song2=Rapier of Somber Notes^60^${Spell[Symphony of Battle].Stacks} && !${Me.Buff[Symphony of Battle].ID}

what does this syntax mean, the 6 the * and the ^1 : (6*${Medley.Tune})^1
 
Last edited:
Trying this plugin out and wondering what the ^ before and after 60 stands for, guessing the 60 is recast?

Also how many songs is medley able to keep up 4, 5 maybe 6?

Do the songs that you use in your line up have to be set up in order (song1 song2 song3 etc)

Would there be a way to put in AE mez (if in combat state, and mobs in X range), I have an idea based on attempts from holy flags but any insight appreciated


song2=Rapier of Somber Notes^60^${Spell[Symphony of Battle].Stacks} && !${Me.Buff[Symphony of Battle].ID}

what does this syntax mean, the 6 the * and the ^1 : (6*${Medley.Tune})^1

How many songs can it keep up? Depends on your line up, the recast duration's.

Do the songs have to be in order? Yes. The point of the plugin is to provide a priority queue for the songs. When it comes time to cast a spell, it walks the list of songs 1,2,3,4... until it finds one that is ready to cast, and has the conditional true.

Would there be a way to put in AE mez? Yes it is possible.

What does this syntax mean ... : The author wanted to be able to factor in when you are running "A tune stuck in my head" which gives songs an extra tick duration. ${Medley.Tune} return 1 if it is running so you can use that to add an extra 6s to the recast time.

Here is the full docs from the original author:

----------------------------------------------------------

INI Format

Can define multiply medleys in section named MQ2Medley-medleyname.
Define up to 20 songs, song1-song20
Each song has 3 parts separate by carrot(^) symbol
Part 1: Song, Item or AA name
Part 2: Duration the song lasts, this must be an expression like you would send to ${Math.Calc[part2]}. This how long you expect the buff to last. Notice use of ${Medley.Tune} in my example to increase duration if A Tune Stuck in my Head is up.
Part 3: Condition for this song to cast. Also an expression for Math.Calc

Scheduling
Songs will cast in priority order, song1 > song2 > ... > song20
Songs that are not read, will be skipped (Crescendo, Items, AA, etc)
Songs that still have active duration will be skipped (typically will start casting a song if less than 6 seconds left on their duration)
If all songs are active, then will cast the one that will expire soonest.

Commands
/medley name - Sing the given medley
/medley queue "song/item/aa name" [-targetid|spawnid] [-interrupt] - add songs to queue to cast once
/medley stop/end/off - stop singing
/medley - Resume the medley after using /medley stop
/medley delay # - 10ths of a second, minimum of 0, default 3, how long after casting a spell to wait to cast next spell
/medley reload - reload the INI file
/medley quiet - Toggles songs listing for medley and queued songs

Command examples
/medley melee
play medley defined in [MQ2Medley-melee] ini setion
/medley queue "Dirge of the Sleepwalker" -interrupt
Interrupt current song and cast AA "Dirge of the Sleepwaler"
/medley queue "Slumber of Silisia" -targetid|${Me.XTarget[2].ID}
When current song ends, will mez XTarget[2], briefly switching target to XTraget[2] then switching back to current target.
Target will be switched for one pulse, which is typically less than 20ms
/medley queue "Blade of Vesagran"
Add epic click to queue
/medley queue "Lesson of the Devoted"
Lesson of the Devoted AA will be added to the twist queue and sung when current song finished

TLOs
Medley.Medley
- string of current medley
- false (boolean) if no current medley
Medley.TTQE (time to queue empty)
- double time in seconds until queue is empty, this is estimate only. If performating normal medley, this will be 0.0
Medley.Tune
- int 1 if buffed with "A Tune Stuck in My Head", 0 otherwise
Medley.Active
- boolean true if MQ2Medley is currently trying to cast spells

Plugin Interaction
MQ2Medley has no plugin dependencies

MQ2Twist - should be able to coexist, just don't /twist and /medley at the same time
MQ2Cast - recommend not using this on your bard. use "/medley queue" to cast items and aa with cast time. use /alt activate or /cast item to cast instant cast AA and items, can do this even while medley is active (bards are awesome like that)
 
been trying to see if some of this stuff works

my AE mez attempt:

Code:
song1=Wave of Somnolence^30^${Target.Type.Equal[NPC]} && ${Melee.Combat} && ${SpawnCount[NPC radius 30 zradius 10]}>2 && (${Target.PctHPs}<98)

what does the number 6 refer to in : (6*${Medley.Tune})^1

is that the max number of songs it will try to twist normally maybe?

with crescendo Im going to try to see if can do it w a mana or endurance check, so it wont strain trying to use that song when everyone is full
Code:
song6=Jembel's Lively Crescendo^45^1

if this plugin works, it will save me some holyflags that are iffy and un reliability of some songs, hopefully the AE mez works out
 
The actual line is :

song1=War March of Jocelyn^18 + (6*${Medley.Tune})^1

Name = War March of Jocelyn
Recast = 18 + (6*${Medley.Tune})
CastIF = 1

So always cast this song, and the recast time is either 18s or 24s depending on if tune is active.
 
Last edited:
You really do not want to mix melee shits with this. They will end up fighting each other to cast spells.

Melee is a wonderful addition but little control in the order in which the shits get fired off. You just have a big collection of "IF (...) THEN CAST ..." which get cycled in a loop over and over.

Medley always starts at the song1 > song2 > song3 , etc. which means its possible that songs at the end of the list never get called because something above them always refreshes.

So long recast bufs like selos, burns, etc should go near the top of the list.
 
im trying to replace the melee shits w this if this works better

I think I understand better now w the comment about putting longer recast songs at the top

ill try to put a few songs w conditions at top (named, adds etc) followed by clickys, and right after about 6 songs that I hope to normally use
 
im trying to replace the melee shits w this if this works better

I think I understand better now w the comment about putting longer recast songs at the top

ill try to put a few songs w conditions at top (named, adds etc) followed by clickys, and right after about 6 songs that I hope to normally use

If you get any good sets let me know. I struggle with this stuff :p
 
is there a way and if not can it be added that it doesnt spam the MQ window so much that you cant read anything else in there? (some silent mode or something)

is there something on my end that I can do so it can redo a song a bit sooner, atm its waiting till song is about over or over b4 trying to re sing it

If it waits for the last second to recast, not only will there be gaps but if other things come up ahead of that song its that much longer for it to be sung again
 
If you want to "shorten" the duration you could put in a shorter recast time.

I haven't looked a the code in years so I don't recall if there is any form of "silent" mode.
 
You have quiet mode on? /medley quiet
You have debug off? /medley debug
 
Debug=0 got rid of the spam,
I wanted to share what I have so far

I am starting to like it and am tweaking as we speak, one thing that I notice is after it does Dichotomic Psalm it seems to hang in there a while and not sing for a few and lets the other songs expire

I am currently doing up to 6 songs in combat 4 out of combat, so its kinda like rest mode and melee mode I guess

I put in a ae mez attempt, I will be working in the AA mez, which seems like it has a nice set up for.

I am reading thru stuff to try to do Crescendo if grp members are below X mana or endurance

so been sprinkling combat and non combat checks as well as named checks

I have to admit its fun tinkering with it, ty for the plugin

Code:
[MQ2Medley]
Delay=3
Quiet=1
Debug=0

[MQ2Medley-melee]
songif=!${Me.Invis}

song1=Wave of Somnolence^30^${Target.Type.Equal[NPC]} && ${Melee.Combat} && ${SpawnCount[NPC radius 30 zradius 10]}>2 && (${Target.PctHPs}<98) 
song2=Blade of Vesagran^1800^${Target.Type.Equal[NPC]} && ${Target.PctHPs}<98 &&(!${SpawnCount[group pc shaman radius 100]} || ${Me.Song[Prophet's Gift of the Ruchu].ID})

song3=Travenro's Song of Suffering^24^1 && ${Melee.Combat}
song4=Aria of Begalru Rk. II^24 + (6*${Medley.Tune})^1
song5=War March of Dekloaz^24+(6*${Medley.Tune})^1
song6=Pulse of Xigam^24 + (6*${Medley.Tune})^1
song7=Kluzen's Spry Sonata^24 + (6*${Medley.Tune})^1
song8=Second Psalm of Veeshan^24 + (6*${Medley.Tune})^1 && ${Melee.Combat}
song9=Chorus of Xigam^24 + (6*${Medley.Tune})^1 && ${Melee.Combat}

song10=Dichotomic Psalm^60^1 && ${Melee.Combat}
song11=Jembel's Lively Crescendo^60^1 && !${Melee.Combat}

song12=Rapier of Somber Notes^60^${Spell[Symphony of Battle].Stacks} && !${Me.Buff[Symphony of Battle].ID}
song13=Nature's Melody^300^${Spell[Nature's Melody].Stacks} && !${Me.Buff[Nature's Melody].ID}
song14=Selo's Sonata^300^${Spell[Selo's Sonata].Stacks}

song15=Tune Stuck In Your Head^780^1 && ${Target.Type.Equal[NPC]} && ${Melee.Combat}
song16=Rallying Solo^600^1 && !${Melee.Combat} && ${Me.PctEndurance}<20
song17=Boastful Bellow^18^${Target.Type.Equal[NPC]} && ${Target.PctHPs}<98 && ${Melee.Combat}
song18=Bladed Song^18^${Target.Type.Equal[NPC]} && ${Target.PctHPs}<98 && ${Melee.Combat}
song19=Fierce Eye^18^${Target.Type.Equal[NPC]} && ${Target.PctHPs}<98 && ${Melee.Combat}
song20=Fundament: Third Spire of the Minstrels^18^${Target.Type.Equal[NPC]} && ${Target.PctHPs}<98 && ${Melee.Combat}
song21=Funeral Dirge^18^${Target.Type.Equal[NPC]} && ${Target.PctHPs}<98 && ${Melee.Combat}
song22=Quick Time^18^${Target.Type.Equal[NPC]} && ${Target.PctHPs}<98 && ${Melee.Combat}
song23=Song of Stone^18^${Target.Type.Equal[NPC]} && ${Target.PctHPs}<98 && ${Melee.Combat}
song24=Cacophony^18^${Target.Type.Equal[NPC]} && ${Target.PctHPs}<98 && ${Melee.Combat}
song25=Dance of Blades^18^${Target.Type.Equal[NPC]} && ${Target.Named} && ${Me.CombatAbilityReady[Thousand Blades]} && ${Target.PctHPs}<98 && ${Melee.Combat}
 
Last edited: