• 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

Question - Bard Dicho - Long Recast - Spamming Server?

Joined
Jan 14, 2016
RedCents
1,418¢
I am getting the "You haven't recovered yet" msg in rapid succession and was wondering if that spams the server. I added another song to the line up to try and stretch out the time between, and it works most of the time, but every once in awhile I see that msg spam rapidly.

I thought there was a check to see if skill/ability/spell was ready...

Should I add another song to the line-up? I haven't because if I extend it too far it will never fire since the mob is dead, and I might as well take it out.

It looks to me that the dicho is on a whole other timing mechanism. I've seen it tie up the whole battle twist even after mob is dead when in the past with other songs casting was halted so something is different with the dicho...

Education welcome, even sought.

~ Lips ;-*
 
One of the reasons I find odd shit and behavior is that often times (thx CT) I use things outside of their intended scope.

I am using the dicho in the battle twist because I liken it to the way AutoCleric casts the promise line on the pullertank as soon as it gets in range from a pull; because it knows full well dmg is coming and a heal WILL be needed. I put the dicho as the last of 5 songs in the battle twist so by the end of the fight everyone has mitigated the cost of that fight thereby removing the need to recover. It's preemptive, proactive, BAM ready for the next. Hell could chain pull with that shit there, just sayin.

Anyway, that's how I'm using it, and why. I could be outside the intended purpose...
 
There is some funkiness with the Dicho line. When trying to use my Warriors combat ability you can't actually use the main Combat abilities ID, but the Secondary one. I forget exactly what the issue was, but it caused us to rewrite part of KA just so The Dicho Combat Ability could be used in KA. I am sure there is more of the same funkiness when it comes to the song.
 
There is some funkiness with the Dicho line. When trying to use my Warriors combat ability you can't actually use the main Combat abilities ID, but the Secondary one. I forget exactly what the issue was, but it caused us to rewrite part of KA just so The Dicho Combat Ability could be used in KA. I am sure there is more of the same funkiness when it comes to the song.

Its because you get 2 versions of it. Dicho spells work like this

1. Cast Dicho spell/disc
2. Casting the spell procs the actual ability which is level 250 but it has the same exact name as the 101 spell/disc you cast.

So when you do /disc or /cast it wont work because it tries to cast the level 250 version. The only way I found to use the disc version is /doability MQ2cast has to be rewritten to only try and cast spells at or below your level instead of any spell that matches the name.
 
Hmmm, interesting. Would I then be better off putting it in a downshit? Or, would setting it as a buff (which I didn't want to do because it would fire AFTER the most beneficial time) be better than in the Battle twist? Hell I don't think I've tried setting a buff for the bard other than the aura, wonder how that would work.
 
What William12 said is true, but for reasons you may not realize. What we found if you try and use this: /disc ${Me.CombatAbility[DichoWhatever]}].ID} it will fail, but if you Use this it will work: /disc ${Me.CombatAbility[${Me.CombatAbility[DichoWhatever]}].ID}. The first one returns the wrong/250 level ID, but the second one returns the correct/100 level ID.
 
Does KA use MQ2Twist or MQ2melody or have it's own script for bards?

I know MQ2Twist sometimes needs tweaking on long recast songs for instance.
 
This may not be the answer, but its what I have been doing.....I have a long twist (MeleeTwistWhat=1 2 3 4 5 6 7 8) and 7 is my dicho song. Mobs rarely live long enough to get that deep into my lineup....so dicho was never firing. So, I added it to my twist med, and it seems to fire between mobs.....and therefore regening my wizzy's mana, and my zerker and warriors endurance. Disclaimer: I am a huge novice and really know shit about anything...I have just found this works, and I dont see spam....but it may still be there I just havent noticed it.
TwistOn=1
TwistMed=8
TwistWhat=8 7
 
That's exactly what I was thinking of doing. I was thinking of trying the dicho for the non-combat twist between battles instead of the (previously) normal regen song. Yes at first I wanted the dicho benefit at the time everyone was draining mana and endurace, but your thinking seems sound and Ima try it.

- - - Updated - - -

