Dragon Age 3: Inquisition Singleplayer

This script comes with five (5) different combat configurations and one (1) continuous search feature to ease your gameplay on Dragon Age: Inquisition Singleplayer. 1. A combo to spam all abilities. 2. A combo to spam specific abilities. 3. A combo to spam specific abilities, plus one non-AoE cooldown. 4. A combo to spam specific abilities, plus one AoE cooldown. 5. A combo to spam specific abilities, plus two independent AoE cooldowns. You'll find the Continuous Search Scan a very useful feature for scouring every inch of game's maps to get all the items you missed/may miss. This script is designed with the experienced player and completionist in mind.
Version1.10
AuthorShadohz
Publish DateMon, 22 Jun 2015 - 15:07
Last UpdateTue, 7 Jun 2016 - 15:34
Downloads94
RATE


1

0

Release Notes: See CHANGELOG for newest changes. - Fixed issue secondary abilities not firing correctly. - Fixed issue with basic attack lagging between cooldowns.
Code: Select all
/*
* ===============================================================================================================================================
* Author:           Shadohz
* Game:             Dragon Age 3: Inquisition SinglePlayer
* System:           Xbox 360
* Controller:       Xbox 360 Controller
* Game Settings:    Default
* Website:          https://www.youtube.com/user/Shadohz75
* Copyright:        Copyright � 2015, 2016 Shadohz, 5Y5T3M 0V3RL04D. All Rights Reserved.
* Restrictions:     http://www.copyrighted.com/copyrights/view/mb7j-drcf-q623-igta. This source is not licensed under "open-source", "public
*                   domain", nor "source-available". Modification and redistribution requires prior approval. [email protected]
* ===============================================================================================================================================
*/

 
/*
* ===============================================================================================================================================
* HOW TO USE
*
* Press START and BACK to initialize the configuration setup. You will have 10 seconds to respond before the configuration setup automatically
* closes. When selecting a combination with cooldowns the 10 timer is reset after each button press to allow you plenty of time to set your
* cooldowns.
*
*
* Press D-PAD UP to reset configuration back to normal.
*
*
* Press D-PAD DOWN to activate all abilities at the same time.
* This is useful for Warriors, Rogues, and Mages (not using AoE spells). This combination will spam the ability buttons when you press the
* StartButton1 (see DEFINES). Approach a spawn of enemies and press the StartButton1 to begin your attacks. Press StartButton1 again to stop
* attacking or to disengage/run.
*
*
* Press LEFT TRIGGER to activate Selective Abilities #1.
* This combination will run only the abilities specified by the player (set inside the script). The default combination is set for Virtuoso
* (RT and RB). However you can configure this combination how you like by commenting in or out any buttons you wish. Set it at
* Combo "SpecificAbilities1".
*
*
* Press RIGHT TRIGGER to activate Selective Abilities #2.
* This combination is designed to like Selective Abilities 1 but with one major difference. You can set the timer for a TARGETBUTTON1 (see
* DEFINES) so that the TARGETBUTTON is executed only when the timer expires. This is designed for non-AoE skills. This is useful for non-AoE
* Builds that use skills such as Spirit Mark or Mark for Death where the player needs a single skill to execute once per X seconds. Press the
* RIGHT TRIGGER repeatedly to increase the Cooldown Time. The default Incremental Time is 2 seconds (you can change this in DEFINE). For
* example, you wanted to assign Spirit Mark a 40 second cooldown, then you would place the skill in TARGETBUTTON1 (which is RB by default) and
* press RIGHT TRIGGER twenty times (20x). Spirit Mark will not execute every 40 seconds but rather would execute only after you press the
* StartButton1 and the 40 seconds had expired (i.e. only when you are attacking a spawn). If you manually use Spirit Mark, then the timer resets
* when you press the TARGETBUTTON1. If you notice that the combo is executing too soon, then press START & BACK again then press D-PAD LEFT to
* add more time to the Cooldown timer. To reset the time back to zero (0) you must press START & BACK then UP, DOWN or LEFT TRIGGER.
*
*
* Press D-PAD LEFT to activate AoE Combo #1.
* This combination is designed specifically for mages that use only one (1) AoE skill. This is similar to Selective Abilities 2 combo except
* that this combo executes the CONFIRMBUTTON (default is A button) after the TARGETBUTTON1. The Cooldown time must be set by repeatedly pressing
* the D-PAD LEFT. For example you want to set a 20 second cooldown for Barrier, then you would press the LEFT button ten times (10x). Barrier
* would only activate when pressing the StartButton1. Manually pressing the TARGETBUTTON1 resets the timer to prevent misfires. If you notice
* that the combo is executing too soon, then press START & BACK again then press D-PAD LEFT to add more time to the Cooldown timer. To reset the
* time back to zero (0) you must press START & BACK then UP, DOWN or LEFT TRIGGER.
*
*
* Press D-PAD RIGHT to activate AoE Combo #2.
* Again similar to both Selective Abilities #2 and AoE Combo #1, except this combo works in conjunction with AoE Combo #1. AoE #1 acts as the
* primary AoE and AoE #2 acts as the secondary. You must set the timers for them individually pressing D-PAD/LEFT and D-PAD/RIGHT respectively.
* For example, if you were using a build with Barrier and Firestorm, then you would set a 20 second timer to D-PAD/LEFT and assign Barrier to
* TARGETBUTTON1 (RB Button). On D-PAD/RIGHT you'd set the timer to 40 seconds and assign Firestorm to TARGETBUTTON2 (B Button). Afrer pressing
* StartButton1, the script will prioritize Barrier over Firestorm if they both are primed. If Barrier is in the midst of a cooldown, the
* Firestorm would triggered if primed and vice versa. Manually pressing the TARGETBUTTON1 or TARGETBUTTON2 resets the timer to prevent misfires.
* If you notice that the combo is executing too soon, then press START & BACK again then press D-PAD LEFT or D-PAD RIGHT to add more time to the
* Cooldown timer(s). To reset the times back to zero (0) you must press START & BACK then UP, DOWN or LEFT TRIGGER.
*
* AFTER SETTING UP THE CONFIGURATION:
* Use RS to attack targets. Use LS to run the continuous Search scan.
*
*
* IMPORTANT NOTES:
* Cooldown times will vary with builds, your current stats and the equipment you wear. For best results, read the Cooldown time listed for the
* abilities that you will be using CD times for.
*
* Selecting RS will disable Continuous Search and vice versa.
*
* This script only supports up to two AoE with cooldowns.
*
* This script differs from the Multiplayer version by taking advantage of all 8 abilities slots as opposed to the 4-use limitation. The script is
* designed to work with your Main Character. Depending on your configuration, switching to one of your party members may cause the script to
* become incompatible. It may give the appearance that members are bunny-hopping or not executing abilities. This is especially true if switching
* from a Warrior/Rogue setup to a Mage character or vice versa.
* ===============================================================================================================================================
*/

 
/* CHANGELOG
* Version 1.1 - 07.24.2015: Changed default AoE target1 button from B to RB.
* Version 1.1 - 07.24.2015: Changed default AoE target2 button from RB to B.
* Version 1.1 - 07.24.2015: Added configuration timeout variable and reduced time to 5 seconds from 10.
* Version 1.1 - 07.24.2015: Added Mana regeneration value for AoE abilities.
* Version 1.1 - 07.24.2015: Added code to disable Continuous Search after pressing Start or Back.
* Version 1.1 - 07.24.2015: Fixed the Left Trigger abilities to fire off correctly without breaking basic attack.
* Version 1.1 - 07.24.2015: Fixed the basic attack to not lag between ability cooldowns.
*/

 
/*
* ===============================================================================================================================================
* DEFINES
* ===============================================================================================================================================
*/

