PDA

View Full Version : [ISBoxer] castsequence simulation



wonz
09-05-2010, 02:29 AM
I am currently trying to simulate castsequence using the steps in isboxer.

But i miss some kind of options, to time the presses correctly.

Currently, there is an option not to proceed to the next keystroke for n seconds (it would just wait for n seconds to continue to the next step). That wont really help in my proposal, i would need an option like

"Dont trigger this step again and proceed to the next before n seconds have passed"

This would allow the same as like a typical castsequence, it would press a special key again only after n seconds had passed.

On the other hand i just could add 5 key presses in one step and only skip to the next if a cooldown action is needed. But this would need to put the cooldown abilities at the end of the steps.

Slats
09-05-2010, 03:48 AM
What you are trying to do is very possible. I dont do mine this way though because I tend to have higher latency and sometimes the game isn't quite ready for me to be able to send the key and it 'misses' my lava burst etc even with generous values. Because of the /click fallthrough behaviour this would catch issues like this and cast it next anyway.

I might look into this further now though if the reports that click is screwed is true.

Lax
09-05-2010, 07:34 AM
Just make an empty Step and set the do not advance time? You can also use Do Mapped Key Action to link multiple sequences.

I'm not 100% sure what you're trying to say you're not sure how to do with ISBoxer

wonz
09-05-2010, 08:34 AM
I'm not 100% sure what you're trying to say you're not sure how to do with ISBoxer

Well, first of all, sorry for my english. Second, i want to do the following

I press button 2, this should trigger the following
Step 1
- Press Alt+Shift+1, dont press this one again for 15 seconds
Step 2
- Press Alt+Shift+2, dont press this one again for 8 seconds
Step 3
- Press Alt+Shift+3, dont press this one for 3 Seconds
Step 4
- Press Alt+Shift+4, dont press this one for 4 seconds
Step 5
- Press Alt+Shift+5, press this all over the other keys wont get pressed

You consider it doing that way:

Create a new Mapped Key named 15SecondsStyleKey1 for Step 1 having two steps
Step 1
- Press Alt+Shift+1
Step 2
- Empty
--- Check "Do not advance to the next step for at least 15 seconds

Step 1 in my '2'-key would just call the mapped key
Step 1
- Press Mapped Key for 15secondsStyleKey1
Step 2
...
Step 3
...

This should work, yes.

Still i would like to suggest to add an option named "Skip this step if not at least 15 seconds have passed after last invocation". Possibly that would make setups more easy, and would save one single mapped key.

Just thought that every kind of cooldown-style should just be spammed always, and that just only spells like dots without cooldowns should be timed that way. A mix out of timed key presses, and those who can be pressed on every key press.
This would prevent you from getting into lag issues, as like you press key 2 even if a spell is being casted currently, and isboxer would not be able to check if that was done.

As like:

Key '2'
Step 1
Press Mapped Key 15SecondsStyleKey1
Press Mapped Key 8SecondsStyleKey2
Press Alt+Shift 3
Press Alt+Shift 4
Press Alt+Shift 5

Cooldown spells as like Mindblast, Hand of Gul'dan would just be put onto the keys 3,4 and 5, and dots would be put onto 1 and 2, as like SW: P or Devouring Plage.

To prevent "pressing while casting" just use macros to the timed keys and add /stopcasting. The last would always win.

The Mapped keys should be different. As like:

15SecondsStyleKey1:
Step 1
- Press Alt+Shift+1 (triggers a macro, doing: /stopcasting, /cast Devouring Plague)
Step 2
- Empty
--- Check "Do not advance to the next step for at least 15 seconds

8SecondsStyleKey2:
Step 1
- Empty
--- Check "Do not advance to the next step for at least 2 seconds
Step 2
- Press Alt+Shift+2 (triggers a macro, doing /stopcasting, /cast SW: P, just an example)
Step 3
- Empty
--- Check "Do not advance to the next step for at least 6 seconds

.. because if Key2 would not have a pause at the start, it would get lost in the gcd of key 1.

A Mapped Key Step action should be bound to another key as well to reset the timers. That would solve the reset=target issue, by just pressing the key if you would like to start the sequence over.

Edit: Just tested such kind of setup with a low level priest/pala team. Works, as far as i can say, even if sometimes casts get broken due to /stopcasting, but this is a dps loss which cant be removed i would guess, if the timed spells should be casted in time.
Edit2: Found out that the global cooldown seems to be the big enemy of that solution. If the gcd, which cant be predicted at all, should still run if one of the dots should be refreshed, it just would be skipped. No solution yet for that.