And that works, no more spam. I have 2 songs in the TwistWhat (non-combat) and it just keeps firing the one because dicho is on cooldown. Perfect, we'll go with that.

- - - Updated - - -

And, it's refreshed by the time battle is over to fire right afterwards so the puller gets the bonus! That's the answer definitely!

- - - Updated - - -

Ugh, unless the mob dies too fast... it's better, but after a couple of rounds I got spam... I'm still afraid it's hitting the server, gonna have to drop dicho.
 
I ran into this when adding the crescendo song, and found at the time I needed to tinker with a setting in twist. I don't use KA regularly but my macro does us MQ2Twist, and I use the Dicho song in combat and rest, with out a hitch. (provided I double check me spelling...damn fat fingers!)

Rich (BB code):
[MQ2Twist] 
Delay=32                 Delay between twists (in 10ths of a second). Lag & System dependant. 
Adjust=1                 This defines  how many ticks before the 'normal' 
                         recast time to cast a long song.

Rich (BB code):
    /twist adjust #

    How early to recast long duration songs (in ticks)

Rich (BB code):
    /twist delay #

    Specify the delay to be used before starting a new song (in 10ths of a second). The minimum is 30, default is 33

as I understand it, each PC can require different settings.

The adjust setting is what helped me getting crescendo working properly. I did not have to make any more adjustments for Dicho. You may want to try different settings to see what works on your machine/set up.

The delay setting is also there to help with stuttering, like what you are seeing. It is basically trying to cast a song that the client says it ready but the server says is not (as someone explained to me, I don't claim to be an expert) this some systems need a small bit of delay for everything to sync up properly.
 
Ok, that looks interesting, so I went into my INI:

Rich (BB code):
[MQ2Twist]
Delay=33
Quiet=0
Adjust=1

So by defaullt I have 33 and Adjust 1. I'm afraid if I set stuff to accommodate the Dicho it will negatively affect every song (like make short(er) recasts take as long as I need for Dicho).

I wish I could set up the Dicho like an item click in the ini as that allows you to set a recasttime per clicky rather than affecting everything *sigh*.

Or, set it up like a buff, or better yet DPS with the |Once tag. I dunno. I took Dicho out for now...

- - - Updated - - -

What William12 said is true, but for reasons you may not realize. What we found if you try and use this: /disc ${Me.CombatAbility[DichoWhatever]}].ID} it will fail, but if you Use this it will work: /disc ${Me.CombatAbility[${Me.CombatAbility[DichoWhatever]}].ID}. The first one returns the wrong/250 level ID, but the second one returns the correct/100 level ID.

What's odd CT is that it does fire Dicho just fine. My issue is that it doesn't honor the recast timer and tries to fire it again as soon as it comes up in the fire list. Since it's a real long recast, it'll spam "You haven't recovered yet" about a hundred times until it is ready. It does not start the line-up again until recast is up and Dicho fires, it hangs there.

I'm looking at your /disc example trying to figure out if I need to make a change to KA.
 
It could be that the Me.CombatAbilityReady[DichoWhatever] is checking the level 250 CombatAbility and not the level 100. I wounder what Me.CombatAbilityReady[${Me.CombatAbility[${Me.CombatAbility[DichoWhatever]}].ID}] would report?
 
as far as twisting songs goes, I wouldn't think the second Dicho is causing the issue, since MQ2Twist just twists gems. Unless Mq2Twist has code checking recast, and is getting the wrong spell info maybe...

did you try fiddling with the adjust setting? It is suppose to be specifically for long casting songs, though how it determines that I don't know.
 
for standard KISS afk camp setup and tank pulls, I use this. Turn twist med=0 in KA off, and added the below downshit: /twist 10 being my dicho gem. Might help or might not for your specific situation. When I am playing the bard manually, I tend to twist a set of songs, and when I want to use dicho, stop twist and play dicho, then start my regular twist again.

kiss char ini.
TwistOn=0
TwistMed=0
TwistWhat=10