define StartButton1 = XB360_RS// Button used to activate all combos.
define StartButton2 = XB360_LS;
define Sprint = XB360_LS;       // Button assigned as Sprint
define ConfirmButton = XB360_A;
//define CancelButton = XB360_B;
define TargetButton1 = XB360_RB;     // The target button can be changed to whatever you like but do not change the ConfirmButton or CancelButton.
define TargetButton2 = XB360_B;    // The target button can be changed to whatever you like but do not change the ConfirmButton or CancelButton.
define HoldTime = 50;      // Hold: How long to hold down the Combo button.
define RestTime = 500;      // Rest: How long to wait before pressing the Combo button again.
define CdMultiplier=2;    //The number of seconds to increase between D-PAD presses for Cooldown timers.
define ConfigTimeout=5;    // The number of seconds before the Config Setup automatically closes.
define ManaRegen=2;         // The number of seconds to use basic attack to build up mana/stamina between abilities.
unmap StartButton1; // Unmaps the starting button
 
/*
* ===============================================================================================================================================
* INITIALIZED VARIABLES
* ===============================================================================================================================================
*/

// No need to change anything else
int CdTime1, CdTime2, CdTime3, CdCheck;
int led, currentled, run;
int configsetup=FALSE;
int timelimit=1000;
int seconds1, seconds2, seconds3;
//int minutes=0;
//int hours=0;
int Start_at=FALSE;
int Finish_at=TRUE;
int refresh=FALSE;
int ConfigSelect=0;
 