wonz
09-06-2010, 11:49 AM
Found a way to ensure a spell is being casted:

I just have to use another macro the for timed keypresses:

15SecondsStyleKey1:
Step 1
- Press Alt+Shift+1 (triggers a macro, doing: /castsequence reset=4 Devouring Plague,nop)
--- Check "Do not advance to the next step for at least 4 seconds (this ensures, the button is clicked, and the reset timeout will be surly cached within the next lock)
Step 2
- Empty
--- Check "Do not advance to the next step for at least 24 seconds

The other one:

8SecondsStyleKey2:
Step 1
- Empty
--- Check "Do not advance to the next step for at least 2 seconds
Step 2
- Press Alt+Shift+2 (triggers a macro, doing /castsequence reset=4 SW: P, nop)
--- Check "Do not advance to the next step for at least 4 seconds
Step 3
- Empty
--- Check "Do not advance to the next step for at least 6 seconds

This solves the GCD-Problem.

Any comments?

Edit: It's better to remove the /stopcasting - command and just to make the window in which the castsequence command should be executed slightly bigger, as big as the longest cast should take plus lag. I took 4 seconds, and it doesnt cut any started casts off any more, justs queues the dot cast to the next step. See changes in the above steps.

Sam DeathWalker
09-06-2010, 03:55 PM
I initally did it with empty commands like you did but I abonded that for some reason.

I just put in 1.7 delay to account for the gcd of 1.5 (I have very good ping) and cast mostly instant spells anyways.

If I have a spell that has a cast time like Chain Heal I just put it in each command, it will go off sometimes then.


Do not advance for 1.7 Mages cast living bomb, Shaman Chain Heal
Do not advance for 1.7 Mages cast living bomb, Shaman Chain Heal
Do not advance for 1.7 Mages cast Arcane Explosion, Shaman Chain Heal
Do not advance for 1.7 Mages cast Arcane Explosion, Shaman Chain Heal

From the above I will probably get off 2 Chain Heals in 5.1 seconds, not maximly optimal but close enough to not waste mana on a perfectly optimal solution. And its simpler to code as as the Shaman Chain Heal macro is the same each time.


Then I just spam a single key (well there is a LOT more to the key maps due to the large number of classes I play). Well my DK just does chains of ice and death grip (and anti magic zone just a few spells) so maybe if you want to min/max a DK's dps you would use the empty commands as you are doing. You could probably set it up as a 1.7 seriers though. Just add your ping to 1.5. but you don't actally have to do that as the server will cach your commands but I like a bit of leway so your client screen isnt advanced of what the server is doing.

Toonarmy
09-06-2010, 04:53 PM
This thread is EXACTLY why I love this community!! A potential issue is identified and even before we get hit by it people are figuring out what to do about it. You guys are awesome.

Toonarmy

Lyonheart
09-13-2010, 11:54 AM
I think adding any kind of delays in 3rd party software is going to get you a ban? or am I not understanding this right? You can make your G15 keyboard do this type of thing, but that WILL get you banned.

I think with the commas, and a person having to push a button for each comma to advance the macro, is the only reason we got away with it. But the reason they broke the commas being able to pause was just that, they do not want macros having anyway to "delay/pause" What you are doing is not just "steps" where each time you push a key it advances, your telling it to wait x seconds before it can be pushed again! Thats real close to automation isn't it?

I'm just working it all out. I do want MBs to start getting banned for things like this.

EaTCarbS
09-13-2010, 03:18 PM
Using software to perform a functionality that Blizzard may be purposefully removing from the game sounds like a bad idea. It is still a very interesting concept, however.

My 2 cents.

Slimjim19
09-13-2010, 05:29 PM
I think adding any kind of delays in 3rd party software is going to get you a ban? or am I not understanding this right? You can make your G15 keyboard do this type of thing, but that WILL get you banned.

I think with the commas, and a person having to push a button for each comma to advance the macro, is the only reason we got away with it. But the reason they broke the commas being able to pause was just that, they do not want macros having anyway to "delay/pause" What you are doing is not just "steps" where each time you push a key it advances, your telling it to wait x seconds before it can be pushed again! Thats real close to automation isn't it?

I'm just working it all out. I do want MBs to start getting banned for things like this.