bard mq2melee:
downshit2=/if (${Macro.Name.Equal[kissassist.mac]} && ${Me.SpellReady[Dichotomic Psalm]} && ${Group.Member[${MainAssist}].Distance}<100 && !${Me.Invis}) /twist 10
 
Would it no be easier just have Dicho at the end of your melody along with crescendo? I don't KA my bard has I was having trouble with it breaking twist when I wanted to click items for me. Or do you guys stop songs after combat? Because you can keep 6 songs + dicho + crescendo when they are ready.
 
My bard is only 85, and I use Gruber's Lively Crescendo. I added it to my Buff ini, seems to work okay.
 
This is how I addressed the issue:

Rich (BB code):
holyshit1=/if (${Cast.Ready[Dichotomic Psalm]} && ${Me.Standing} && !${Me.Invis} && !${Select[${Me.Casting.ID},35221,49148]}) /twist once 11
holyshit2=/if (${Cast.Ready[Motlak's Lively Crescendo]} && ${Me.Standing} && !${Me.Invis} && !${Select[${Me.Casting.ID},35221,49148]}) /twist once 7

This rotates them in as they come off cooldown... I wanted this to be done when in combat vs a downshit

- - - Updated - - -

If you were following my post edits along at home you saw some nasty flavors of this :)

Basically check if the 2 cooldown spells are available... Also make sure that my current casting spell ID isn't one of the two spell Ids that I'm trying to cast (Spams /twist once and interrupts yourself if you aren't careful).
Put the spell name(s) in that you want to check along with the IDs in the Select Array if you want to do multiple cooldown spells as a bard... Like I tossed in a swarm pet holyshit as well.
 
Last edited:
What zones are being excluded? I'm guessing its stuff like PoK, PoTranq, Guild Hall, Guild Lobby, etc.
 
Zone excludes are more for downshits... These could be removed for a cleaner statement.


Sent from my iPhone using Tapatalk
 
Well I dunno Tone, if I'm standing around I wouldn't anything to fire, so I think zone exclusions apply to holys as well.

Might I see your code for the zone exclusions? Yes there are a number of holy/down zone exclusions posted in various places, but I have a feeling I would have less 'issues' using yours... I mean hell, unless I stated I had stress tested mine for a month would you trust mine? Lol.
 
Well I dunno Tone, if I'm standing around I wouldn't anything to fire, so I think zone exclusions apply to holys as well.

Might I see your code for the zone exclusions? Yes there are a number of holy/down zone exclusions posted in various places, but I have a feeling I would have less 'issues' using yours... I mean hell, unless I stated I had stress tested mine for a month would you trust mine? Lol.

!${Select[${Zone.ID},151,202,203,219,344,345,463,33480,33113]}

What I meant was... Holy's should only be firing in combat... If you die and rez in the Guild Lobby or POK for example and don't have exclusions on some of your downs... it will pop them. Holy's you would have to be standing there with auto attack on for some reason...
 
I've put both and up and down for the solution I posted across all of my groups, and it works great.


Sent from my iPhone using Tapatalk
 
I added this sub to RaidDruid, seems to help, though I am still testing. Occasionally when something fires off an AA at the right time it messes with MQ2Twist's casting. This event sub stops the twist and lets the macro pick it back up again, which it sees the message "You haven't recovered yet"

the timer is just to insure there is a minimal spamming issue, using 5 seconds for now.

Rich (BB code):
#Event Recovered		"You haven't recovered yet..."

Rich (BB code):
Sub Event_Recovered
	/if (${Me.Class.ShortName.Equal[BRD]} && !${RecoveredTimer}) {
		/twist off
		/delay 1s
		/twist off
		}
	/doevents flush Recovered
	/call CreateTimer RecoveredTimer 5s
	/return
 
Last edited:
Thx Warl0ck, I was attempting something similar as a toggle in a separate yet related shit, using /twist off and a flag to toggle on and off, in an attempt to gain control of MQ2Twist. Very similar... I will consider embedding such in current running mac, that's a whole new approach.

It is not returning NULL so that is good. But is the level 100 ability ready or not?

It appears to return false regardless of real state. I hadn't realized this and spent considerable time trying to figure out why a shit was firing when this was in the test. I am frustrated with the whole bard dicho, think I might go around the neighborhood kicking puppies for a few hours.
 
Afraid I am not familiar enough with MQ2 workings to know if it makes a difference but "${Me.CombatAbilityReady[${Me.CombatAbility[${Me.CombatAbility[Dichotomic Psalm]}].ID}]}" since that is a song (spell) would that effect the end result? just tried it on my bard while standing still (not singing) returned false.

And of course since Me.SpellReady and Cast.Ready I believe depend on not actually casting (singing) at the time...
 
Ok, I think ppl are mistaking what I am trying to solve. I get it to fire myriad ways just fine. It isn't the firing I am trying to solve.

I have attached an image of the spam I have been referring to. It says 'You haven't recovered yet...' over and over again. Here are my issues:

1) How do I know it isn't spamming the server therefore alerting the server to the fact I am automating. For instance, I wrote a macro once that targeted/retargeted a quest giver each iteration of the loop (hand in macro). EQMule advised me that it was spamming the server with the target msg. I removed the targeting from inside the loop.

2) MQ2Twist will get hung on dicho on cooldown. Example; Start of battle, dicho is ready to fire. Dicho comes up in the rotation and fires fine. Say the mob lasts long enough for the twist rotation to return to dicho and it is now on cooldown. MQ2Twist cannot tell it is on cooldown for some reason, unlike any other song/spell, and will rapidly attempt to fire it, causing the spam in my attachment and mentioned above. IT WILL NOT go on to the next step in rotation until dicho is ready to fire, or a /twist off is issued (which would happen if mob dies). That is why one of my approaches was to to issue a /twist off at the right moment in a shit.

Oddly, /melody with the exact same rotation will skip dicho if on cooldown and go to the next song. This tells me the client/interface can tell it is not ready, that data is in the data-stream. MQ2Twist is failing to interpret dicho cooldown.

THAT, is what I have been trying to solve. Not the firing, it fires fine (well, once, and again once cooled-down), just like everyone says. It's the spam I wonder about, and the fact that MQ2Twist hangs on it while on cooldown. I believe MQ2Twist is in need of an update to accommodate whatever new/different mechanism bard dicho is using.
 

Attachments

  • Not Recovered Yet.jpg
    Not Recovered Yet.jpg
    34.9 KB · Views: 102
Ok, I think ppl are mistaking what I am trying to solve. I get it to fire myriad ways just fine. It isn't the firing I am trying to solve.

I have attached an image of the spam I have been referring to. It says 'You haven't recovered yet...' over and over again. Here are my issues:

1) How do I know it isn't spamming the server therefore alerting the server to the fact I am automating. For instance, I wrote a macro once that targeted/retargeted a quest giver each iteration of the loop (hand in macro). EQMule advised me that it was spamming the server with the target msg. I removed the targeting from inside the loop.