init {
    led = 0;
    reset_leds();
    while(led<4){
        if(get_led(led)==1) currentled = led;
        led = led+1;
    }
} // End Initialization
 
/*
* ===============================================================================================================================================
* MAIN
* ===============================================================================================================================================
*/

main {
//    swap(XB360_LS,XB360_RS);    // Target mode is disabled and swapped for Sprint to Right Stick.
 
//    set_val(TRACE_1,seconds1);  // Seconds
//    set_val(TRACE_2,seconds2);  // Seconds
//    set_val(TRACE_3,seconds3);  // Seconds
//    set_val(TRACE_4,CdTime1);   // Cooldown timer 1
//    set_val(TRACE_5,CdTime2);   // Cooldown timer 2
//    set_val(TRACE_6,CdTime3);   // Cooldown timer 3
    //set_val(TRACE_3,minutes);  // Minutes
    //set_val(TRACE_4,hours);    // hours
    //set_val(TRACE_5,Start_at); // Start_at
 
    if(CdCheck == 0){Start_at=TRUE;Finish_at=FALSE;timelimit=1000;}
 
//    if(Start_at && (minutes>0 && minutes<55) )refresh=TRUE; 
    else refresh=FALSE;
 
    if(Start_at )
    {// Timer count seconds, minutes, hour
       timelimit=timelimit- get_rtime();
        if( timelimit<=0) {seconds1=seconds1+1;seconds2=seconds2+1;seconds3=seconds3+1;timelimit=1000; } // seconds count
      //  if( timelimit<=0) {seconds1=seconds1+1;timelimit=1000; } // seconds count
      // if( seconds>=60 )  // minutes count
      //   {seconds=0;
      //    minutes= minutes+1;
      //    timelimit=1000;
      // if(refresh)combo_run(RelistALL);
      //   }
 
 //      if( minutes>=60) {minutes=0; hours=hours+1;} // hours count
    }
   if(((event_press(XB360_START)) && (get_val(XB360_BACK)> 0)) || ((get_val(XB360_START)>0) && (event_press(XB360_BACK)))) {
        if(configsetup == TRUE) {
            configsetup = FALSE;
        } else {
            set_ledx(currentled, (ConfigTimeout*5));
            configsetup = TRUE;
            seconds1=0;
            CdCheck=1;
        }
    }
    if (seconds1>=ConfigTimeout && configsetup == TRUE) {
        configsetup = 0;
    }
     if(event_press(XB360_UP) && configsetup == TRUE)  {
        ConfigSelect = 0;
        CdTime1=0;
        CdTime2=0;
        CdTime3=0;
    }
    if(event_press (XB360_DOWN) && configsetup == TRUE) {
        ConfigSelect = 1;
        CdTime1=0;
        CdTime2=0;
        CdTime3=0;
    }
    if (event_press(XB360_LT) && configsetup == TRUE) {
        ConfigSelect = 2;
        CdTime1=0;
        CdTime2=0;
        CdTime3=0;
    }
    if (event_press(XB360_RT) && configsetup == TRUE)  {
        ConfigSelect = 3;
        CdTime3 = CdTime3 + CdMultiplier;
        seconds1=0;
    }
    if (event_press(XB360_LEFT) && configsetup == TRUE)  {
        ConfigSelect = 4;
        CdTime1 = CdTime1 + CdMultiplier;
        seconds1=0;
        seconds2=100;
    }
    if(event_press(XB360_RIGHT) && configsetup == TRUE)  {
        ConfigSelect = 5;
        CdTime2 = CdTime2 + CdMultiplier;
        seconds1=0;
        seconds3=100;
    }
    if((event_press(TargetButton1) && ConfigSelect==3) || (event_press(TargetButton1) && ConfigSelect==4) || (event_press(TargetButton1) && ConfigSelect==5)) {
        CdCheck=0;
        seconds2=0;
    }
    if(event_press(TargetButton2) && ConfigSelect==5) {
        CdCheck=0;
        seconds3=0;
    }
    if(run == 2) {
        combo_run(SpamSearch);
    } else if (run == 1 && ConfigSelect == 1) {
        combo_run(AllAbilities);
    } else if (run == 1 && ConfigSelect == 2) {
        combo_run(SpecificAbilities1);
    } else if (run == 1 && ConfigSelect == 3) {
        combo_run(SpecificAbilities2);
    } else if (run == 1 && ConfigSelect == 4) {
        combo_run(SingularAoE);
    } else if (run == 1 && ConfigSelect == 5) {
        combo_run(DualAoE);
    } else {
        combo_stop(AllAbilities);
        combo_stop(SpecificAbilities1);
        combo_stop(SpecificAbilities2);
        combo_stop(SingularAoE);
        combo_stop(DualAoE);
        combo_stop(SpamSearch);
    }   
   if(event_press(StartButton1)  && configsetup == FALSE) {
        if(run == 1) {
            run = 0;
            reset_leds();
        } else {
            run = 1;
        }
    } else if(event_press(StartButton2) && configsetup == FALSE) {
        if(run == 2) {
            run = 0;
            reset_leds();
        } else {
            run = 2;
        }
    } else if ((event_press(XB360_BACK) || event_press(XB360_START)) && configsetup == FALSE) {
        run = 0;
    }
}// End Main   
 