In his method you would still be doing the same. Each "step" is a button push. Its just using timers in place of commas for dropping the extra key presses.

I do agree with Carbs though. If Blizzard is removing the functionality of /castsequence then they are probably not wanting us doing the same thing with a different commandset outside of the game.

Ualaa
09-13-2010, 06:07 PM
Well the entire macro system is radically nerfed on in BETA for testing purposes. There was another thread on this topic, in which Khatovar linked the blue post stating the nerf in beta was for testing purposes.

If they ever decide to apply the nerfs to the regular servers or if the nerfed system remains in place once Cataclysm goes live, I'd have to agree a software duplicating a removed feature would be a bad idea.

As it stands, the software is not giving you any advantage or new feature that cannot already be done with the existing macro system, and as such the feature is completely fine.

wonz
09-13-2010, 06:45 PM
Well, thanks for the concerns.

The next i would do then is to think about other alternatives. Should we get back to pure castsequences then?

That would be a huge damage loss i would assume.

EaTCarbS
09-14-2010, 12:41 AM
Well, thanks for the concerns.

The next i would do then is to think about other alternatives. Should we get back to pure castsequences then?

That would be a huge damage loss i would assume.

The biggest loss for me was that my /castsequence would get stuck up when you use bloodlust/heroism. The nice thing about /click is that it accommodates for the haste increase.

Other than that, I managed with just 1 /castsequence for quite a while.

Iceorbz
09-14-2010, 07:17 PM
This thread is EXACTLY why I love this community!! A potential issue is identified and even before we get hit by it people are figuring out what to do about it. You guys are awesome.

Toonarmy


Your not having it send it for you, it's just disabling from a key being sent. Automation would be your G-15 sends that key two seconds after your first press... this is just not sending a key until a time limit has expired. Think of your keypress being on a token ring =p it wont work till its allowed to again.

wonz
09-15-2010, 01:14 PM
it's just disabling from a key being sent.

Yeah, because of that i just wonder why it should be against the TOS.

It's just as if you hadnt pushed the key.

I still think we should be carefully.

ShadowKntSDS
10-22-2010, 01:19 PM
I've been brain storming on this a bit myself, as I box lotro which doesn't have a castsequence or /click. I was thinking you could accomplish this in iSBoxer by having a chain of Do Mapped Key's with the longer cooldown/duration abilities in the outer loop(s):


15SecondsStyleKey:
--Step 1: Press Alt+Shift+1 (or w/e key),
----Check "Do not advance to the next step for at least 1.5 seconds"
--Step 2: Do Mapped Key 8SecondsStyleKey
----Check "Do not advance to the next step for at least 15 seconds"

8SecondsStyleKey:
--Step 1: Press Alt+Shift+2 (or w/e key),
----Check "Do not advance to the next step for at least 1.5 seconds"
--Step 2: Do Mapped Key CooldownLoop
----Check "Do not advance to the next step for at least 8 seconds"

(This part can be done as a formal loop, or can be done in a way that just mashes all the keys)
CooldownLoop:
--Step 1: Press Alt+Shift+3
----Check "Do not advance to the next step for at least 1.5 seconds"
--Step 2: Press Alt+Shift+4
----Check "Do not advance to the next step for at least 1.5 seconds"
--Step 3: Press Alt+Shift+5
----Check "Do not advance to the next step for at least 1.5 seconds"

---OR----

--Step 1:
----Press Alt+Shift+3
----Press Alt+Shift+4
----Press Alt+Shift+5

The idea is that if you haven't pressed anything yet, you'd press Alt+Shift+1. Then, for 15s afterwards, you fall down into the loops that follow. As the 15s skill is the one in outer loop, it gets evaluated first; It either activates the skill, or passes the buck down to the next level. The 8Second loop is the same. If both the 15s and 8s skills are during their wait period, you fall through to the final loop which either just iterates on the remaining skills (lotro), or just mashes them and one of the skills not on coolddown fires.

This would work a little better on Lotro where you have longer cooldown skills (say 30s) and a fairly controlled loop centered on 10s cooldowns.

Thoughts?

Ualaa
10-22-2010, 03:17 PM
Disclaimer: Not sure, we should use a Click like functionality, if Blizzard has chosen to remove it.
Not sure this would work, but theorizing...

Let's assume you have multiple abilities, each on their own cooldown.
And you want a priority system, the same as with Click.
For the example, let's say the old Balance Druid rotation.