2) MQ2Twist will get hung on dicho on cooldown. Example; Start of battle, dicho is ready to fire. Dicho comes up in the rotation and fires fine. Say the mob lasts long enough for the twist rotation to return to dicho and it is now on cooldown. MQ2Twist cannot tell it is on cooldown for some reason, unlike any other song/spell, and will rapidly attempt to fire it, causing the spam in my attachment and mentioned above. IT WILL NOT go on to the next step in rotation until dicho is ready to fire, or a /twist off is issued (which would happen if mob dies). That is why one of my approaches was to to issue a /twist off at the right moment in a shit.

Oddly, /melody with the exact same rotation will skip dicho if on cooldown and go to the next song. This tells me the client/interface can tell it is not ready, that data is in the data-stream. MQ2Twist is failing to interpret dicho cooldown.

THAT, is what I have been trying to solve. Not the firing, it fires fine (well, once, and again once cooled-down), just like everyone says. It's the spam I wonder about, and the fact that MQ2Twist hangs on it while on cooldown. I believe MQ2Twist is in need of an update to accommodate whatever new/different mechanism bard dicho is using.

Have you tried what I posted? I get zero spam with the solutions I posted to solve the exact problem of spamming too many not ready messages fearing you are gonna get flagged... I had the same thought process.

My solution requires MQ2Melee and doesn't use MQ2twist