/*
* ===============================================================================================================================================
* COMBINATIONS
* ===============================================================================================================================================
*/

// Allows player to run a continuous scan of the map instead of clicking the Search button repeatedly.
combo SpamSearch {
    set_val(XB360_LS, 100);
    set_led(currentled,2);
    wait(HoldTime);
    set_val(XB360_LS, 0);
    set_led(currentled,0);
    wait(RestTime);
} //End Combo
 
// This is the "Button Masher" combo. All abilities are spammed.
combo AllAbilities {
    set_led(currentled,2);
//    block (XB360_LT, 1000); // Potion button blocked to prevent accidental use.
//    set_val(Sprint, 0);    //Deactivates Sprint to start combos.
    set_val(XB360_RT, 100);
    wait(HoldTime);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
    set_val(XB360_B, 100);
    wait(HoldTime);
    set_val(XB360_B, 0);
    wait(HoldTime);
    set_val(XB360_RB, 100);
    wait(HoldTime);
    set_val(XB360_RB, 0);
    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_B, 100);
    wait(HoldTime);
    set_val(XB360_B, 0);
    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_RB, 100);
    wait(HoldTime);
    set_val(XB360_RB, 0);
    wait(HoldTime);
    set_val(XB360_LT, 0);
    wait(HoldTime);
} //End Combo
 
// This is the "Selective Masher" combo. You can block out specific abilities to only be used.
combo SpecificAbilities1 {
    set_led(currentled,2);
//    block (XB360_LT, 1000); // Potion button blocked to prevent accidental use.
//    set_val(Sprint, 0);     // Deactivates Sprint to start combos.
    set_val(XB360_RT, 100);
//    wait(HoldTime);
//    set_val(XB360_X, 100);
//    wait(HoldTime);
//    set_val(XB360_X, 0);
//    wait(HoldTime);
//    set_val(XB360_Y, 100);
//    wait(HoldTime);
//    set_val(XB360_Y, 0);
//    wait(HoldTime);
//    set_val(XB360_B, 100);
//    wait(HoldTime);
//    set_val(XB360_B, 0);
    wait(HoldTime);
    set_val(XB360_RB, 100);
    wait(HoldTime);
    set_val(XB360_RB, 0);
    wait(HoldTime);
//    set_val(XB360_LT, 100);
//    set_val(XB360_X, 100);
//    wait(HoldTime);
//    set_val(XB360_X, 0);
//    wait(HoldTime);
//    set_val(XB360_LT, 100);
//    set_val(XB360_Y, 100);
//    wait(HoldTime);
//    set_val(XB360_Y, 0);
//    wait(HoldTime);
//    set_val(XB360_LT, 100);
//    set_val(XB360_B, 100);
//    wait(HoldTime);
//    set_val(XB360_B, 0);
//    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_RB, 100);
    wait(HoldTime);
    set_val(XB360_RB, 0);
    wait(HoldTime);
    set_val(XB360_LT, 0);
    wait(HoldTime);
} //End Combo
 
