I spoke to soon or my previous question didn't actually line up with the total scope of what I am trying to do. Either way I apologize.
My Goal
Create a voice attack command with a loop that will cycle through a set of skills in a specific sequence.
The loop will continually execute the skills as they come off cooldown.
There are approximately 35 different skills with unique cooldown timers that will need to be checked in a specific order according to their priority.
There is a second Pool of about 9 skills. Any one of these skills needs to be "injectable" into the loop with priority at any given time without breaking the loop.
Each of the 9 skills will have unique inputs (if necessary) so that they can be recognized when they are to be injected.
There is a need to set a variable that will be used to determine if the skill is off cooldown.
The intention is to allow the command to be re started over or resumed with all cooldown information in place so that skills continue to fire accordingly.
I would like to be able to achieve this with the fewest amount of inputs possible.
Start command input
Stop early command input
Inject command input (may be 9 unique inputs for each injectable skill)
Pause/Resume command input? (may not be necessary with stop and go feature that keeps cooldown timers)
The commands will be delivered to the game with hot key presses and unique pauses for casting times needed to complete the skill.
Text to speech confirmation of each inputs.
Text to speech confirmation when the command has finished
I have had inconsistent luck with this project so far.
The main issue it seems is my lack of understanding of variables as well as loops.
I don’t know how to verify if the date/time value variables are being properly set.
Currently I am setting the date/time value variable when the skill is activated.
I don’t know how to verify if the date/time variables are being retained for reference either later in the loop.
How I approached the project so far.
SKILL COMMANDS
Create a skill command
A skill command starts off with a series of Device Checks in order to “Inject” a skill in place of the skill that is currently being processed if needed.
A skill command also includes an Else Condition that processes the proper keystrokes and pauses for the skill being requested if a skill was not “injected” in its place.
A Skill command also establishes the date/time variable for the skill. The variable is named after the skill. I.e. Shield Bash will be entered as Shieldbash. The variable is created to add the recast time of the skill to the current date/time.
Combo Command
The intention is to use a combo command to process the Skill commands in the proper sequence and continually loop them firing skills as they are available otherwise skipping them to save the dead cast time while also allowing for skills to inject without breaking the loop.
The intended process is for the Combo command to read the Date/time variable of the Shield Bash/“next skill” in the sequence and decide if it is ready or not according to the date/time variable that was set when the Shield Bash/“next skill” was previously Executed.
Shield Bash/”next skill” should be skipped if it is still on cool down.
What am I experiencing with the commands as they are?
Some skills seem to follow the variables and cast on time and do not try to cast when they are off cooldown.
However, there are always skills that try to recast before they are off cooldown.
This problem is intermittent with some and constant with others and a few never has an issue.
The command never runs the same after it has been ran once or stopped early. Often it will stick on one skill pressing it 3 or 4 times before moving on and doing other seemingly random skill presses.
The command always works best when used right after voice attack has been launched. But again, only once pretty much.
When I keep the skills down to 3 or so to test, I can keep the command going by manually pressing the key I assigned to run the command. This only works if I don’t let all the skills cooldowns recover. I.e. I must keep at least one skill on cooldown by continually pressing the input key.
Outside of misspelled variables and the like, I am at a loss.
I don’t know how to get the write a value feature to display my variables as time instead of the variable name. I was misled for a bit by the time that you get when you hover over the log. This time references when the command was processed and not the time value of the variable.
Sorry for the wall of text.
I would appreciate any input the community may have.
COMBO STARTER COMBO STARTER COMBO STARTER
PROVOKE
Begin Date Compare : [Provoke] Is Before Current Date/Time
Execute command, 'Provoke' (and wait until it completes)
End Condition
Pause 0.1 seconds
BASH
Begin Date Compare : [Bash] Is Before Current Date/Time
Execute command, 'Bash' (and wait until it completes)
End Condition
Pause 0.1 seconds
ACCELERATION STRIKE NEW
Begin Date Compare : [Accelerationstrikenew] Is Before Current Date/Time
Execute command, 'Acceleration Strike new' (and wait until it completes)
End Condition
Pause 0.1 seconds
BATTLE CRY
Begin Date Compare : [Battle] Is Before Current Date/Time
Execute command, 'Battle Cry' (and wait until it completes)
End Condition
Pause 0.1 seconds
PERFECT COUNTER
Begin Date Compare : [Perfectcounter] Is Before Current Date/Time
Execute command, 'Perfect Counter' (and wait until it completes)
End Condition
Pause 0.1 seconds
VITAL TRIGGER VITAL TRIGGER VITAL TRIGGER 1
VITAL TRIGGER
Begin Date Compare : [Vitaltrigger] Is Before Current Date/Time
Execute command, 'Vital Trigger' (and wait until it completes)
End Condition
Pause 0.1 seconds
PARTISAN CLEAVE
Begin Date Compare : [Partisancleave] Is Before Current Date/Time
Execute command, 'Partisan Cleave' (and wait until it completes)
End Condition
Pause 0.1 seconds
SENTINAL STRIKE
Begin Date Compare : [Sentinalstrike] Is Before Current Date/Time
Execute command, 'Sentinal Strike' (and wait until it completes)
End Condition
Pause 0.1 seconds
DECIMATE
Begin Date Compare : [Decimate] Is Before Current Date/Time
Execute command, 'Decimate' (and wait until it completes)
End Condition
Pause 0.1 seconds
SLAM
Begin Date Compare : [Slam] Is Before Current Date/Time
Execute command, 'Slam' (and wait until it completes)
End Condition
Pause 0.1 seconds
VITAL TRIGGER VITAL TRIGGER VITAL TRIGGER 2
VITAL TRIGGER
Begin Date Compare : [Vitaltrigger] Is Before Current Date/Time
Execute command, 'Vital Trigger' (and wait until it completes)
End Condition
Pause 0.1 seconds
DEFENDERS CHARGE
Begin Date Compare : [Defenderscharge] Is Before Current Date/Time
Execute command, 'Defenders Charge' (and wait until it completes)
End Condition
Pause 0.1 seconds
RETALIATE
Begin Date Compare : [Retaliate] Is Before Current Date/Time
Execute command, 'Retaliate' (and wait until it completes)
End Condition
Pause 0.1 seconds
RUIN
Begin Date Compare : [Ruin] Is Before Current Date/Time
Execute command, 'Ruin' (and wait until it completes)
End Condition
Pause 0.1 seconds
CONCUSSION
Begin Date Compare : [Concussion] Is Before Current Date/Time
Execute command, 'Concussion' (and wait until it completes)
End Condition
Pause 0.1 seconds
VITAL TRIGGER VITAL TRIGGER VITAL TRIGGER 3
VITAL TRIGGER
Begin Date Compare : [Vitaltrigger] Is Before Current Date/Time
Execute command, 'Vital Trigger' (and wait until it completes)
End Condition
Pause 0.1 seconds
SNEERING ASSAULT
Begin Date Compare : [Sneeringassault] Is Before Current Date/Time
Execute command, 'Sneering Assault' (and wait until it completes)
End Condition
Pause 0.1 seconds
PRECISE STRIKE
Begin Date Compare : [Precisestrike] Is Before Current Date/Time
Execute command, 'Precise Strike' (and wait until it completes)
End Condition
Pause 0.1 seconds
SEVER
Begin Date Compare : [Sever] Is Before Current Date/Time
Execute command, 'Sever' (and wait until it completes)
End Condition
Pause 0.1 seconds
GUT KICK
Begin Date Compare : [Gutkick] Is Before Current Date/Time
Execute command, 'Gut Kick' (and wait until it completes)
End Condition
Pause 0.1 seconds
OVERPOWER
Begin Date Compare : [Overpower] Is Before Current Date/Time
Execute command, 'Overpower' (and wait until it completes)
End Condition
Pause 0.1 seconds
TAUNTING BLOW
Begin Date Compare : [Tauntingblow] Is Before Current Date/Time
Execute command, 'Taunting Blow' (and wait until it completes)
End Condition
Pause 0.1 seconds
COMBO EXTENDER COMBO EXTENDER COMBO EXTENDER
IRRESISTABLE
Begin Date Compare : [Irresistable] Is Before Current Date/Time
Execute command, 'Irresistable' (and wait until it completes)
End Condition
Pause 0.1 seconds
TAUNTING ASSAULT
Begin Date Compare : [Tauntingassault] Is Before Current Date/Time
Execute command, 'Taunting Assault' (and wait until it completes)
End Condition
Pause 0.1 seconds
Say, 'Starting loop'
Start Loop : Repeat 200 Times
PRIORITY START PRIORITY START PRIORITY START PRIORITY START PRIORITY START PRIORITY START PRIORITY START
BATTLE CRY
Begin Date Compare : [Battlecry] Is Before Current Date/Time
Execute command, 'Battle Cry' (and wait until it completes)
End Condition
Pause 0.1 seconds
REINFORCEMENT
Begin Date Compare : [Reinforcement] Is Before Current Date/Time
Execute command, 'Reinforcement' (and wait until it completes)
End Condition
Pause 0.1 seconds
PLANT
Begin Date Compare : [Plant] Is Before Current Date/Time
Execute command, 'Plant' (and wait until it completes)
End Condition
Pause 0.1 seconds
VITAL TRIGGER
Begin Date Compare : [Vitaltrigger] Is Before Current Date/Time
Execute command, 'Vital Trigger' (and wait until it completes)
End Condition
Pause 0.1 seconds
IRRESISTABLE
Begin Date Compare : [Irresistable] Is Before Current Date/Time
Execute command, 'Irresistable' (and wait until it completes)
End Condition
Pause 0.1 seconds
PARTISAN CLEAVE
Begin Date Compare : [Partisancleave] Is Before Current Date/Time
Execute command, 'Partisan Cleave' (and wait until it completes)
End Condition
Pause 0.1 seconds
PROVOKE
Begin Date Compare : [Provoke] Is Before Current Date/Time
Execute command, 'Provoke' (and wait until it completes)
End Condition
Pause 0.1 seconds
SENTINAL STRIKE
Begin Date Compare : [Sentinalstrike] Is Before Current Date/Time
Execute command, 'Sentinal Strike' (and wait until it completes)
End Condition
Pause 0.1 seconds
DECIMATE
Begin Date Compare : [Decimate] Is Before Current Date/Time
Execute command, 'Decimate' (and wait until it completes)
End Condition
Pause 0.1 seconds
SHOUT
Begin Date Compare : [Shout] Is Before Current Date/Time
Execute command, 'Shout' (and wait until it completes)
End Condition
Pause 0.1 seconds
SLAM
Begin Date Compare : [Slam] Is Before Current Date/Time
Execute command, 'Slam' (and wait until it completes)
End Condition
Pause 0.1 seconds
DEFENDERS CHARGE
Begin Date Compare : [Defenderscharge] Is Before Current Date/Time
Execute command, 'Defenders Charge' (and wait until it completes)
End Condition
Pause 0.1 seconds
RETALIATE
Begin Date Compare : [Retaliate] Is Before Current Date/Time
Execute command, 'Retaliate' (and wait until it completes)
End Condition
Pause 0.1 seconds
RUIN
Begin Date Compare : [Ruin] Is Before Current Date/Time
Execute command, 'Ruin' (and wait until it completes)
End Condition
Pause 0.1 seconds
CONCUSSION
Begin Date Compare : [Concussion] Is Before Current Date/Time
Execute command, 'Concussion' (and wait until it completes)
End Condition
Pause 0.1 seconds
SNEERING ASSAULT
Begin Date Compare : [Sneeringassault] Is Before Current Date/Time
Execute command, 'Sneering Assault' (and wait until it completes)
End Condition
Pause 0.1 seconds
PRECISE STRIKE
Begin Date Compare : [Precisestrike] Is Before Current Date/Time
Execute command, 'Precise Strike' (and wait until it completes)
End Condition
Pause 0.1 seconds
SEVER
Begin Date Compare : [Sever] Is Before Current Date/Time
Execute command, 'Sever' (and wait until it completes)
End Condition
Pause 0.1 seconds
BASH
Begin Date Compare : [Bash] Is Before Current Date/Time
Execute command, 'Bash' (and wait until it completes)
End Condition
Pause 0.1 seconds
GUT KICK
Begin Date Compare : [Gutkick] Is Before Current Date/Time
Execute command, 'Gut Kick' (and wait until it completes)
End Condition
Pause 0.1 seconds
ACCELERATION STRIKE NEW
Begin Date Compare : [Accelerationstrikenew] Is Before Current Date/Time
Execute command, 'Acceleration Strike new' (and wait until it completes)
End Condition
Pause 0.1 seconds
OVERPOWER
Begin Date Compare : [Overpower] Is Before Current Date/Time
Execute command, 'Overpower' (and wait until it completes)
End Condition
Pause 0.1 seconds
TAUNTING ASSAULT
Begin Date Compare : [Tauntingassault] Is Before Current Date/Time
Execute command, 'Taunting Assault' (and wait until it completes)
End Condition
Pause 0.1 seconds
ASSAULT
Begin Date Compare : [Assault] Is Before Current Date/Time
Execute command, 'Assault' (and wait until it completes)
End Condition
Pause 0.1 seconds
DRAGOON SPIN
Begin Date Compare : [Dragoonspin] Is Before Current Date/Time
Execute command, 'Dragoon Spin' (and wait until it completes)
End Condition
Pause 0.1 seconds
TAUNTING BLOW
Begin Date Compare : [Tauntingblow] Is Before Current Date/Time
Execute command, 'Taunting Blow' (and wait until it completes)
End Condition
Pause 0.1 seconds
STRIKE OF CONSISTENCY
Begin Date Compare : [Strikeofconsistency] Is Before Current Date/Time
Execute command, 'Strike of consistency' (and wait until it completes)
End Condition
Pause 0.1 seconds
MANA STONE MANA STONE MANA STONE
Execute command, 'Manastone' (and wait until it completes)
Begin Device State Check : Keyboard Key 'Numeric 1' Is Pressed
Jump to Marker: jump to ascension
Say, 'jumping to ascensions'
End Condition
End Loop
Marker: jump to ascension
COMPOUNDING FORCE
Begin Date Compare : [Compoundingforce] Is Before Current Date/Time
Execute command, 'Compounding Force' (and wait until it completes)
End Condition
Pause 0.1 seconds
LEVINBOLT
Begin Date Compare : [Levinbolt] Is Before Current Date/Time
Execute command, 'Levinbolt' (and wait until it completes)
End Condition
Pause 0.1 seconds
FOCUSED BLAST
Begin Date Compare : [Focusedblast] Is Before Current Date/Time
Execute command, 'Focused Blast' (and wait until it completes)
Execute command, 'Levinbolt' (and wait until it completes)
End Condition
Pause 0.1 seconds
CASCADING FORCE
Begin Date Compare : [Cascadingforce] Is Before Current Date/Time
Execute command, 'Cascading Force' (and wait until it completes)
End Condition
Pause 0.1 seconds
Implosion
Begin Date Compare : [Implosion] Is Before Current Date/Time
Execute command, 'Implosion' (and wait until it completes)
End Condition
Pause 0.1 seconds
ETHERFLASH
Begin Date Compare : [Etherflash] Is Before Current Date/Time
Execute command, 'Etherflash' (and wait until it completes)
End Condition
Pause 0.1 seconds
FEEDBACK LOOP
Begin Date Compare : [Feedbackloop] Is Before Current Date/Time
Execute command, 'Feedback Loop' (and wait until it completes)
End Condition
Pause 0.1 seconds
Say, 'Hold right trigger to extend'
Pause 2 seconds
Begin Device State Check : Keyboard Key 'Numeric 9' Is Pressed
Say, 'extended'
Execute command, 'Veilwalkers Energy Inverter' (and wait until it completes)
Execute command, 'Academics Essence of Power' (and wait until it completes)
Say, 'fast smash finished'
Else
Say, 'fast smash finished'
End Condition
SKILL COMMAND
Begin Condition : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '2 @' Is Pressed)
Execute command, 'Bulwark of Order' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '5 %' Is Pressed)
Execute command, 'Champions Interception' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '4 $' Is Pressed)
Execute command, 'Guardian Sphere' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '3 #' Is Pressed)
Execute command, 'Sentry Watch' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '7 &' Is Pressed)
Execute command, 'Defensive Minded' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '6 ^' Is Pressed)
Execute command, 'Tower of Stone' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Stand Firm' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Perfect Counter' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Focused Offensive' (and wait until it completes)
Else
Say, 'bashing'
Press 1 key and hold for 0.1 seconds and release
Pause 0.25 seconds
Pause 0.25 seconds
Pause 0.1 seconds
Set date [Bash] to [Bash] plus [12] seconds (save value to profile)
End Condition
I started to see if I could just house everything in one command and this is what I have so far. This one seems to work sometimes. However only once. Then I have to shut voice attack down and relaunch it. Sometimes it hangs on bash.
Start Loop : Repeat 75 Times
Begin Date Compare : [Partisan] Is Before Current Date/Time
Begin Condition : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '2 @' Is Pressed)
Execute command, 'Bulwark of Order' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '5 %' Is Pressed)
Execute command, 'Champions Interception' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '4 $' Is Pressed)
Execute command, 'Guardian Sphere' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '3 #' Is Pressed)
Execute command, 'Sentry Watch' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '7 &' Is Pressed)
Execute command, 'Defensive Minded' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '6 ^' Is Pressed)
Execute command, 'Tower of Stone' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Stand Firm' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Perfect Counter' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Focused Offensive' (and wait until it completes)
Else
Say, 'cleaving'
Press 4 key and hold for 0.1 seconds and release
Pause 0.5 seconds
Pause 0.25 seconds
Pause 0.1 seconds
Set date [Partisan] to [Partisan] plus [1] minutes
Write [Blue] 'Partisan' to log
End Condition
End Condition
Pause 0.1 seconds
Begin Date Compare : [Decimate] Is Before Current Date/Time
Begin Condition : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '2 @' Is Pressed)
Execute command, 'Bulwark of Order' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '5 %' Is Pressed)
Execute command, 'Champions Interception' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '4 $' Is Pressed)
Execute command, 'Guardian Sphere' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '3 #' Is Pressed)
Execute command, 'Sentry Watch' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '7 &' Is Pressed)
Execute command, 'Defensive Minded' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '6 ^' Is Pressed)
Execute command, 'Tower of Stone' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Stand Firm' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Perfect Counter' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Focused Offensive' (and wait until it completes)
Else
Say, 'decimating'
Press 6 key and hold for 0.1 seconds and release
Pause 0.25 seconds
Pause 0.25 seconds
Pause 0.1 seconds
Set date [Decimate] to [Decimate] plus [31] seconds
Write [Red] 'Decimate' to log
End Condition
End Condition
Pause 0.1 seconds
Begin Date Compare : [Bash] Is Before Current Date/Time
Begin Condition : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '2 @' Is Pressed)
Execute command, 'Bulwark of Order' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '5 %' Is Pressed)
Execute command, 'Champions Interception' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '4 $' Is Pressed)
Execute command, 'Guardian Sphere' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '3 #' Is Pressed)
Execute command, 'Sentry Watch' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '7 &' Is Pressed)
Execute command, 'Defensive Minded' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '6 ^' Is Pressed)
Execute command, 'Tower of Stone' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Stand Firm' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Perfect Counter' (and wait until it completes)
Else If : (Keyboard Key 'Shift' Is Pressed AND Keyboard Key '9 (' Is Pressed)
Execute command, 'Focused Offensive' (and wait until it completes)
Else
Say, 'bashing'
Press 1 key and hold for 0.1 seconds and release
Pause 0.25 seconds
Pause 0.25 seconds
Pause 0.1 seconds
Set date [Bash] to [Bash] plus [11] seconds
Write [Green] 'Bash' to log
End Condition
End Condition
End Loop
Say, 'all loops finished'