- - - Updated - - -

Rich (BB code):
downshit0=/if (${Me.CurrentMana} > 900 && ${Me.PctHPs}<35 && ${Me.AltAbilityReady[Fading Memories]} && ${Macro.RunTime} >1) /alt act 212
downshit1=/if (${Cast.Ready[Dichotomic Psalm]} && ${Me.Standing} && !${Me.Invis} && !${Select[${Me.Casting.ID},44061,49148]} && ${Me.PctEndurance}>10) /twist once 11
holyshit0=/if (${Me.CurrentMana} > 900 && ${Me.PctHPs}<35 && ${Me.AltAbilityReady[Fading Memories]} && ${Macro.RunTime} >1) /alt act 212
holyshit1=/if (${Cast.Ready[Dichotomic Psalm]} && ${Me.Standing} && !${Me.Invis} && !${Select[${Me.Casting.ID},44061,49148]} && ${Me.PctEndurance}>10) /twist once 11
holyshit2=/if (${Cast.Ready[Silisia's Lively Crescendo]} && ${Me.Standing} && !${Me.Invis} && !${Select[${Me.Casting.ID},44061,49148]}) /twist once 7

Replace the 7 and 11 with your spell slots... Add the zone exclusions to the downshits to make sure you aren't casting in guild lobby / pok / etc...

Original Post: Here
 
I did, Tone, and thank you! Although I didn't try it exactly the same way. I will ponder what you have above and revisit your submission.

And yes, you are using MQ2Twist, by virtue of utilizing any /twist command.
 
Yes, I am using MQ2twist for the actual /twist, but I'm not going in and adjusting any song delays etc...

So good point, but I meant the logic for when to cast wasn't being decided by MQ2Twist
 
Thanks again Tone; ${Cast.Ready[Dichotomic Psalm]} does indeed report correctly. I had attempted a number of other mechanisms to test with, but dismissed Cast.Ready probably assuming it wouldn't work for a song. Classic case of my thinking I know better even though you told me it works... myopic much?

I shall now endeavor to rebuild my shits using Cast.Ready, so I am back on track.

Given I have the only avatar with the lips to do it: ;-*

- - - Updated - - -

Ok, after preliminary testing, here is what I have come up with (for those following along at home):

Rich (BB code):
downflag1=0
downflag2=0
holyflag1=1
holyflag2=0
holyshit1=/multiline ; /melee downflag1=1 ; /melee downflag2=0 ; /melee holyflag1=0 
holyshit2=/multiline ; /melee downflag1=0 ; /melee downflag2=1 ; /melee holyflag2=0
downshit1=/if (!${Select[${Zone.ID},151,202,203,219,344,345,463,33480,33113]} && ${Macro.Name.NotEqual["NULL"]} && ${Cast.Ready[Dichotomic Psalm]} && ${Me.Standing} && !${Me.Invis} && ${Me.PctEndurance}>20) /multiline ; /delay 50 ; /twist once 10 ; /melee downflag1=0 ; /melee holyflag2=1 
downshit2=/if (!${Select[${Zone.ID},151,202,203,219,344,345,463,33480,33113]} && ${Macro.Name.NotEqual["NULL"]} && ${Cast.Ready[Silisia's Lively Crescendo]} && ${Me.Standing} && !${Me.Invis} && ${Me.PctEndurance}>20) /multiline ; /twist once 5 ; /melee downflag2=0 ; /melee holyflag1=1

I not only wanted to alternate between endurance song and dicho, but I wanted to alternate them between battles. Meaning; End of battle 1, fire dicho once, and nothing else regardless of what else was ready. End of next battle, fire endurance once, regardless of what else was ready. Rinse repeat. The /delay 50 is because I noticed Cast.Ready fires true a few seconds prematurely and I didn't want to have to tweak MQ2Twist settings for one instance and have it affect all others. This seems to be working perfectly.

Knowing me, I will be tweaking for some time... But, I am getting exactly what I wanted.

Thx Tone!

- - - Updated - - -

Oh, and to keep from colliding with KA in between battles:
Rich (BB code):
TwistOn=0
TwistMed=0
TwistWhat= 0

- - - Updated - - -

Also, in the shits above, MQ2Melee is a bit ... verbose. I plan on /squelching the /melee msgs once I am done tweaking.
 
Handed you the answer... and had to force it down your throat lmao...

Glad you got it working.
 
[MQ2Twist]
Delay=32 Delay between twists (in 10ths of a second). Lag & System dependant.
Adjust=1 This defines how many ticks before the 'normal'
recast time to cast a long song.

Long songs are defined as songs greater than 3 ticks in length. If set to 1 tick, and a song lasts 10 ticks, the song will be recast at the 8 tick mark, instead of at the 9 tick mark as it normally would.

the plugin itself has adjustments to fix that. Just have to get it set right for your computer, and situation ( IE if you are running 40 clients, may needs to set it different then if you are only running 4) after tinkering with these setting to get crescendo working properly, never had an issue with Dicho, other then my macro/MQ2Melee firing off AA/disc just right to interrupt the twist casting. That is just a matter of me nailing down all the AA/Items, and getting them into the twist ini and using it to twist/cast, then working out the disc thing =)


Those ancient programmers were mysterious in thier ways.... =)
 
I may have to steal this. I just put my bard's dicho into his DPS line-up. Seems to be working well enough, but this would definitely work better.
 
the plugin itself has adjustments to fix that. Just have to get it set right for your computer, and situation ( IE if you are running 40 clients, may needs to set it different then if you are only running 4) after tinkering with these setting to get crescendo working properly, never had an issue with Dicho, other then my macro/MQ2Melee firing off AA/disc just right to interrupt the twist casting. That is just a matter of me nailing down all the AA/Items, and getting them into the twist ini and using it to twist/cast, then working out the disc thing =)

Those ancient programmers were mysterious in thier ways.... =)

I'm afraid adjusting these settings will affect everything, all songs... In your experience, how has adjusting these settings affected songs other than the one you were trying to fix?
 
Delay=32 Delay between twists (in 10ths of a second). Lag & System dependant.

This is the setting that effects all songs. As I understand it, this can be adjusted to fit system that for what ever reason are lagging somewhat and need a little extra time between songs to run smoothly

Adjust=1 This defines how many ticks before the 'normal' recast time to cast a long song.

This is the setting for long recast spells. When I initially tinkered with this setting I was setting up for Crescendo, have the same issue you are describing. I have run this on different settings, but found it to only really effect the long recast spells.

My bard's current settings are

Rich (BB code):
Delay=37
Quiet=1
Adjust=3
Recast=0

Rich (BB code):
[Bard-Rest]
SongsArray13=Chorus of Sionachie
SongsArray14=Dichotomic Psalm
SongsArray15=Silisia's Lively Crescendo

Rich (BB code):
SongsArray1=War March of Jocelyn
SongsArray2=Arcane Melody
SongsArray3=Fjilnauk's Spiteful Lyric
SongsArray4=Horthin's Psalm of Potency
SongsArray5=Dichotomic Psalm
SongsArray6=Plague of the Piper

With this setting, Discho is not recast until a tick or so after it recouperates, and then it is included in the next twist line up. In other words the rest sequence looks like 1,2,3,1,1,1,3,1,1,2,1,1,1,3 as Crescendo and Dicho get moved back into the twist.

The regular songs do not appear to be effected, as my fight sequence goes off fine, getting Dicho in roughly once before the target dies, except on named fights of course.

The best thing would be to simple tinker with the setting, and see what happens with your set up. With differing PC sets up, internet connections, and what ever else, folks settings may be vastly different, but the plugin is made to be adjustable just for that. Think of it being like MQ2Melee... you got to spend a little time tinkering with it to get it to do exactly what you want, but after that it is set.

And worst is... just put it back to the default settings (or delete that portion of the file and let the plugin write new default settings)
 
Question - Bard Dicho - Long Recast - Spamming Server?

Users who are viewing this thread

Back
Top
Cart