combo SpecificAbilities2 {
    set_led(currentled,2);
//    block (XB360_LT, 1000); // Potion button blocked to prevent accidental use.
//     set_val(Sprint, 0);    // Deactivates Sprint to start combos.
    if (seconds2 > CdTime3 && CdCheck == 1) {
        combo_run (SpecAb2Ability);       
    // Cooldown timer is reset if player manually uses the ability.
    } else if (event_press(TargetButton1)) {
        CdCheck=0;
        seconds2=0;
    // All abilities ran while Cooldown timer is counting. If the TargetButton is changed then the appropiate button must be commented
    // out of this section. The default selection is Button "B".
    // This ELSEIF condition will force basic attack for 3 secs to rebuild mana prior to triggering TargetButton and reducing "hopping".
    } else if ((CdTime3 - seconds2) <= ManaRegen && CdCheck == 1) {
        combo_run (CooldownStall);
    } else {combo_run (SingAoEBasicAttack);
    }
    wait(HoldTime);
   // set_led(currentled,0);
} // End Combo
 
/*
combo SpecAb2BasicAttack {
    set_val(XB360_RT, 100);
    wait(HoldTime);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
    set_val(XB360_B, 100);
    wait(HoldTime);
    set_val(XB360_B, 0);
    wait(HoldTime);
//    set_val(XB360_RB, 100);
//    wait(HoldTime);
//    set_val(XB360_RB, 0);
//    wait (HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_B, 100);
    wait(HoldTime);
    set_val(XB360_B, 0);
    wait(HoldTime);
//    set_val(XB360_LT, 100);
//    set_val(XB360_RB, 100);
//    wait(HoldTime);
//    set_val(XB360_RB, 0);
//    wait (HoldTime);
    set_val(XB360_LT, 0);
    wait (HoldTime);
    CdCheck=1;
} //End Combo
*/

 
combo SpecAb2Ability {
    //wait(750);
    set_val(TargetButton1, 100);
    wait(HoldTime);
    set_val(TargetButton1, 0);
    wait(HoldTime);
    CdCheck=0;
    seconds2=0;
} //End Combo
 
// Combo to automate target-mode abilities (such as Barriers). Only one ability can be assigned to the TargetButton.
// Once the Cooldown time is reached. The TargetButton is fired.
// All other abilities are fired when activated. The TargetButton can also be used as a single-use Selective combo by increasing
// the Cooldown time to very high amount (e.g. setting it >300 secs would make it so Spirit Blade did not activate in the middle
// of a fight allowing you to use it defensively).
combo SingularAoE {
    set_led(currentled,2);
//    block (XB360_LT, 1000); // Potion button blocked to prevent accidental use.
//     set_val(Sprint, 0);    // Deactivates Sprint to start combos.
    if (CdTime2 > 0) {      // If secondary timer is greater than zero, then Dual-AoE is assumed and will allow safely adding more primary time.
        ConfigSelect=5;
    } else if (seconds2 > CdTime1 && CdCheck == 1) {
        combo_run (SingAoEAbility);       
    // Cooldown timer is reset if player manually uses the ability.
    } else if (event_press(TargetButton1)) {
        CdCheck=0;
        seconds2=0;
    // All abilities ran while Cooldown timer is counting. If the TargetButton is changed then the appropiate button must be commented
    // out of this section. The default selection is Button "B".
    // This ELSEIF condition will force basic attack for 3 secs to rebuild mana prior to triggering TargetButton and reducing "hopping".
    } else if ((CdTime1 - seconds2) <= ManaRegen && CdCheck == 1) {
        combo_run (CooldownStall);
    } else {combo_run (SingAoEBasicAttack);
    }
    wait(HoldTime);
   // set_led(currentled,0);
} // End Combo
 
