Dragon Age 3: Inquisition Multiplayer

This script comes with six (6) different useful configurations to enhance or rather ease your gameplay on Dragon Age: Inquisition Multiplayer experience. 1. A combo to speed up buying Store chests. 2. A combo to spam all abilities. 3. A combo to spam specific abilities. 4. A combo to spam specific abilities, plus one non-AoE cooldown. 5. A combo to spam specific abilities, plus one AoE cooldown. 6. A combo to spam specific abilities, plus two independent AoE cooldowns. This script is based off one I built for Dragon Age: Inquisition Single Player except I took the changes to the next level. I recommend trying this script out in solo runs first to get used to how the timing works, especially for AoE cooldowns.
Version1.10
AuthorShadohz
Publish DateSun, 21 Jun 2015 - 14:33
Last UpdateTue, 7 Jun 2016 - 15:22
Downloads47
RATE


1

0

Release Notes: Changed the defaults AoE/non-AoE to RB instead of B button. You should no longer have to change your Level 1 kits abilities around after promoting. - Added ManaRegen value so players could set their own build-up time up or down if they are using a mana-intensive mage kit. Default value is two. Never set it to zero (0). - Changed the firing order to X, Y, B, and RB. Improved the timing so there was less stall on basic attack for both mages and warrior kits while increasing the responsiveness of AoE abilities.
Code: Select all
/*
* ===============================================================================================================================================
* Author:           Shadohz
* Game:             Dragon Age 3: Inquisition Multiplayer
* 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/ksr8-tyn3-kt48-eokw. 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 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
* STARTBUTTON (see DEFINES). Approach a spawn of enemies and press the STARTBUTTON to begin your attacks. Press STARTBUTTON again to stop
* attacking or to disengage/run.
*
*
* Press D-PAD DOWN to activate the combo for buying treasure chests.
* Go to the Store screen and pick chest you want to spam-buy. Press the STARTBUTTON to activate the combination. Let it run until your inventory
* gets full (if you're slow or not paying attention then it may log you out of the game). Clear your inventory of items you do not want to keep.
* Repeat the steps again if you have more gold to spend.
*
*
*
* 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
* STARTBUTTON 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 STARTBUTTON. 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
* STARTBUTTON, 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.
*
*
* 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.
*
* The Tactical View/Target Mode has been disabled and Sprint has been swapped. If you prefer to leave Sprint on LT, then comment out the very
* first line in MAIN (SWAP). You should leave the Tactical View disabled however or use a different button for STARTBUTTON.
*
* ===============================================================================================================================================
*/

 
/*
* ===============================================================================================================================================
* VERSION CHANGES
*
* 1.10 - Changed the defaults AoE/non-AoE to RB instead of B button. You should no longer have to change your Level 1 kits abilities around after
* promoting. - Added ManaRegen value so players could set their own build-up time up or down if they are using a mana-intensive mage kit. Default
* value is two. Never set it to zero (0). - Changed the firing order to X, Y, B, and RB. Improved the timing so there was less stall on basic
* attack for both mages and warrior kits while increasing the responsiveness of AoE abilities.
*

* ===============================================================================================================================================
*/

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

unmap XB360_RS;
define StartButton = XB360_RS// Button used to activate all combos.
define Sprint = XB360_LS;       // Button assigned as Sprint
//define DisableRun = XB360_RS;
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=3;         // The number of seconds to use basic attack to build up mana/stamina between abilities.
/*
* ===============================================================================================================================================
* INITIALIZED VARIABLES
* ===============================================================================================================================================
*/