You want:
A) Moonfire, every 15 seconds.
B) Insect Swarm, every 12 seconds.
C) Fall-Through of either Wrath or Starfire.

You'll have a spam key, which is mindlessly spammed over and over.
A consistent pace is less important, as the software is controlling when a step can advance instead of commas in a macro.

You will need something like MSBT or JambaProc to notify you when you gain a Lunar or Solar eclipse.
Have it tell you, to press the hot key for that druid's Toggle Key.

Spam Key
Do Mapped Key A
Do Mapped Key B
Do Mapped Key C
Do Mapped Key D

Mapped Key A
Step 1: Send Keybind for Moonfire to Warcraft.
Step 2: Do Not Advance for 15 Seconds.

Mapped Key B
Step 1: Send Keybind for InsectSwarm to Warcraft
Step 2: Do Not Advance for 12 Seconds.

Mapped Key C
Step 1: Send Keybind for Wrath to Warcraft

Mapped Key D
Step 1: Send Keybind for Starfire to Warcraft

Toggle Key
Step 1: Enable Mapped Key C; Disable Mapped Key D
Step 2: Disable Mapped Key C; Enable Mapped Key D

ShadowKntSDS
10-22-2010, 04:02 PM
Please excuse me for not being too up on WoW macro's, but what prevents MF/IS/wrath from going off at the same time, and when they do, which one does WoW pick?

Imagine a case where MF and IS are both ready to go and both Mapped Key A and Mapped Key B are in step 1. Both will trigger on the next press of Spam Key.If we assume that Mapped Key A always gets triggered before Mapped Key B, and WoW accepts the request to cast MF and doesn't cast IS, you've now put Mapped Key B into step 2 without casting IS. It will not try to cast IS again for another 12s, and you may miss a cycle. This may work perfectly in wow as I'm not 100% up to speed on the mechanism.

Once again, excuse my ignorance of wow, as I haven't played it in over 2 years. The skill queue in lotro is goofy, and the lack of macro support in game means we have to code all the smarts into ISBoxer.

Ualaa
10-22-2010, 05:13 PM
IS Boxer and Warcraft both execute macros top to bottom.

So initially, you press MF + IS + Wrath.
But MF is fractionally ahead of the others.
And because of the GCD, only one can fire off.

On the second press, MF cannot fire off in the 15 second window.
But IS + Wrath are both fired off, with IS slightly ahead.

On the third press, you'll likely still be on Step 2 for MF.
IS will likely be on Step 2 as well.
Which leaves only the Wrath keybind to be sent to Warcraft.



Looking up at an earlier post in this thread, you can also set a Step to not advance for "x" seconds.
Which if you were spamming a key, would likely guarantee it went off, before you advance to the next step.

You'd want to combine that with Warcraft macros, to the effect:
/castsequence reset=3 Moonfire,Null
So even though the Step won't advance from 1 to 2, until 3 seconds have passed.
You won't cast your MF more then once in those 3 seconds.

At least I think it would work that way.
You might have to adjust the Step 2, to 12 seconds (from 15), to account for the 3 seconds in Step 1.

ShadowKntSDS
10-22-2010, 05:33 PM
Ok I follow how the execution works with the GCD.

However, I can still see the case where you are in step 1 for both A & B (sending MF + IS + Wrath, but MF just slightly ahead) and then both A & B enter step 2 and you only send Wrath. It seems like any time the cycle line up, MF will win over all the other key strokes, but you can miss a cycle with anything below it. You can offset the start of them any number of GCD's, but you'll eventually hit a rotation where they line up. It might not be a big deal with 2 skills like this, but with more skills and even multiples (like 8s and 16s timers), you could lose a lot of DPS. Maybe if you offset them by a fraction of a GCD (such that you have 0.5s of IS/Wrath after MF/IS/Wrath, but before the Wrath only part of the cycle) but that might not be reliable.


Seems like a setup like this would overcome that problem, by incrementing the IS step only when we don't execute the MF step:

Spam Key
Do Mapped Key A

Mapped Key A (auto reset after 18s)
Step 1: Send Keybind for Moonfire to Warcraft.
Step 2: Do Mapped Key B, Do Not Advance for 15 Seconds.

Mapped Key B (auto reset after 15s)
Step 1: Send Keybind for InsectSwarm to Warcraft
Step 2: Do Mapped Key C, Do Mapped Key D, Do Not Advance for 12 Seconds.

etc.