combo SingAoEBasicAttack {
    set_val(XB360_RT, 100);
    wait(HoldTime);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
    set_val(XB360_B, 100);
    wait(HoldTime);
    set_val(XB360_B, 0);
    wait(HoldTime);
//    set_val(XB360_RB, 100);
//    wait(HoldTime);
//    set_val(XB360_RB, 0);
//    wait (HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_B, 100);
    wait(HoldTime);
    set_val(XB360_B, 0);
    wait(HoldTime);
//    set_val(XB360_LT, 100);
//    set_val(XB360_RB, 100);
//    wait(HoldTime);
//    set_val(XB360_RB, 0);
//    wait (HoldTime);
    set_val(XB360_LT, 0);
    wait (HoldTime);
    CdCheck=1;
} //End Combo
 
combo SingAoEAbility {
    wait(HoldTime);
    set_val(TargetButton1, 100);
    wait(RestTime);
    set_val(ConfirmButton, 100);
    wait(HoldTime);
    set_val(TargetButton1, 0);
    set_val(ConfirmButton, 0);
    // A second check is made to abort target ability if it did not successfully fire.
    wait(HoldTime);
    CdCheck=0;
    seconds2=0;
} //End Combo
 
combo CooldownStall {
    set_val(XB360_RT, 100);
//    wait(HoldTime);
//    set_val(XB360_RT, 0);
    wait (HoldTime);
    CdCheck=1;
} //End Combo
 
combo DualAoE {
    set_led(currentled,2);
//    block (XB360_LT, 1000); // Potion button blocked to prevent accidental use.
//     set_val(Sprint, 0);    // Deactivates Sprint to start combos.
    if (seconds2 > CdTime1 && CdCheck ==1) {
        combo_run (SingAoEAbility);
    } else if (seconds2 <= ManaRegen && CdCheck == 1) {
        combo_run (CooldownStall);
    } else if (seconds3 > CdTime2 && CdCheck == 1) {
        combo_run (DualAoEAbility);       
    // Cooldown timer is reset if player manually uses the ability.
    } else if (event_press(TargetButton1)) {
        CdCheck=0;
        seconds2=0;
    } else if (event_press(TargetButton2)) {
        CdCheck=0;
        seconds3=0;
    // All abilities ran while Cooldown timer is counting. If the TargetButton is changed then the appropiate button must be commented
    // out of this section. The default selection is Button "B".
    // This ELSEIF condition will force basic attack for 3 secs to rebuild mana prior to triggering TargetButton and reducing "hopping".
    } else if ((CdTime1 - seconds2) <= ManaRegen && CdCheck == 1) {
        combo_run (CooldownStall);
    } else if ((CdTime2 - seconds3) <= ManaRegen && CdCheck == 1) {
        combo_run (CooldownStall);
    } else {combo_run (DualAoEBasicAttack);
    }
    wait(HoldTime);
  //  set_led(currentled,0);
} // End Combo
 
combo DualAoEBasicAttack {
    set_val(XB360_RT, 100);
    wait(HoldTime);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
//    set_val(XB360_B, 100);
//    wait(HoldTime);
//    set_val(XB360_B, 0);
//    wait(HoldTime);
//    set_val(XB360_RB, 100);
//    wait(HoldTime);
//    set_val(XB360_RB, 0);
//    wait (HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_LT, 100);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
//    set_val(XB360_LT, 100);
//    set_val(XB360_B, 100);
//    wait(HoldTime);
//    set_val(XB360_B, 0);
//    wait(HoldTime);
//    set_val(XB360_LT, 100);
//    set_val(XB360_RB, 100);
//    wait(HoldTime);
//    set_val(XB360_RB, 0);
//    wait (HoldTime);
    set_val(XB360_LT, 0);
    wait (HoldTime);
    CdCheck=1;
} //End Combo
 
combo DualAoEAbility {
    //wait(750);
    set_val(TargetButton2, 100);
    wait(HoldTime);
    set_val(ConfirmButton, 100);
    wait(HoldTime);
    set_val(TargetButton2, 0);
    set_val(ConfirmButton, 0);
    // A second check is made to abort target ability if it did not successfully fire.
    wait(RestTime);
    CdCheck=0;
    seconds3=0;
} //End Combo
\0