// No need to change anything else
int CdTime1, CdTime2, CdTime3, CdCheck;
int led, currentled, run, reset;
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) {seconds2=seconds2+1;seconds3=seconds3+1;seconds1=seconds1+1;timelimit=1000; } // seconds count
      //  if( timelimit<=0) {seconds3=seconds3+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_DOWN) && configsetup == TRUE)  {
        ConfigSelect = 1;
        CdTime1=0;
        CdTime2=0;
        CdTime3=0;
    }
    if(event_press (XB360_UP) && configsetup == TRUE) {
        ConfigSelect = 2;
        CdTime1=0;
        CdTime2=0;
        CdTime3=0;
    }
    if (event_press(XB360_LT) && configsetup == TRUE) {
        ConfigSelect = 3;
        CdTime1=0;
        CdTime2=0;
        CdTime3=0;
    }
    if (event_press(XB360_RT) && configsetup == TRUE)  {
        ConfigSelect = 4;
        CdTime3 = CdTime3 + CdMultiplier;
        seconds1=0;
    }
    if (event_press(XB360_LEFT) && configsetup == TRUE)  {
        ConfigSelect = 5;
        CdTime1 = CdTime1 + CdMultiplier;
        seconds1=0;
        seconds2=100;
    }
    if(event_press(XB360_RIGHT) && configsetup == TRUE)  {
        ConfigSelect = 6;
        CdTime2 = CdTime2 + CdMultiplier;
        seconds1=0;
        seconds3=100;
    }
    if((event_press(TargetButton1) && ConfigSelect==4) || (event_press(TargetButton1) && ConfigSelect==5) || (event_press(TargetButton1) && ConfigSelect==6)) {
        CdCheck=0;
        seconds2=0;
    }
    if(event_press(TargetButton2) && ConfigSelect==5) {
        CdCheck=0;
        seconds3=0;
    }
    if(event_press(Sprint) && configsetup == FALSE) {
        run=0;
        block(StartButton, 1000);
        set_val(Sprint, 100);
    }
    if(run == 1 && ConfigSelect == 1) {
        combo_run(StoreBuy);
    } else if (run == 1 && ConfigSelect == 2) {
        combo_run(AllAbilities);
    } else if (run == 1 && ConfigSelect == 3) {
        combo_run(SpecificAbilities1);
    } else if (run == 1 && ConfigSelect == 4) {
        combo_run(SpecificAbilities2);
    } else if (run == 1 && ConfigSelect == 5) {
        combo_run(SingularAoE);
    } else if (run == 1 && ConfigSelect == 6) {
        combo_run(DualAoE);
    } else {
        combo_stop(AllAbilities);
        combo_stop(SpecificAbilities1);
        combo_stop(SpecificAbilities2);
        combo_stop(SingularAoE);
        combo_stop(DualAoE);
        combo_stop(StoreBuy);
 
    }   
    if(event_press(StartButton) && configsetup == FALSE) {
        if(run == 1) {
            run = 0;
            reset_leds();
        } else {
            run = 1;
        }
    } else if ((event_press(XB360_BACK) || event_press(XB360_START)) && configsetup == FALSE) {
        run = 0;
/*    } else if (event_press(DisableRun) && configsetup == FALSE) {
        if (reset == 0) {
            run=0;
            reset=ConfigSelect;
            ConfigSelect=0;
        } else {
            run=0;
            ConfigSelect=reset;
            reset=0;
        }
*/

    }
}// End Main   
 
/*
* ===============================================================================================================================================
* COMBINATIONS
* ===============================================================================================================================================
*/

// Scripted buying for MP Store. Automate Loot purchases. Must be activated while in the Store.
combo StoreBuy {
    set_led(currentled,2);
    set_val(XB360_A, 100);
    wait (100);
    set_val(XB360_A, 0);
    wait (500)
    set_val(XB360_A, 100);
    wait (100);
    set_val(XB360_A, 0);
    wait (1000);
    set_val(XB360_B, 100);
    wait (100);
    set_val(XB360_B, 0);
    wait (500);
    set_led(currentled,0);
} //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_RT, 100);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_RT, 100);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
    set_val(XB360_RT, 100);
    set_val(XB360_B, 100);
    wait(HoldTime);
    set_val(XB360_B, 0);
    wait(HoldTime);
    set_val(XB360_RT, 100);
    set_val(XB360_RB, 100);
    wait(HoldTime);
    set_val(XB360_RB, 0);
    wait(HoldTime);
} //End Combo
 
// This is the "Selective Masher" combo. You can block out specific abilities to only be used.
// This combo is pre-configured for "Virtuoso" kits (basic attack and main magic attack).
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);
} //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 (SpecAb2BasicAttack);
    }
    wait(HoldTime);
   // set_led(currentled,0);
} // End Combo
 
combo SpecAb2BasicAttack {
    set_val(XB360_RT, 100);
    wait(HoldTime);
    set_val(XB360_RT, 100);
    set_val(XB360_X, 100);
    wait(HoldTime);
    set_val(XB360_X, 0);
    wait(HoldTime);
    set_val(XB360_RT, 100);
    set_val(XB360_Y, 100);
    wait(HoldTime);
    set_val(XB360_Y, 0);
    wait(HoldTime);
    set_val(XB360_RT, 100);
    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 (RestTime);
    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 (RestTime);
    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 (RestTime);
    CdCheck=1;
} //End Combo
 
combo DualAoEAbility {
    wait(HoldTime);
    set_val(TargetButton2, 100);
    wait(RestTime);
    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(HoldTime);
    CdCheck=0;
    seconds3=0;
} //End Combo
\0