PDA

View Full Version : Injustice 2 - Black Adam, Firestorm, Joker, Supergirl, Scarecrow and Red Hood.



Mr Fwak
19th June 17, 10:24
EDIT: just realised i posted it in the wrong place, my bad.


Updated some my existing scripts to have a B3 or F3 MB combo.

Black Adam:
// Black Adam//------------------------------------------------------------------------
define Y = 17; // TRIANGLE, Y
define B = 18; // CIRCLE, B
define A = 19; // CROSS, A
define X = 20; // SQUARE, X
define RB = 3; // R1, RB
define RT = 4; // R2, RT
define LB = 6; // L1, LB
define LT = 7; // L2, LT
define TOUCH = 27; // TOUCH PAD
define UP = 13; // DPAD UP
define DOWN = 14; // DPAD DOWN
define LEFT = 15; // DPAD LEFT
define RIGHT = 16; // DPAD RIGHT
define MOVE_X = 11; // LEFT ANALOG X
define MOVE_Y = 12; // LEFT ANALOG Y
//-----------------------------------------------------
define BACK = 128; // BACK FLAG
define FORWARD = 129; // FORWARD FLAG


// End Flags. 254 and 255 should never be used in the
// data segment for other purposes.
//-----------------------------------------------------
define EOC = 254; // End of Combo
define EOD = 255; // End of Data Segment
//-----------------------------------------------------


define Combo1 = 0;
define Combo2 = 1;
define Combo3 = 2;
define Combo4 = 3;
define Combo5 = 4;
define Combo6 = 5;
define Combo7 = 6;
define Combo8 = 7;
data(
Combo1,
2,FORWARD,
A,
2,
0,2,
1,RT,
10,
0,80,
2,UP,
FORWARD,
10,
0,10,
1,Y,
10,
0,4,
1,DOWN,
2,
0,2,
1,FORWARD,
2,
0,2,
1,A,
10,
0,70,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,50,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
2,X,
A,
10,
0,200,
EOC,
Combo2,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,X,
10,
0,90,
2,BACK,
A,
10,
0,70,
2,UP,
FORWARD,
10,
0,30,
1,A,
10,
0,4,
1,DOWN,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,65,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
2,X,
A,
10,
0,200,
EOC,
Combo3,
1,UP,
4,
0,4,
1,DOWN,
10,
0,1,
2,FORWARD,
A,
10,
0,4,
1,RT,
10,
0,43,
1,UP,
6,
0,4,
1,DOWN,
10,
0,1,
2,FORWARD,
A,
10,
0,57,
2,FORWARD,
X,
10,
0,4,
2,Y,
B,
2,
0,64,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
2,X,
A,
200,
EOC,
Combo4,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,50,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
2,BACK,
A,
10,
0,20,
1,RT,
10,
0,114,
2,BACK,
A,
10,
0,80,
2,UP,
FORWARD,
10,
0,20,
1,A,
10,
0,2,
1,DOWN,
10,
0,4,
2,FORWARD,
A,
10,
0,70,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,15,
2,A,
X,
10,
0,200,
EOC,
Combo5,
1,DOWN,
2,
0,5,
2,FORWARD,
Y,
2,
0,5,
EOC,
Combo6,
1,DOWN,
2,
0,5,
2,FORWARD,
X,
2,
0,5,
EOC,
Combo7,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,50,
1,Y,
10,
0,4,
1,Y,
10,
0,4,
2,BACK,
X,
10,
0,120,
1,UP,
2,
0,2,
1,X,
2,
0,15,
1,DOWN,
2,
0,2,
1,FORWARD,
2,
0,2,
1,A,
2,
0,75,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,X,
10,
0,100,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,50,
1,Y,
10,
0,125,
1,UP,
2,
0,5,
1,DOWN,
2,
0,2,
1,FORWARD,
2,
0,2,
1,A,
2,
0,2,
1,RT,
2,
0,58,
2,FORWARD,
A,
10,
0,85,
1,UP,
2,
0,5,
1,DOWN,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
2,
0,60,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,2,
1,DOWN,
2,
0,2,
2,BACK,
X,
10,
0,120,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,40,
1,Y,
10,
0,140,
1,UP,
2,
0,5,
1,DOWN,
2,
0,10,
2,FORWARD,
A,
2,
0,2,
1,RT,
2,
0,64,
1,UP,
2,
0,4,
1,DOWN,
2,
0,10,
2,BACK,
A,
10,
0,50,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,49,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,Y,
2,
0,2,
1,BACK,
100,
0,15,
1,UP,
10,
0,2,
1,Y,
2,
0,10,
1,DOWN,
10,
0,4,
1,FORWARD,
2,
0,5,
1,A,
2,
0,80,
2,FORWARD,
A,
10,
0,80,
1,UP,
10,
0,4,
1,DOWN,
2,
0,5,
2,BACK,
A,
10,
0,60,
2,FORWARD,
X,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,X,
10,
0,100,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,50,
2,X,
A,
10,
0,200,
EOC,
Combo8,
1,Y,
10,
0,4,
1,Y,
10,
0,4,
2,BACK,
X,
10,
0,120,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,40,
2,X,
A,
10,
0,200,
EOC,
EOD );
unmap 9; //PS4_RX
unmap 10; //PS4_RY
unmap 11; //PS4_LX
unmap 12; //PS4_LY
unmap 8; //PS4_L3
unmap 5; //PS4_R3
int i = -1, b, v;
int back = LEFT, forward = RIGHT;
int button_1, button_2, button_3, button_4, button_5;
int value_1, value_2, value_3, value_4, value_5;
int wait_time;
int switch;
int delay_t;
int RUMBLE_TYPE=RUMBLE_A;
int cancel;
int EndOfCombo;
int CanStart;

main {



// Determine Back and Forward
if(get_val(RIGHT)) {
back = LEFT; forward = RIGHT;
} else if(get_val(LEFT)) {
back = RIGHT; forward = LEFT;
}//----------------------------------------------



// If there is a combo to be executed
if(i >= 0 && delay_t<=0) {
// Execute the combo step-by-step
if(!combo_running(execute_step)) {
if(get_step_values()) {
if(wait_time == 0) {
combo_run(execute_step_no_wait);
} else {
combo_run(execute_step);
}
} else { // the combo finished
i = -1;
}
}


// CANCEL combos condition-----------------------------------------
if ( (abs(get_val (9)) <= 20 && abs(get_val (10)) <= 20) && (abs(get_val (11)) <= 20 && abs(get_val (12)) <= 20) ) {
i = -1;
combo_stop(execute_step);
}


// Make sure the user inputs does not interfere in the combo
set_val(Y , 0);
set_val(B , 0);
set_val(A , 0);
set_val(X , 0);
set_val(RB , 0);
set_val(RT , 0);
set_val(LB , 0);
set_val(LT , 0);
set_val(UP , 0);
set_val(DOWN , 0);
set_val(LEFT , 0);
set_val(RIGHT , 0);
set_val(MOVE_X , 0);
set_val(MOVE_Y , 0);

// if no combo execute - look for combo activation
} else {
// EDIT THIS PART OF SCRIPT for combo run ---------------------------
//////////////////////////////////////////////////////////////////////////
// Right Stick RIGHT
if (get_val (9) >= 60) { //combo Combo4
i = get_combo_index(Combo4);
}
// Right Stick LEFT
if (get_val (9) <= -60) { //combo Combo3
i = get_combo_index(Combo1);
}
// Right Stick UP
if (get_val (10) <= -60) { //Combo Combo2
i = get_combo_index(Combo2);
}
// Right Stick DOWN
if (get_val (10) >= 60) { //Combo Combo1
i = get_combo_index(Combo3);
}
// Left Stick RIGHT
if (get_val (11) >= 60) { //combo Combo5
i = get_combo_index(Combo5);
}
// Left Stick LEFT
if (get_val (11) <= -60) { //combo Combo6
i = get_combo_index(Combo6);
}
// Left Stick UP
if (get_val (12) <= -60) { //Combo Combo7
i = get_combo_index(Combo8);
}
// Left Stick DOWN
if (get_val (12) >= 60) { //Combo Combo8
i = get_combo_index(Combo7);
}
// end editing here --------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////
}// <combo activation> end
}//<main> block end

// This combo will run a step with wait
combo execute_step {
set_buttons_values();
wait(wait_time);
set_buttons_values();
}

// This combo will run a step without wait
combo execute_step_no_wait {
set_buttons_values();
}


combo RUMBLE_NOTIFICATION {
set_rumble(RUMBLE_TYPE, 100);
wait(300);
reset_rumble ();
}

// Returns the starting index of a combo
function get_combo_index(combo_id) {
i = 0;
while(TRUE) {//-----------------------
v = dbyte(i);
if(v == combo_id) {
return(i + 1);
} else {//====================
while(v != EOC && v != EOD) {//#
i = i + 1;
v = dbyte(i);
}//#
if(v == EOD) break;
else i = i + 1;
}//=============================
}//-----------------------------------
return(-1);
}

// Set the buttons, values and wait time of a step
function get_step_values() {
b = dbyte(i); i = i + 1;
if(b > 5) return(FALSE);

if(b >= 1) {
button_1 = convert_back_forward(dbyte(i)); i = i + 1;
value_1 = 100;
} else { button_1 = -1; value_1 = 0; }

if(b >= 2) {
button_2 = convert_back_forward(dbyte(i)); i = i + 1;
value_2 = 100;
} else { button_2 = -1; value_2 = 0; }

if(b >= 3) {
button_3 = convert_back_forward(dbyte(i)); i = i + 1;
value_3 = 100;
} else { button_3 = -1; value_3 = 0; }

if(b >= 4) {
button_4 = convert_back_forward(dbyte(i)); i = i + 1;
value_4 = 100;
} else { button_4 = -1; value_4 = 0; }

if(b >= 5) {
button_5 = convert_back_forward(dbyte(i)); i = i + 1;
value_5 = 100;
} else { button_5 = -1; value_5 = 0; }

wait_time = dbyte(i); i = i + 1;
wait_time = (wait_time - 1) * 10;
if(wait_time < 0) wait_time = 0;
else if(wait_time > 2530) wait_time = 2530;

return(TRUE);
}

// If the step has FORWARD and BACK buttons, set the correct value.
function convert_back_forward(button) {
if(button == FORWARD) {
return(forward);
} else if(button == BACK) {
return(back);
}
return(button);
}

// Set the buttons and values, function used on the combos.
function set_buttons_values() {
if(button_1 != -1) set_val(button_1, value_1);
if(button_2 != -1) set_val(button_2, value_2);
if(button_3 != -1) set_val(button_3, value_3);
if(button_4 != -1) set_val(button_4, value_4);
if(button_5 != -1) set_val(button_5, value_5);
}

Firestorm:
// Firestorm//------------------------------------------------------------------------
define Y = 17; // TRIANGLE, Y
define B = 18; // CIRCLE, B
define A = 19; // CROSS, A
define X = 20; // SQUARE, X
define RB = 3; // R1, RB
define RT = 4; // R2, RT
define LB = 6; // L1, LB
define LT = 7; // L2, LT
define TOUCH = 27; // TOUCH PAD
define UP = 13; // DPAD UP
define DOWN = 14; // DPAD DOWN
define LEFT = 15; // DPAD LEFT
define RIGHT = 16; // DPAD RIGHT
define MOVE_X = 11; // LEFT ANALOG X
define MOVE_Y = 12; // LEFT ANALOG Y
//-----------------------------------------------------
define BACK = 128; // BACK FLAG
define FORWARD = 129; // FORWARD FLAG


// End Flags. 254 and 255 should never be used in the
// data segment for other purposes.
//-----------------------------------------------------
define EOC = 254; // End of Combo
define EOD = 255; // End of Data Segment
//-----------------------------------------------------


define Combo1 = 0;
define Combo2 = 1;
define Combo3 = 2;
define Combo4 = 3;
define Combo5 = 4;
define Combo6 = 5;
define Combo7 = 6;
define Combo8 = 7;
data(
Combo1,
2,FORWARD,
X,
10,
0,4,
1,A,
10,
0,4,
1,DOWN,
10,
0,4,
2,BACK,
A,
4,
0,20,
1,RT,
10,
0,33,
2,BACK,
A,
10,
0,75,
2,UP,
FORWARD,
10,
0,40,
1,Y,
10,
0,40,
2,FORWARD,
Y,
10,
0,4,
1,X,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
1,DOWN,
10,
0,4,
1,Y,
2,
0,2,
1,FORWARD,
80,
0,2,
1,RT,
10,
0,60,
2,UP,
FORWARD,
10,
0,4,
1,FORWARD,
10,
0,10,
1,FORWARD,
10,
0,35,
1,Y,
10,
0,20,
2,FORWARD,
X,
10,
0,4,
1,A,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,200,
EOC,
Combo2,
2,FORWARD,
Y,
10,
0,4,
1,X,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,A,
10,
0,20,
1,RT,
10,
0,30,
2,BACK,
A,
10,
0,80,
2,UP,
FORWARD,
10,
0,23,
1,Y,
10,
0,50,
2,FORWARD,
Y,
10,
0,4,
1,X,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,200,
EOC,
Combo3,
2,FORWARD,
X,
10,
0,4,
1,A,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,200,
EOC,
Combo4,
2,BACK,
A,
2,
0,2,
1,RT,
10,
0,90,
2,UP,
FORWARD,
10,
0,20,
1,Y,
10,
0,20,
2,FORWARD,
Y,
10,
0,4,
1,X,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,200,
EOC,
Combo5,
1,BACK,
2,
0,2,
2,FORWARD,
X,
2,
0,2,
EOC,
Combo6,
1,BACK,
2,
0,2,
2,FORWARD,
A,
2,
0,2,
EOC,
Combo7,
2,FORWARD,
Y,
10,
0,10,
1,X,
10,
0,10,
1,A,
10,
0,10,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,A,
10,
0,30,
1,RT,
10,
0,30,
2,FORWARD,
A,
10,
0,50,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,A,
10,
0,60,
1,X,
10,
0,4,
1,X,
10,
0,50,
1,Y,
2,
0,2,
1,Y,
2,
0,2,
1,BACK,
10,
0,4,
2,DOWN,
Y,
10,
0,4,
1,BACK,
50,
0,60,
2,FORWARD,
LB,
10,
0,4,
EOC,
Combo8,
2,FORWARD,
A,
2,
0,2,
1,RT,
10,
0,70,
1,DOWN,
10,
0,4,
2,BACK,
A,
10,
0,4,
1,RT,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,A,
10,
0,65,
1,A,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,A,
10,
0,70,
1,Y,
2,
0,2,
1,Y,
2,
0,2,
1,BACK,
10,
0,4,
2,DOWN,
Y,
2,
0,2,
1,BACK,
70,
0,2,
1,RT,
30,
0,40,
1,UP,
10,
0,40,
1,Y,
10,
0,15,
2,FORWARD,
X,
10,
0,4,
1,A,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,4,
EOC,
EOD );
unmap 9; //PS4_RX
unmap 10; //PS4_RY
unmap 11; //PS4_LX
unmap 12; //PS4_LY
unmap 8; //PS4_L3
unmap 5; //PS4_R3
int i = -1, b, v;
int back = LEFT, forward = RIGHT;
int button_1, button_2, button_3, button_4, button_5;
int value_1, value_2, value_3, value_4, value_5;
int wait_time;
int switch;
int delay_t;
int RUMBLE_TYPE=RUMBLE_A;
int cancel;
int EndOfCombo;
int CanStart;

main {



// Determine Back and Forward
if(get_val(RIGHT)) {
back = LEFT; forward = RIGHT;
} else if(get_val(LEFT)) {
back = RIGHT; forward = LEFT;
}//----------------------------------------------



// If there is a combo to be executed
if(i >= 0 && delay_t<=0) {
// Execute the combo step-by-step
if(!combo_running(execute_step)) {
if(get_step_values()) {
if(wait_time == 0) {
combo_run(execute_step_no_wait);
} else {
combo_run(execute_step);
}
} else { // the combo finished
i = -1;
}
}


// CANCEL combos condition-----------------------------------------
if ( (abs(get_val (9)) <= 20 && abs(get_val (10)) <= 20) && (abs(get_val (11)) <= 20 && abs(get_val (12)) <= 20) ) {
i = -1;
combo_stop(execute_step);
}


// Make sure the user inputs does not interfere in the combo
set_val(Y , 0);
set_val(B , 0);
set_val(A , 0);
set_val(X , 0);
set_val(RB , 0);
set_val(RT , 0);
set_val(LB , 0);
set_val(LT , 0);
set_val(UP , 0);
set_val(DOWN , 0);
set_val(LEFT , 0);
set_val(RIGHT , 0);
set_val(MOVE_X , 0);
set_val(MOVE_Y , 0);

// if no combo execute - look for combo activation
} else {
// EDIT THIS PART OF SCRIPT for combo run ---------------------------
//////////////////////////////////////////////////////////////////////////
// Right Stick RIGHT
if (get_val (9) >= 60) { //combo Combo1
i = get_combo_index(Combo2);
}
// Right Stick LEFT
if (get_val (9) <= -60) { //combo Combo2
i = get_combo_index(Combo4);
}
// Right Stick UP
if (get_val (10) <= -60) { //Combo Combo3
i = get_combo_index(Combo3);
}
// Right Stick DOWN
if (get_val (10) >= 60) { //Combo Combo4
i = get_combo_index(Combo1);
}
// Left Stick RIGHT
if (get_val (11) >= 60) { //combo Combo5
i = get_combo_index(Combo5);
}
// Left Stick LEFT
if (get_val (11) <= -60) { //combo Combo6
i = get_combo_index(Combo6);
}
// Left Stick UP
if (get_val (12) <= -60) { //Combo Combo8
i = get_combo_index(Combo7);
}
// Left Stick DOWN
if (get_val (12) >= 60) { //Combo Combo7
i = get_combo_index(Combo8);
}
// end editing here --------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////
}// <combo activation> end
}//<main> block end

// This combo will run a step with wait
combo execute_step {
set_buttons_values();
wait(wait_time);
set_buttons_values();
}

// This combo will run a step without wait
combo execute_step_no_wait {
set_buttons_values();
}


combo RUMBLE_NOTIFICATION {
set_rumble(RUMBLE_TYPE, 100);
wait(300);
reset_rumble ();
}

// Returns the starting index of a combo
function get_combo_index(combo_id) {
i = 0;
while(TRUE) {//-----------------------
v = dbyte(i);
if(v == combo_id) {
return(i + 1);
} else {//====================
while(v != EOC && v != EOD) {//#
i = i + 1;
v = dbyte(i);
}//#
if(v == EOD) break;
else i = i + 1;
}//=============================
}//-----------------------------------
return(-1);
}

// Set the buttons, values and wait time of a step
function get_step_values() {
b = dbyte(i); i = i + 1;
if(b > 5) return(FALSE);

if(b >= 1) {
button_1 = convert_back_forward(dbyte(i)); i = i + 1;
value_1 = 100;
} else { button_1 = -1; value_1 = 0; }

if(b >= 2) {
button_2 = convert_back_forward(dbyte(i)); i = i + 1;
value_2 = 100;
} else { button_2 = -1; value_2 = 0; }

if(b >= 3) {
button_3 = convert_back_forward(dbyte(i)); i = i + 1;
value_3 = 100;
} else { button_3 = -1; value_3 = 0; }

if(b >= 4) {
button_4 = convert_back_forward(dbyte(i)); i = i + 1;
value_4 = 100;
} else { button_4 = -1; value_4 = 0; }

if(b >= 5) {
button_5 = convert_back_forward(dbyte(i)); i = i + 1;
value_5 = 100;
} else { button_5 = -1; value_5 = 0; }

wait_time = dbyte(i); i = i + 1;
wait_time = (wait_time - 1) * 10;
if(wait_time < 0) wait_time = 0;
else if(wait_time > 2530) wait_time = 2530;

return(TRUE);
}

// If the step has FORWARD and BACK buttons, set the correct value.
function convert_back_forward(button) {
if(button == FORWARD) {
return(forward);
} else if(button == BACK) {
return(back);
}
return(button);
}

// Set the buttons and values, function used on the combos.
function set_buttons_values() {
if(button_1 != -1) set_val(button_1, value_1);
if(button_2 != -1) set_val(button_2, value_2);
if(button_3 != -1) set_val(button_3, value_3);
if(button_4 != -1) set_val(button_4, value_4);
if(button_5 != -1) set_val(button_5, value_5);
}

Joker:
// The Joker//------------------------------------------------------------------------

define Y = 17; // TRIANGLE, Y
define B = 18; // CIRCLE, B
define A = 19; // CROSS, A
define X = 20; // SQUARE, X
define RB = 3; // R1, RB
define RT = 4; // R2, RT
define LB = 6; // L1, LB
define LT = 7; // L2, LT
define TOUCH = 27; // TOUCH PAD
define UP = 13; // DPAD UP
define DOWN = 14; // DPAD DOWN
define LEFT = 15; // DPAD LEFT
define RIGHT = 16; // DPAD RIGHT
define MOVE_X = 11; // LEFT ANALOG X
define MOVE_Y = 12; // LEFT ANALOG Y
//-----------------------------------------------------
define BACK = 128; // BACK FLAG
define FORWARD = 129; // FORWARD FLAG


// End Flags. 254 and 255 should never be used in the
// data segment for other purposes.
//-----------------------------------------------------
define EOC = 254; // End of Combo
define EOD = 255; // End of Data Segment
//-----------------------------------------------------


define Combo1 = 0;
define Combo2 = 1;
define Combo3 = 2;
define Combo4 = 3;
define Combo5 = 4;
define Combo6 = 5;
define Combo7 = 6;
define Combo8 = 7;
data(
Combo1,
1,A,
10,
0,4,
1,Y,
10,
0,20,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,Y,
10,
0,40,
1,RT,
10,
0,70,
2,BACK,
A,
10,
0,100,
2,UP,
FORWARD,
10,
0,4,
1,Y,
10,
0,40,
1,A,
10,
0,4,
1,Y,
10,
0,30,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,200,
EOC,
Combo2,
1,A,
10,
0,4,
1,Y,
10,
0,20,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,Y,
10,
0,40,
1,RT,
10,
0,70,
2,DOWN,
Y,
10,
0,2,
1,BACK,
10,
0,4,
1,A,
10,
0,4,
1,FORWARD,
20,
0,20,
2,UP,
FORWARD,
10,
0,4,
1,X,
10,
0,52,
1,DOWN,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
2,
0,5,
1,FORWARD,
30,
0,28,
1,Y,
10,
0,4,
1,X,
10,
0,5,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,A,
10,
0,4,
1,FORWARD,
40,
0,11,
2,FORWARD,
Y,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,200,
EOC,
Combo3,
2,FORWARD,
A,
2,
0,2,
1,RT,
10,
0,75,
2,UP,
FORWARD,
10,
0,4,
1,Y,
10,
0,50,
1,A,
10,
0,4,
1,Y,
10,
0,20,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,4,
EOC,
Combo4,
1,A,
10,
0,4,
1,Y,
10,
0,20,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,A,
10,
0,200,
EOC,
Combo5,
1,X,
10,
0,4,
1,X,
10,
0,4,
1,A,
10,
0,100,
2,DOWN,
Y,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
10,
0,70,
2,DOWN,
X,
10,
0,35,
2,DOWN,
X,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
10,
0,70,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,A,
10,
0,68,
1,X,
2,
0,2,
1,BACK,
2,
0,2,
1,FORWARD,
2,
0,2,
1,A,
10,
0,230,
EOC,
Combo6,
1,A,
10,
0,4,
1,Y,
10,
0,17,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,Y,
10,
0,20,
1,RT,
10,
0,100,
2,DOWN,
Y,
2,
0,2,
1,DOWN,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
10,
0,66,
1,UP,
10,
0,4,
1,X,
10,
0,4,
1,DOWN,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
2,
0,105,
1,Y,
10,
0,4,
1,X,
10,
0,4,
1,DOWN,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
10,
0,74,
2,FORWARD,
Y,
10,
0,4,
1,X,
10,
0,90,
2,DOWN,
Y,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
10,
0,79,
2,BACK,
X,
10,
0,4,
1,A,
10,
0,115,
2,DOWN,
Y,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
10,
0,78,
2,DOWN,
X,
10,
0,38,
2,DOWN,
X,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
10,
0,70,
1,X,
10,
0,4,
1,X,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
2,
0,2,
1,FORWARD,
2,
0,2,
1,A,
10,
0,200,
EOC,
Combo7,
1,DOWN,
2,
0,2,
1,FORWARD,
2,
0,2,
1,X,
10,
0,4,
EOC,
Combo8,
1,DOWN,
2,
0,2,
1,BACK,
2,
0,2,
1,Y,
10,
0,4,
EOC,
EOD );
unmap 9; //PS4_RX
unmap 10; //PS4_RY
unmap 11; //PS4_LX
unmap 12; //PS4_LY
unmap 8; //PS4_L3
unmap 5; //PS4_R3
int i = -1, b, v;
int back = LEFT, forward = RIGHT;
int button_1, button_2, button_3, button_4, button_5;
int value_1, value_2, value_3, value_4, value_5;
int wait_time;
int switch;
int delay_t;
int RUMBLE_TYPE=RUMBLE_A;
int cancel;
int EndOfCombo;
int CanStart;

main {



// Determine Back and Forward
if(get_val(RIGHT)) {
back = LEFT; forward = RIGHT;
} else if(get_val(LEFT)) {
back = RIGHT; forward = LEFT;
}//----------------------------------------------



// If there is a combo to be executed
if(i >= 0 && delay_t<=0) {
// Execute the combo step-by-step
if(!combo_running(execute_step)) {
if(get_step_values()) {
if(wait_time == 0) {
combo_run(execute_step_no_wait);
} else {
combo_run(execute_step);
}
} else { // the combo finished
i = -1;
}
}


// CANCEL combos condition-----------------------------------------
if ( (abs(get_val (9)) <= 20 && abs(get_val (10)) <= 20) && (abs(get_val (11)) <= 20 && abs(get_val (12)) <= 20) ) {
i = -1;
combo_stop(execute_step);
}


// Make sure the user inputs does not interfere in the combo
set_val(Y , 0);
set_val(B , 0);
set_val(A , 0);
set_val(X , 0);
set_val(RB , 0);
set_val(RT , 0);
set_val(LB , 0);
set_val(LT , 0);
set_val(UP , 0);
set_val(DOWN , 0);
set_val(LEFT , 0);
set_val(RIGHT , 0);
set_val(MOVE_X , 0);
set_val(MOVE_Y , 0);

// if no combo execute - look for combo activation
} else {
// EDIT THIS PART OF SCRIPT for combo run ---------------------------
//////////////////////////////////////////////////////////////////////////
// Right Stick RIGHT
if (get_val (9) >= 60) { //combo Combo1
i = get_combo_index(Combo1);
}
// Right Stick LEFT
if (get_val (9) <= -60) { //combo Combo3
i = get_combo_index(Combo3);
}
// Right Stick UP
if (get_val (10) <= -60) { //Combo Combo4
i = get_combo_index(Combo4);
}
// Right Stick DOWN
if (get_val (10) >= 60) { //Combo Combo2
i = get_combo_index(Combo2);
}
// Left Stick RIGHT
if (get_val (11) >= 60) { //combo Combo7
i = get_combo_index(Combo7);
}
// Left Stick LEFT
if (get_val (11) <= -60) { //combo Combo8
i = get_combo_index(Combo8);
}
// Left Stick UP
if (get_val (12) <= -60) { //Combo Combo5
i = get_combo_index(Combo5);
}
// Left Stick DOWN
if (get_val (12) >= 60) { //Combo Combo6
i = get_combo_index(Combo6);
}
// end editing here --------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////
}// <combo activation> end
}//<main> block end

// This combo will run a step with wait
combo execute_step {
set_buttons_values();
wait(wait_time);
set_buttons_values();
}

// This combo will run a step without wait
combo execute_step_no_wait {
set_buttons_values();
}


combo RUMBLE_NOTIFICATION {
set_rumble(RUMBLE_TYPE, 100);
wait(300);
reset_rumble ();
}

// Returns the starting index of a combo
function get_combo_index(combo_id) {
i = 0;
while(TRUE) {//-----------------------
v = dbyte(i);
if(v == combo_id) {
return(i + 1);
} else {//====================
while(v != EOC && v != EOD) {//#
i = i + 1;
v = dbyte(i);
}//#
if(v == EOD) break;
else i = i + 1;
}//=============================
}//-----------------------------------
return(-1);
}

// Set the buttons, values and wait time of a step
function get_step_values() {
b = dbyte(i); i = i + 1;
if(b > 5) return(FALSE);

if(b >= 1) {
button_1 = convert_back_forward(dbyte(i)); i = i + 1;
value_1 = 100;
} else { button_1 = -1; value_1 = 0; }

if(b >= 2) {
button_2 = convert_back_forward(dbyte(i)); i = i + 1;
value_2 = 100;
} else { button_2 = -1; value_2 = 0; }

if(b >= 3) {
button_3 = convert_back_forward(dbyte(i)); i = i + 1;
value_3 = 100;
} else { button_3 = -1; value_3 = 0; }

if(b >= 4) {
button_4 = convert_back_forward(dbyte(i)); i = i + 1;
value_4 = 100;
} else { button_4 = -1; value_4 = 0; }

if(b >= 5) {
button_5 = convert_back_forward(dbyte(i)); i = i + 1;
value_5 = 100;
} else { button_5 = -1; value_5 = 0; }

wait_time = dbyte(i); i = i + 1;
wait_time = (wait_time - 1) * 10;
if(wait_time < 0) wait_time = 0;
else if(wait_time > 2530) wait_time = 2530;

return(TRUE);
}

// If the step has FORWARD and BACK buttons, set the correct value.
function convert_back_forward(button) {
if(button == FORWARD) {
return(forward);
} else if(button == BACK) {
return(back);
}
return(button);
}

// Set the buttons and values, function used on the combos.
function set_buttons_values() {
if(button_1 != -1) set_val(button_1, value_1);
if(button_2 != -1) set_val(button_2, value_2);
if(button_3 != -1) set_val(button_3, value_3);
if(button_4 != -1) set_val(button_4, value_4);
if(button_5 != -1) set_val(button_5, value_5);
}

Supergirl:
// Supergirl//------------------------------------------------------------------------

define BTN1 = 17; // TRIANGLE, Y
define BTN2 = 18; // CIRCLE, B
define BTN3 = 19; // CROSS, A
define BTN4 = 20; // SQUARE, X
define BTN5 = 3; // R1, RB
define BTN6 = 4; // R2, RT
define BTN7 = 6; // L1, LB
define BTN8 = 7; // L2, LT
define TOUCH = 27; // TOUCH PAD
define UP = 13; // DPAD UP
define DOWN = 14; // DPAD DOWN
define LEFT = 15; // DPAD LEFT
define RIGHT = 16; // DPAD RIGHT
define MOVE_X = 11; // LEFT ANALOG X
define MOVE_Y = 12; // LEFT ANALOG Y
//-----------------------------------------------------
define BACK = 128; // BACK FLAG
define FORWARD = 129; // FORWARD FLAG


// End Flags. 254 and 255 should never be used in the
// data segment for other purposes.
//-----------------------------------------------------
define EOC = 254; // End of Combo
define EOD = 255; // End of Data Segment
//-----------------------------------------------------


define Combo1 = 0;
define Combo2 = 1;
define Combo3 = 2;
define Combo4 = 3;
define Combo5 = 4;
define Combo6 = 5;
define Combo7 = 6;
define Combo8 = 7;
define Combo2Restand = 8;
define Combo3Restand = 9;
define Combo4Restand = 10;
define Combo6TraitEnd = 11;
define Combo5Restand = 12;
data(
Combo1,
1,BTN4,
10,
0,4,
1,BTN4,
10,
0,4,
2,UP,
BTN3,
10,
0,102,
2,BACK,
BTN4,
10,
0,4,
1,BTN1,
10,
0,4,
1,BTN3,
10,
0,200,
EOC,
Combo2,
2,BACK,
BTN4,
10,
0,4,
1,BTN1,
10,
0,4,
1,DOWN,
4,
0,4,
1,FORWARD,
4,
0,4,
1,BTN1,
80,
1,BTN6,
10,
0,60,
1,FORWARD,
10,
0,2,
1,FORWARD,
10,
0,32,
2,BACK,
BTN3,
10,
0,80,
2,UP,
FORWARD,
10,
0,20,
1,BTN3,
10,
0,50,
2,BACK,
BTN4,
12,
0,42,
2,FORWARD,
BTN1,
12,
0,4,
1,BTN3,
10,
0,4,
1,DOWN,
10,
0,4,
2,BTN4,
BTN3,
10,
0,200,
EOC,
Combo3,
2,FORWARD,
BTN1,
10,
0,4,
1,BACK,
10,
0,4,
1,FORWARD,
10,
0,4,
1,BTN3,
10,
0,20,
1,BTN6,
10,
0,120,
2,BACK,
BTN3,
10,
0,80,
2,UP,
FORWARD,
10,
0,20,
1,BTN3,
12,
0,48,
2,FORWARD,
BTN1,
12,
0,4,
1,BTN3,
10,
0,4,
1,DOWN,
10,
0,4,
2,BTN4,
BTN3,
10,
0,200,
EOC,
Combo4,
2,BACK,
BTN3,
2,
0,2,
1,BTN6,
10,
0,80,
2,UP,
FORWARD,
10,
0,15,
1,BTN3,
10,
0,54,
2,FORWARD,
BTN1,
10,
0,4,
1,BTN3,
10,
0,4,
2,DOWN,
BTN7,
10,
0,200,
EOC,
Combo5,
2,FORWARD,
BTN1,
10,
0,4,
1,BTN3,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,BTN4,
10,
0,82,
1,BTN4,
10,
0,30,
2,FORWARD,
BTN1,
10,
0,4,
1,BTN3,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
1,BTN4,
10,
0,80,
1,BTN4,
10,
0,4,
1,BTN1,
10,
0,4,
1,BTN4,
10,
0,4,
1,BTN1
10,
0,200,
EOC,
Combo6,
1,DOWN,
2,
0,2,
1,BACK,
2,
0,2,
1,BTN1,
10,
0,4,
1,BTN6,
10,
0,72,
2,FORWARD,
BTN3,
10,
0,70,
2,BACK,
UP,
10,
0,20,
1,BTN3,
10,
0,60,
2,FORWARD,
BTN4,
10,
0,4,
1,BTN1,
10,
0,4,
2,BTN2,
BTN6,
10,
0,200,
EOC,
Combo7,
1,BACK,
2,
0,2,
1,FORWARD,
2,
0,2,
1,BTN3,
10,
0,4,
EOC,
Combo8,
1,DOWN,
2,
0,2,
1,FORWARD,
2,
0,2,
1,BTN1,
120,
0,2,
EOC,
Combo2Restand,
0,42,
1,BTN1,
10,
0,4,
1,BTN4,
10,
0,4,
1,BTN1,
10,
0,4,
EOC,
Combo3Restand,
0,10,
1,BTN3,
10,
0,60,
1,BTN1,
10,
0,4,
1,BTN4,
10,
0,4,
1,BTN1,
10,
0,4,
EOC,
Combo4Restand,
0,60,
1,BTN1,
10,
0,4,
1,BTN4,
10,
0,4,
1,BTN1,
10,
0,4,
EOC,
Combo6TraitEnd,
0,58,
2,FORWARD,
BTN4,
10,
0,4,
1,BTN1,
10,
0,4,
2,BTN2,
BTN6,
10,
0,200,
EOC,
Combo5Restand,
0,30,
1,BTN1,
10,
0,4,
1,BTN4,
10,
0,4,
1,BTN1,
10,
0,4,
EOC,
EOD );
unmap 9; //PS4_RX
unmap 10; //PS4_RY
unmap 11; //PS4_LX
unmap 12; //PS4_LY
unmap 8; //PS4_L3
unmap 5; //PS4_R3
int i = -1, b, v;
int back = LEFT, forward = RIGHT;
int button_1, button_2, button_3, button_4, button_5;
int value_1, value_2, value_3, value_4, value_5;
int wait_time;
int switch;
int delay_t;
int RUMBLE_TYPE=RUMBLE_A;
int cancel;
int EndOfCombo;
int CanStart;

main {



// Determine Back and Forward
if(get_val(RIGHT)) {
back = LEFT; forward = RIGHT;
} else if(get_val(LEFT)) {
back = RIGHT; forward = LEFT;
}//----------------------------------------------



// If there is a combo to be executed
if(i >= 0 && delay_t<=0) {
// Execute the combo step-by-step
if(!combo_running(execute_step)) {
if(get_step_values()) {
if(wait_time == 0) {
combo_run(execute_step_no_wait);
} else {
combo_run(execute_step);
}
} else { // the combo finished
i = -1;
}
}

// RS X and Y are in rest - cancel the combo
if ( (abs(get_val(9)) <= 20 && abs(get_val(10)) <= 20) && (abs(get_val (11)) <= 20 && abs(get_val (12)) <= 20) && (!get_val(5) && !get_val(8))) {
i = -1;
combo_stop(execute_step);
}
//CANCEL ----------------------------------------------------------



// Make sure the user inputs does not interfere in the combo
set_val(BTN1 , 0);
set_val(BTN2 , 0);
set_val(BTN3 , 0);
set_val(BTN4 , 0);
set_val(BTN5 , 0);
set_val(BTN6 , 0);
set_val(BTN7 , 0);
set_val(BTN8 , 0);
set_val(UP , 0);
set_val(DOWN , 0);
set_val(LEFT , 0);
set_val(RIGHT , 0);
set_val(MOVE_X , 0);
set_val(MOVE_Y , 0);

// if no combo execute - look for combo activation
} else {
// EDIT THIS PART OF SCRIPT for combo run ---------------------------
//////////////////////////////////////////////////////////////////////////
// Right Stick RIGHT
if (get_val (9) >= 60) { //combo Combo3
i = get_combo_index(Combo3);
}
// Right Stick LEFT
if (get_val (9) <= -60) { //combo Combo4
i = get_combo_index(Combo4);
}
// Right Stick UP
if (get_val (10) <= -60) { //Combo Combo1
i = get_combo_index(Combo1);
}
// Right Stick DOWN
if (get_val (10) >= 60) { //Combo Combo2
i = get_combo_index(Combo2);
}
// Left Stick RIGHT
if (get_val (11) >= 60) { //combo Combo8
i = get_combo_index(Combo8);
}
// Left Stick LEFT
if (get_val (11) <= -60) { //combo Combo7
i = get_combo_index(Combo7);
}
// Left Stick UP
if (get_val (12) <= -60) { //Combo Combo5
i = get_combo_index(Combo5);
}
// Left Stick DOWN
if (get_val (12) >= 60) { //Combo Combo6
i = get_combo_index(Combo6);
}
// end editing here --------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////
}// <combo activation> end
}//<main> block end

// This combo will run a step with wait
combo execute_step {
set_buttons_values();
wait(wait_time);
set_buttons_values();
}

// This combo will run a step without wait
combo execute_step_no_wait {
set_buttons_values();
}


combo RUMBLE_NOTIFICATION {
set_rumble(RUMBLE_TYPE, 100);
wait(300);
reset_rumble ();
}

// Returns the starting index of a combo
function get_combo_index(combo_id) {
i = 0;
while(TRUE) {//-----------------------
v = dbyte(i);
if(v == combo_id) {
return(i + 1);
} else {//====================
while(v != EOC && v != EOD) {//#
i = i + 1;
v = dbyte(i);
}//#
if(v == EOD) break;
else i = i + 1;
}//=============================
}//-----------------------------------
return(-1);
}

// Set the buttons, values and wait time of a step
function get_step_values() {
b = dbyte(i); i = i + 1;
if(b > 5) return(FALSE);

if(b >= 1) {
button_1 = convert_back_forward(dbyte(i)); i = i + 1;
value_1 = 100;
} else { button_1 = -1; value_1 = 0; }

if(b >= 2) {
button_2 = convert_back_forward(dbyte(i)); i = i + 1;
value_2 = 100;
} else { button_2 = -1; value_2 = 0; }

if(b >= 3) {
button_3 = convert_back_forward(dbyte(i)); i = i + 1;
value_3 = 100;
} else { button_3 = -1; value_3 = 0; }

if(b >= 4) {
button_4 = convert_back_forward(dbyte(i)); i = i + 1;
value_4 = 100;
} else { button_4 = -1; value_4 = 0; }

if(b >= 5) {
button_5 = convert_back_forward(dbyte(i)); i = i + 1;
value_5 = 100;
} else { button_5 = -1; value_5 = 0; }

wait_time = dbyte(i); i = i + 1;
wait_time = (wait_time - 1) * 10;
if(wait_time < 0) wait_time = 0;

return(TRUE);
}

// If the step has FORWARD and BACK buttons, set the correct value.
function convert_back_forward(button) {
if(button == FORWARD) {
return(forward);
} else if(button == BACK) {
return(back);
}
return(button);
}

// Set the buttons and values, function used on the combos.
function set_buttons_values() {
if(button_1 != -1) set_val(button_1, value_1);
if(button_2 != -1) set_val(button_2, value_2);
if(button_3 != -1) set_val(button_3, value_3);
if(button_4 != -1) set_val(button_4, value_4);
if(button_5 != -1) set_val(button_5, value_5);
}

Scarecrow:
// Scarecrow//------------------------------------------------------------------------
define Y = 17; // TRIANGLE, Y
define B = 18; // CIRCLE, B
define A = 19; // CROSS, A
define X = 20; // SQUARE, X
define RB = 3; // R1, RB
define RT = 4; // R2, RT
define LB = 6; // L1, LB
define LT = 7; // L2, LT
define TOUCH = 27; // TOUCH PAD
define UP = 13; // DPAD UP
define DOWN = 14; // DPAD DOWN
define LEFT = 15; // DPAD LEFT
define RIGHT = 16; // DPAD RIGHT
define MOVE_X = 11; // LEFT ANALOG X
define MOVE_Y = 12; // LEFT ANALOG Y
//-----------------------------------------------------
define BACK = 128; // BACK FLAG
define FORWARD = 129; // FORWARD FLAG


// End Flags. 254 and 255 should never be used in the
// data segment for other purposes.
//-----------------------------------------------------
define EOC = 254; // End of Combo
define EOD = 255; // End of Data Segment
//-----------------------------------------------------


define Combo1 = 0;
define Combo2 = 1;
define Combo3 = 2;
define Combo4 = 3;
define Combo5 = 4;
define Combo6 = 5;
define Combo7 = 6;
define Combo8 = 7;
data(
Combo1,
2,BACK,
A,
2,
0,2,
1,RT,
10,
0,80,
2,UP,
FORWARD,
10,
0,20,
1,A,
10,
0,50,
2,FORWARD,
Y,
10,
0,4,
1,X,
10,
0,4,
1,DOWN,
10,
0,2,
1,BACK,
10,
0,2,
2,FORWARD,
A,
10,
0,200,
EOC,




Combo2,
2,BACK,
Y,
10,
0,4,
1,Y,
10,
0,4,
1,X,
10,
0,4,
1,A,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
2,FORWARD,
A,
10,
0,200,
EOC,




Combo3,
2,BACK,
Y,
10,
0,4,
1,Y,
10,
0,4,
1,X,
10,
0,40,
1,DOWN,
10,
0.4
2,BACK,
X,
10,
0,40,
1,FORWARD,
2,
0,2,
1,FORWARD,
10,
0,30,
1,RT,
10,
0,95,
2,BACK,
A,
10,
0,80,
2,UP,
FORWARD,
10,
0,25,
1,A,
10,
0,45,
2,FORWARD,
Y,
10,
0,4,
1,X,
10,
0,4,
1,DOWN,
10,
0,2,
1,BACK,
10,
0,2,
2,FORWARD,
A,
10,
0,200,
EOC,




Combo4,
2,FORWARD,
X,
10,
0,4,
1,A,
10,
0,30,
1,DOWN,
10,
0,4,
2,BACK,
X,
10,
0,40,
1,FORWARD,
2,
0,2,
1,FORWARD,
10,
0,30,
1,RT,
10,
0,88,
2,BACK,
A,
10,
0,80,
2,UP,
FORWARD,
10,
0,25,
1,A,
10,
0,46,
2,FORWARD,
Y,
10,
0,4,
1,X,
10,
0,4,
1,DOWN,
10,
0,2,
1,BACK,
10,
0,2,
2,FORWARD,
A,
10,
0,200,
EOC,




Combo5,
1,DOWN,
2,
0,5,
2,BACK,
A,
2,
0,5,
EOC,




Combo6,
1,DOWN,
2,
0,2,
1,UP,
2,
0,2,
EOC,




Combo7,
2,FORWARD,
X,
10,
0,4,
1,A,
10,
0,4,
1,B,
10,
0,140,
2,FORWARD,
X,
10,
0,4,
1,A,
10,
0,30,
1,DOWN,
10,
0,4,
2,BACK,
X,
10,
0,40,
1,FORWARD,
2,
0,2,
1,FORWARD,
10,
0,30,
1,RT,
10,
0,90,
2,BACK,
A,
10,
0,80,
2,UP,
FORWARD,
10,
0,25,
1,A,
10,
0,45,
2,FORWARD,
Y,
10,
0,4,
1,X,
10,
0,4,
1,DOWN,
10,
0,2,
1,BACK,
10,
0,2,
2,FORWARD,
A,
10,
0,200,
EOC,




Combo8,
2,FORWARD,
X,
10,
0,4,
1,A,
10,
0,30,
1,DOWN,
10,
0,4,
2,BACK,
X,
10,
0,40,
1,FORWARD,
2,
0,2,
1,FORWARD,
10,
0,40,
1,RT,
10,
0,115,
1,UP,
2,
0,2,
1,A,
2,
0,20,
1,DOWN,
2,
0,2,
1,BACK,
2,
0,2,
1,A,
10,
0,65,
2,DOWN,
X,
10,
0,30,
1,X,
10,
0,4,
1,Y,
10,
0,4,
1,A,
10,
0,4,
1,DOWN,
10,
0,4,
1,BACK,
10,
0,4,
2,FORWARD,
A,
10,
0,200,
EOD );
unmap 9; //PS4_RX
unmap 10; //PS4_RY
unmap 11; //PS4_LX
unmap 12; //PS4_LY
unmap 8; //PS4_L3
unmap 5; //PS4_R3
int i = -1, b, v;
int back = LEFT, forward = RIGHT;
int button_1, button_2, button_3, button_4, button_5;
int value_1, value_2, value_3, value_4, value_5;
int wait_time;
int switch;
int delay_t;
int RUMBLE_TYPE=RUMBLE_A;
int cancel;
int EndOfCombo;
int CanStart;

main {



// Determine Back and Forward
if(get_val(RIGHT)) {
back = LEFT; forward = RIGHT;
} else if(get_val(LEFT)) {
back = RIGHT; forward = LEFT;
}//----------------------------------------------



// If there is a combo to be executed
if(i >= 0 && delay_t<=0) {
// Execute the combo step-by-step
if(!combo_running(execute_step)) {
if(get_step_values()) {
if(wait_time == 0) {
combo_run(execute_step_no_wait);
} else {
combo_run(execute_step);
}
} else { // the combo finished
i = -1;
}
}


// CANCEL combos condition-----------------------------------------
if ( (abs(get_val (9)) <= 20 && abs(get_val (10)) <= 20) && (abs(get_val (11)) <= 20 && abs(get_val (12)) <= 20) ) {
i = -1;
combo_stop(execute_step);
}


// Make sure the user inputs does not interfere in the combo
set_val(Y , 0);
set_val(B , 0);
set_val(A , 0);
set_val(X , 0);
set_val(RB , 0);
set_val(RT , 0);
set_val(LB , 0);
set_val(LT , 0);
set_val(UP , 0);
set_val(DOWN , 0);
set_val(LEFT , 0);
set_val(RIGHT , 0);
set_val(MOVE_X , 0);
set_val(MOVE_Y , 0);

// if no combo execute - look for combo activation
} else {
// EDIT THIS PART OF SCRIPT for combo run ---------------------------
//////////////////////////////////////////////////////////////////////////
// Right Stick RIGHT
if (get_val (9) >= 60) { //combo Combo4
i = get_combo_index(Combo4);
}
// Right Stick LEFT
if (get_val (9) <= -60) { //combo Combo3
i = get_combo_index(Combo1);
}
// Right Stick UP
if (get_val (10) <= -60) { //Combo Combo2
i = get_combo_index(Combo2);
}
// Right Stick DOWN
if (get_val (10) >= 60) { //Combo Combo1
i = get_combo_index(Combo3);
}
// Left Stick RIGHT
if (get_val (11) >= 60) { //combo Combo5
i = get_combo_index(Combo5);
}
// Left Stick LEFT
if (get_val (11) <= -60) { //combo Combo6
i = get_combo_index(Combo6);
}
// Left Stick UP
if (get_val (12) <= -60) { //Combo Combo7
i = get_combo_index(Combo8);
}
// Left Stick DOWN
if (get_val (12) >= 60) { //Combo Combo8
i = get_combo_index(Combo7);
}
// end editing here --------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////
}// <combo activation> end
}//<main> block end

// This combo will run a step with wait
combo execute_step {
set_buttons_values();
wait(wait_time);
set_buttons_values();
}

// This combo will run a step without wait
combo execute_step_no_wait {
set_buttons_values();
}


combo RUMBLE_NOTIFICATION {
set_rumble(RUMBLE_TYPE, 100);
wait(300);
reset_rumble ();
}

// Returns the starting index of a combo
function get_combo_index(combo_id) {
i = 0;
while(TRUE) {//-----------------------
v = dbyte(i);
if(v == combo_id) {
return(i + 1);
} else {//====================
while(v != EOC && v != EOD) {//#
i = i + 1;
v = dbyte(i);
}//#
if(v == EOD) break;
else i = i + 1;
}//=============================
}//-----------------------------------
return(-1);
}

// Set the buttons, values and wait time of a step
function get_step_values() {
b = dbyte(i); i = i + 1;
if(b > 5) return(FALSE);

if(b >= 1) {
button_1 = convert_back_forward(dbyte(i)); i = i + 1;
value_1 = 100;
} else { button_1 = -1; value_1 = 0; }

if(b >= 2) {
button_2 = convert_back_forward(dbyte(i)); i = i + 1;
value_2 = 100;
} else { button_2 = -1; value_2 = 0; }

if(b >= 3) {
button_3 = convert_back_forward(dbyte(i)); i = i + 1;
value_3 = 100;
} else { button_3 = -1; value_3 = 0; }

if(b >= 4) {
button_4 = convert_back_forward(dbyte(i)); i = i + 1;
value_4 = 100;
} else { button_4 = -1; value_4 = 0; }

if(b >= 5) {
button_5 = convert_back_forward(dbyte(i)); i = i + 1;
value_5 = 100;
} else { button_5 = -1; value_5 = 0; }

wait_time = dbyte(i); i = i + 1;
wait_time = (wait_time - 1) * 10;
if(wait_time < 0) wait_time = 0;
else if(wait_time > 2530) wait_time = 2530;

return(TRUE);
}

// If the step has FORWARD and BACK buttons, set the correct value.
function convert_back_forward(button) {
if(button == FORWARD) {
return(forward);
} else if(button == BACK) {
return(back);
}
return(button);
}

// Set the buttons and values, function used on the combos.
function set_buttons_values() {
if(button_1 != -1) set_val(button_1, value_1);
if(button_2 != -1) set_val(button_2, value_2);
if(button_3 != -1) set_val(button_3, value_3);
if(button_4 != -1) set_val(button_4, value_4);
if(button_5 != -1) set_val(button_5, value_5);
}

Red Hood:
// Red Hood//------------------------------------------------------------------------
define Y = 17; // TRIANGLE, Y
define B = 18; // CIRCLE, B
define A = 19; // CROSS, A
define X = 20; // SQUARE, X
define RB = 3; // R1, RB
define RT = 4; // R2, RT
define LB = 6; // L1, LB
define LT = 7; // L2, LT
define TOUCH = 27; // TOUCH PAD
define UP = 13; // DPAD UP
define DOWN = 14; // DPAD DOWN
define LEFT = 15; // DPAD LEFT
define RIGHT = 16; // DPAD RIGHT
define MOVE_X = 11; // LEFT ANALOG X
define MOVE_Y = 12; // LEFT ANALOG Y
//-----------------------------------------------------
define BACK = 128; // BACK FLAG
define FORWARD = 129; // FORWARD FLAG


// End Flags. 254 and 255 should never be used in the
// data segment for other purposes.
//-----------------------------------------------------
define EOC = 254; // End of Combo
define EOD = 255; // End of Data Segment
//-----------------------------------------------------


define Combo1 = 0;
define Combo2 = 1;
define Combo3 = 2;
define Combo4 = 3;
define Combo5 = 4;
define Combo6 = 5;
define Combo7 = 6;
define Combo8 = 7;
data(
Combo1,
2,BACK,
A,
2,
0,2,
1,RT,
10,
0,70,
2,UP,
FORWARD,
10,
0,20,
1,A,
10,
0,44,
2,BACK,
X,
10,
0,47,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
2,DOWN,
Y,
10,
0,200,
EOC,




Combo2,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
2,X,
A,
10,
0,200,
EOC,




Combo3,
2,BACK,
Y,
10,
0,4,
2,FORWARD,
X,
10,
0,4,
1,BACK,
30,
0,4,
1,RT,
10,
0,57,
2,BACK,
A,
10,
0,70,
2,FORWARD,
UP,
10,
0,4,
1,A,
10,
0,60,
2,FORWARD,
Y,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
2,FORWARD,
X,
10,
0,4,
1,BACK,
20,
0,40,
1,FORWARD,
50,
0,4,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
2,X,
A,
10,
0,200,
EOC,




Combo4,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,BACK,
10,
0,4,
2,FORWARD,
X,
10,
0,4,
1,BACK,
30,
0,4,
1,RT,
10,
0,55,
2,BACK,
A,
10,
0,70,
2,FORWARD,
UP,
10,
0,4,
1,A,
10,
0,60,
2,FORWARD,
Y,
10,
0,4,
1,A,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
1,LB,
10,
0,200,
EOC,




Combo5,
1,BACK,
2,
0,2,
2,FORWARD,
Y,
2,
0,2,
EOC,




Combo6,
1,DOWN,
2,
0,2,
2,BACK,
Y,
2,
0,2,
EOC,




Combo7,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,82,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
2,BACK,
Y,
10,
0,10,
1,RT,
10,
0,120,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
2,FORWARD,
A,
10,
0,200,
EOC,




Combo8,
2,FORWARD,
A,
2,
0,4,
1,RT,
10,
0,95,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,85,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,30,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,30,
2,UP,
Y,
10,
0,200,
EOD );
unmap 9; //PS4_RX
unmap 10; //PS4_RY
unmap 11; //PS4_LX
unmap 12; //PS4_LY
unmap 8; //PS4_L3
unmap 5; //PS4_R3
int i = -1, b, v;
int back = LEFT, forward = RIGHT;
int button_1, button_2, button_3, button_4, button_5;
int value_1, value_2, value_3, value_4, value_5;
int wait_time;
int switch;
int delay_t;
int RUMBLE_TYPE=RUMBLE_A;
int cancel;
int EndOfCombo;
int CanStart;

main {



// Determine Back and Forward
if(get_val(RIGHT)) {
back = LEFT; forward = RIGHT;
} else if(get_val(LEFT)) {
back = RIGHT; forward = LEFT;
}//----------------------------------------------



// If there is a combo to be executed
if(i >= 0 && delay_t<=0) {
// Execute the combo step-by-step
if(!combo_running(execute_step)) {
if(get_step_values()) {
if(wait_time == 0) {
combo_run(execute_step_no_wait);
} else {
combo_run(execute_step);
}
} else { // the combo finished
i = -1;
}
}


// CANCEL combos condition-----------------------------------------
if ( (abs(get_val (9)) <= 20 && abs(get_val (10)) <= 20) && (abs(get_val (11)) <= 20 && abs(get_val (12)) <= 20) ) {
i = -1;
combo_stop(execute_step);
}


// Make sure the user inputs does not interfere in the combo
set_val(Y , 0);
set_val(B , 0);
set_val(A , 0);
set_val(X , 0);
set_val(RB , 0);
set_val(RT , 0);
set_val(LB , 0);
set_val(LT , 0);
set_val(UP , 0);
set_val(DOWN , 0);
set_val(LEFT , 0);
set_val(RIGHT , 0);
set_val(MOVE_X , 0);
set_val(MOVE_Y , 0);

// if no combo execute - look for combo activation
} else {
// EDIT THIS PART OF SCRIPT for combo run ---------------------------
//////////////////////////////////////////////////////////////////////////
// Right Stick RIGHT
if (get_val (9) >= 60) { //combo Combo4
i = get_combo_index(Combo4);
}
// Right Stick LEFT
if (get_val (9) <= -60) { //combo Combo3
i = get_combo_index(Combo1);
}
// Right Stick UP
if (get_val (10) <= -60) { //Combo Combo2
i = get_combo_index(Combo2);
}
// Right Stick DOWN
if (get_val (10) >= 60) { //Combo Combo1
i = get_combo_index(Combo3);
}
// Left Stick RIGHT
if (get_val (11) >= 60) { //combo Combo5
i = get_combo_index(Combo5);
}
// Left Stick LEFT
if (get_val (11) <= -60) { //combo Combo6
i = get_combo_index(Combo6);
}
// Left Stick UP
if (get_val (12) <= -60) { //Combo Combo7
i = get_combo_index(Combo8);
}
// Left Stick DOWN
if (get_val (12) >= 60) { //Combo Combo8
i = get_combo_index(Combo7);
}
// end editing here --------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////
}// <combo activation> end
}//<main> block end

// This combo will run a step with wait
combo execute_step {
set_buttons_values();
wait(wait_time);
set_buttons_values();
}

// This combo will run a step without wait
combo execute_step_no_wait {
set_buttons_values();
}


combo RUMBLE_NOTIFICATION {
set_rumble(RUMBLE_TYPE, 100);
wait(300);
reset_rumble ();
}

// Returns the starting index of a combo
function get_combo_index(combo_id) {
i = 0;
while(TRUE) {//-----------------------
v = dbyte(i);
if(v == combo_id) {
return(i + 1);
} else {//====================
while(v != EOC && v != EOD) {//#
i = i + 1;
v = dbyte(i);
}//#
if(v == EOD) break;
else i = i + 1;
}//=============================
}//-----------------------------------
return(-1);
}

// Set the buttons, values and wait time of a step
function get_step_values() {
b = dbyte(i); i = i + 1;
if(b > 5) return(FALSE);

if(b >= 1) {
button_1 = convert_back_forward(dbyte(i)); i = i + 1;
value_1 = 100;
} else { button_1 = -1; value_1 = 0; }

if(b >= 2) {
button_2 = convert_back_forward(dbyte(i)); i = i + 1;
value_2 = 100;
} else { button_2 = -1; value_2 = 0; }

if(b >= 3) {
button_3 = convert_back_forward(dbyte(i)); i = i + 1;
value_3 = 100;
} else { button_3 = -1; value_3 = 0; }

if(b >= 4) {
button_4 = convert_back_forward(dbyte(i)); i = i + 1;
value_4 = 100;
} else { button_4 = -1; value_4 = 0; }

if(b >= 5) {
button_5 = convert_back_forward(dbyte(i)); i = i + 1;
value_5 = 100;
} else { button_5 = -1; value_5 = 0; }

wait_time = dbyte(i); i = i + 1;
wait_time = (wait_time - 1) * 10;
if(wait_time < 0) wait_time = 0;
else if(wait_time > 2530) wait_time = 2530;

return(TRUE);
}

// If the step has FORWARD and BACK buttons, set the correct value.
function convert_back_forward(button) {
if(button == FORWARD) {
return(forward);
} else if(button == BACK) {
return(back);
}
return(button);
}

// Set the buttons and values, function used on the combos.
function set_buttons_values() {
if(button_1 != -1) set_val(button_1, value_1);
if(button_2 != -1) set_val(button_2, value_2);
if(button_3 != -1) set_val(button_3, value_3);
if(button_4 != -1) set_val(button_4, value_4);
if(button_5 != -1) set_val(button_5, value_5);
}

Rampage
19th June 17, 18:54
Nice work man! love all of them

Cutthroat
20th June 17, 16:17
Nice Work Man For The Red Hood Ls Down Corner Combo for More Dmg input this tiny adjustment.

B23-"22"-32xxdb2mb-32df3 For 477dmg instead of 447dmg

jericho246
21st June 17, 03:39
Good stuff mate!

ScorpionKiller
21st June 17, 08:57
Thanks for those combos and the time and effort you put into it you should post a vid on how you do your combos just a thought so others can learn i know scripting is not easy and can be difficult at times

Mr Fwak
21st June 17, 18:35
Nice Work Man For The Red Hood Ls Down Corner Combo for More Dmg input this tiny adjustment.

B23-"22"-32xxdb2mb-32df3 For 477dmg instead of 447dmg
i might update it at a later date, i'll see.


Thanks for those combos and the time and effort you put into it you should post a vid on how you do your combos just a thought so others can learn i know scripting is not easy and can be difficult at times
ye i will a some point, it's been super hot where i live so been enjoying the weather.
i'll do one, one of the days mate.

semo213
24th June 17, 00:48
how do you start the combos?

xEsyp
1st July 17, 19:26
So If I wanted this to work on Ps4 i would have to change the button layouts?

Mr Fwak
1st July 17, 20:47
So If I wanted this to work on Ps4 i would have to change the button layouts?

Nope, works either way.

Iconic91
4th July 17, 10:39
Hey your red hood right stick down combo was dropping for me, so i made some adjustments. i also changed the right combo to my preferred forward 23 since it hits high and overhead rather than mid i figure id post it here in case anyone has the same problems.


define Y = 17; // TRIANGLE, Y
define B = 18; // CIRCLE, B
define A = 19; // CROSS, A
define X = 20; // SQUARE, X
define RB = 3; // R1, RB
define RT = 4; // R2, RT
define LB = 6; // L1, LB
define LT = 7; // L2, LT
define TOUCH = 27; // TOUCH PAD
define UP = 13; // DPAD UP
define DOWN = 14; // DPAD DOWN
define LEFT = 15; // DPAD LEFT
define RIGHT = 16; // DPAD RIGHT
define MOVE_X = 11; // LEFT ANALOG X
define MOVE_Y = 12; // LEFT ANALOG Y
//-----------------------------------------------------
define BACK = 128; // BACK FLAG
define FORWARD = 129; // FORWARD FLAG




// End Flags. 254 and 255 should never be used in the
// data segment for other purposes.
//-----------------------------------------------------
define EOC = 254; // End of Combo
define EOD = 255; // End of Data Segment
//-----------------------------------------------------




define Combo1 = 0;
define Combo2 = 1;
define Combo3 = 2;
define Combo4 = 3;
define Combo5 = 4;
define Combo6 = 5;
define Combo7 = 6;
define Combo8 = 7;
data(
Combo1,
2,BACK,
A,
2,
0,2,
1,RT,
10,
0,70,
2,UP,
FORWARD,
10,
0,20,
1,A,
10,
0,44,
2,BACK,
X,
10,
0,47,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
2,DOWN,
Y,
10,
0,200,
EOC,








Combo2,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
2,X,
A,
10,
0,200,
EOC,








Combo3,
2,BACK,
Y,
10,
0,4,
1,BACK,
10,
0,4,
2,FORWARD,
X,
10,
0,4,
1,BACK,
30,
0,4,
1,RT,
10,
0,55,
2,BACK,
A,
10,
0,75,
2,FORWARD,
UP,
10,
0,4,
1,A,
10,
0,60,
2,FORWARD,
Y,
10,
0,4,
1,A,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
1,LB,
10,
0,200,
EOC,








Combo4,
2,FORWARD,
Y,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
2,FORWARD,
X,
10,
0,4,
1,BACK,
30,
0,4,
1,RT,
10,
0,55,
2,BACK,
A,
10,
0,73,
2,FORWARD,
UP,
10,
0,4,
1,A,
10,
0,60,
2,FORWARD,
Y,
10,
0,4,
1,A,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
1,LB,
10,
0,200,
EOC,








Combo5,
1,BACK,
2,
0,2,
2,FORWARD,
Y,
2,
0,2,
EOC,








Combo6,
1,DOWN,
2,
0,2,
2,BACK,
Y,
2,
0,2,
EOC,








Combo7,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,82,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
2,BACK,
Y,
10,
0,10,
1,RT,
10,
0,120,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
2,FORWARD,
A,
10,
0,200,
EOC,








Combo8,
2,FORWARD,
A,
2,
0,4,
1,RT,
10,
0,95,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,85,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,30,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,30,
2,UP,
Y,
10,
0,200,
EOD );
unmap 9; //PS4_RX
unmap 10; //PS4_RY
unmap 11; //PS4_LX
unmap 12; //PS4_LY
unmap 8; //PS4_L3
unmap 5; //PS4_R3
int i = -1, b, v;
int back = LEFT, forward = RIGHT;
int button_1, button_2, button_3, button_4, button_5;
int value_1, value_2, value_3, value_4, value_5;
int wait_time;
int switch;
int delay_t;
int RUMBLE_TYPE=RUMBLE_A;
int cancel;
int EndOfCombo;
int CanStart;


main {






// Determine Back and Forward
if(get_val(RIGHT)) {
back = LEFT; forward = RIGHT;
} else if(get_val(LEFT)) {
back = RIGHT; forward = LEFT;
}//----------------------------------------------






// If there is a combo to be executed
if(i >= 0 && delay_t<=0) {
// Execute the combo step-by-step
if(!combo_running(execute_step)) {
if(get_step_values()) {
if(wait_time == 0) {
combo_run(execute_step_no_wait);
} else {
combo_run(execute_step);
}
} else { // the combo finished
i = -1;
}
}




// CANCEL combos condition-----------------------------------------
if ( (abs(get_val (9)) <= 20 && abs(get_val (10)) <= 20) && (abs(get_val (11)) <= 20 && abs(get_val (12)) <= 20) ) {
i = -1;
combo_stop(execute_step);
}




// Make sure the user inputs does not interfere in the combo
set_val(Y , 0);
set_val(B , 0);
set_val(A , 0);
set_val(X , 0);
set_val(RB , 0);
set_val(RT , 0);
set_val(LB , 0);
set_val(LT , 0);
set_val(UP , 0);
set_val(DOWN , 0);
set_val(LEFT , 0);
set_val(RIGHT , 0);
set_val(MOVE_X , 0);
set_val(MOVE_Y , 0);


// if no combo execute - look for combo activation
} else {
// EDIT THIS PART OF SCRIPT for combo run ---------------------------
//////////////////////////////////////////////////////////////////////////
// Right Stick RIGHT
if (get_val (9) >= 60) { //combo Combo4
i = get_combo_index(Combo4);
}
// Right Stick LEFT
if (get_val (9) <= -60) { //combo Combo3
i = get_combo_index(Combo1);
}
// Right Stick UP
if (get_val (10) <= -60) { //Combo Combo2
i = get_combo_index(Combo2);
}
// Right Stick DOWN
if (get_val (10) >= 60) { //Combo Combo1
i = get_combo_index(Combo3);
}
// Left Stick RIGHT
if (get_val (11) >= 60) { //combo Combo5
i = get_combo_index(Combo5);
}
// Left Stick LEFT
if (get_val (11) <= -60) { //combo Combo6
i = get_combo_index(Combo6);
}
// Left Stick UP
if (get_val (12) <= -60) { //Combo Combo7
i = get_combo_index(Combo8);
}
// Left Stick DOWN
if (get_val (12) >= 60) { //Combo Combo8
i = get_combo_index(Combo7);
}
// end editing here --------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////
}// <combo activation> end
}//<main> block end


// This combo will run a step with wait
combo execute_step {
set_buttons_values();
wait(wait_time);
set_buttons_values();
}


// This combo will run a step without wait
combo execute_step_no_wait {
set_buttons_values();
}




combo RUMBLE_NOTIFICATION {
set_rumble(RUMBLE_TYPE, 100);
wait(300);
reset_rumble ();
}


// Returns the starting index of a combo
function get_combo_index(combo_id) {
i = 0;
while(TRUE) {//-----------------------
v = dbyte(i);
if(v == combo_id) {
return(i + 1);
} else {//====================
while(v != EOC && v != EOD) {//#
i = i + 1;
v = dbyte(i);
}//#
if(v == EOD) break;
else i = i + 1;
}//=============================
}//-----------------------------------
return(-1);
}


// Set the buttons, values and wait time of a step
function get_step_values() {
b = dbyte(i); i = i + 1;
if(b > 5) return(FALSE);


if(b >= 1) {
button_1 = convert_back_forward(dbyte(i)); i = i + 1;
value_1 = 100;
} else { button_1 = -1; value_1 = 0; }


if(b >= 2) {
button_2 = convert_back_forward(dbyte(i)); i = i + 1;
value_2 = 100;
} else { button_2 = -1; value_2 = 0; }


if(b >= 3) {
button_3 = convert_back_forward(dbyte(i)); i = i + 1;
value_3 = 100;
} else { button_3 = -1; value_3 = 0; }


if(b >= 4) {
button_4 = convert_back_forward(dbyte(i)); i = i + 1;
value_4 = 100;
} else { button_4 = -1; value_4 = 0; }


if(b >= 5) {
button_5 = convert_back_forward(dbyte(i)); i = i + 1;
value_5 = 100;
} else { button_5 = -1; value_5 = 0; }


wait_time = dbyte(i); i = i + 1;
wait_time = (wait_time - 1) * 10;
if(wait_time < 0) wait_time = 0;
else if(wait_time > 2530) wait_time = 2530;


return(TRUE);
}


// If the step has FORWARD and BACK buttons, set the correct value.
function convert_back_forward(button) {
if(button == FORWARD) {
return(forward);
} else if(button == BACK) {
return(back);
}
return(button);
}


// Set the buttons and values, function used on the combos.
function set_buttons_values() {
if(button_1 != -1) set_val(button_1, value_1);
if(button_2 != -1) set_val(button_2, value_2);
if(button_3 != -1) set_val(button_3, value_3);
if(button_4 != -1) set_val(button_4, value_4);
if(button_5 != -1) set_val(button_5, value_5);
}

ScorpionKiller
4th July 17, 14:12
Iconic there was a problem in your script make sure you compile your script before you post it thanks for the combo though your script there was only error

Iconic91
4th July 17, 15:22
how strange i dont seem to have a problem with it, it works fine for me :/ ill give it a read through!

Excalibur
7th July 17, 03:28
Iconic there was a problem in your script make sure you compile your script before you post it thanks for the combo though your script there was only error


how strange i dont seem to have a problem with it, it works fine for me :/ ill give it a read through!


I already fix this little mistake.

Iconic91
8th July 17, 10:06
redone error fixed define Y = 17; // TRIANGLE, Y define B = 18; // CIRCLE, B
define A = 19; // CROSS, A
define X = 20; // SQUARE, X
define RB = 3; // R1, RB
define RT = 4; // R2, RT
define LB = 6; // L1, LB
define LT = 7; // L2, LT
define TOUCH = 27; // TOUCH PAD
define UP = 13; // DPAD UP
define DOWN = 14; // DPAD DOWN
define LEFT = 15; // DPAD LEFT
define RIGHT = 16; // DPAD RIGHT
define MOVE_X = 11; // LEFT ANALOG X
define MOVE_Y = 12; // LEFT ANALOG Y
//-----------------------------------------------------
define BACK = 128; // BACK FLAG
define FORWARD = 129; // FORWARD FLAG




// End Flags. 254 and 255 should never be used in the
// data segment for other purposes.
//-----------------------------------------------------
define EOC = 254; // End of Combo
define EOD = 255; // End of Data Segment
//-----------------------------------------------------




define Combo1 = 0;
define Combo2 = 1;
define Combo3 = 2;
define Combo4 = 3;
define Combo5 = 4;
define Combo6 = 5;
define Combo7 = 6;
define Combo8 = 7;
data(
Combo1,
2,BACK,
A,
10,
0,70,
2,UP,
FORWARD,
10,
0,20,
1,A,
10,
0,44,
2,BACK,
X,
10,
0,47,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
2,DOWN,
Y,
10,
0,200,
EOC,








Combo2,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
2,X,
A,
10,
0,200,
EOC,








Combo3,
2,BACK,
Y,
10,
0,4,
1,BACK,
10,
0,4,
2,FORWARD,
X,
10,
0,4,
1,BACK,
30,
0,4,
1,RT,
10,
0,55,
2,BACK,
A,
10,
0,75,
2,FORWARD,
UP,
10,
0,4,
1,A,
10,
0,60,
2,FORWARD,
Y,
10,
0,4,
1,A,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
1,LB,
10,
0,200,
EOC,








Combo4,
2,FORWARD,
Y,
10,
0,4,
1,A,
10,
0,4,
1,BACK,
10,
0,4,
2,FORWARD,
X,
10,
0,4,
1,BACK,
30,
0,4,
1,RT,
10,
0,55,
2,BACK,
A,
10,
0,73,
2,FORWARD,
UP,
10,
0,4,
1,A,
10,
0,60,
2,FORWARD,
Y,
10,
0,4,
1,A,
10,
0,4,
1,B,
10,
0,35,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,15,
1,LB,
10,
0,200,
EOC,








Combo5,
1,BACK,
2,
0,2,
2,FORWARD,
Y,
2,
0,2,
EOC,








Combo6,
1,DOWN,
2,
0,2,
2,BACK,
Y,
2,
0,2,
EOC,








Combo7,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,82,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
2,BACK,
Y,
10,
0,10,
1,RT,
10,
0,120,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,DOWN,
10,
0,4,
2,FORWARD,
A,
10,
0,200,
EOC,








Combo8,
2,FORWARD,
A,
2,
0,4,
1,RT,
10,
0,95,
2,BACK,
Y,
10,
0,4,
1,A,
10,
0,85,
1,A,
10,
0,4,
1,Y,
10,
0,4,
1,B,
10,
0,30,
1,A,
10,
0,10,
1,A,
10,
0,10,
1,Y,
10,
0,30,
2,UP,
Y,
10,
0,200,
EOD );
unmap 9; //PS4_RX
unmap 10; //PS4_RY
unmap 11; //PS4_LX
unmap 12; //PS4_LY
unmap 8; //PS4_L3
unmap 5; //PS4_R3
int i = -1, b, v;
int back = LEFT, forward = RIGHT;
int button_1, button_2, button_3, button_4, button_5;
int value_1, value_2, value_3, value_4, value_5;
int wait_time;
int switch;
int delay_t;
int RUMBLE_TYPE=RUMBLE_A;
int cancel;
int EndOfCombo;
int CanStart;


main {






// Determine Back and Forward
if(get_val(RIGHT)) {
back = LEFT; forward = RIGHT;
} else if(get_val(LEFT)) {
back = RIGHT; forward = LEFT;
}//----------------------------------------------






// If there is a combo to be executed
if(i >= 0 && delay_t<=0) {
// Execute the combo step-by-step
if(!combo_running(execute_step)) {
if(get_step_values()) {
if(wait_time == 0) {
combo_run(execute_step_no_wait);
} else {
combo_run(execute_step);
}
} else { // the combo finished
i = -1;
}
}




// CANCEL combos condition-----------------------------------------
if ( (abs(get_val (9)) <= 20 && abs(get_val (10)) <= 20) && (abs(get_val (11)) <= 20 && abs(get_val (12)) <= 20) ) {
i = -1;
combo_stop(execute_step);
}




// Make sure the user inputs does not interfere in the combo
set_val(Y , 0);
set_val(B , 0);
set_val(A , 0);
set_val(X , 0);
set_val(RB , 0);
set_val(RT , 0);
set_val(LB , 0);
set_val(LT , 0);
set_val(UP , 0);
set_val(DOWN , 0);
set_val(LEFT , 0);
set_val(RIGHT , 0);
set_val(MOVE_X , 0);
set_val(MOVE_Y , 0);


// if no combo execute - look for combo activation
} else {
// EDIT THIS PART OF SCRIPT for combo run ---------------------------
//////////////////////////////////////////////////////////////////////////
// Right Stick RIGHT
if (get_val (9) >= 60) { //combo Combo4
i = get_combo_index(Combo4);
}
// Right Stick LEFT
if (get_val (9) <= -60) { //combo Combo3
i = get_combo_index(Combo1);
}
// Right Stick UP
if (get_val (10) <= -60) { //Combo Combo2
i = get_combo_index(Combo2);
}
// Right Stick DOWN
if (get_val (10) >= 60) { //Combo Combo1
i = get_combo_index(Combo3);
}
// Left Stick RIGHT
if (get_val (11) >= 60) { //combo Combo5
i = get_combo_index(Combo5);
}
// Left Stick LEFT
if (get_val (11) <= -60) { //combo Combo6
i = get_combo_index(Combo6);
}
// Left Stick UP
if (get_val (12) <= -60) { //Combo Combo7
i = get_combo_index(Combo8);
}
// Left Stick DOWN
if (get_val (12) >= 60) { //Combo Combo8
i = get_combo_index(Combo7);
}
// end editing here --------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////
}// <combo activation> end
}//<main> block end


// This combo will run a step with wait
combo execute_step {
set_buttons_values();
wait(wait_time);
set_buttons_values();
}


// This combo will run a step without wait
combo execute_step_no_wait {
set_buttons_values();
}




combo RUMBLE_NOTIFICATION {
set_rumble(RUMBLE_TYPE, 100);
wait(300);
reset_rumble ();
}


// Returns the starting index of a combo
function get_combo_index(combo_id) {
i = 0;
while(TRUE) {//-----------------------
v = dbyte(i);
if(v == combo_id) {
return(i + 1);
} else {//====================
while(v != EOC && v != EOD) {//#
i = i + 1;
v = dbyte(i);
}//#
if(v == EOD) break;
else i = i + 1;
}//=============================
}//-----------------------------------
return(-1);
}


// Set the buttons, values and wait time of a step
function get_step_values() {
b = dbyte(i); i = i + 1;
if(b > 5) return(FALSE);


if(b >= 1) {
button_1 = convert_back_forward(dbyte(i)); i = i + 1;
value_1 = 100;
} else { button_1 = -1; value_1 = 0; }


if(b >= 2) {
button_2 = convert_back_forward(dbyte(i)); i = i + 1;
value_2 = 100;
} else { button_2 = -1; value_2 = 0; }


if(b >= 3) {
button_3 = convert_back_forward(dbyte(i)); i = i + 1;
value_3 = 100;
} else { button_3 = -1; value_3 = 0; }


if(b >= 4) {
button_4 = convert_back_forward(dbyte(i)); i = i + 1;
value_4 = 100;
} else { button_4 = -1; value_4 = 0; }


if(b >= 5) {
button_5 = convert_back_forward(dbyte(i)); i = i + 1;
value_5 = 100;
} else { button_5 = -1; value_5 = 0; }


wait_time = dbyte(i); i = i + 1;
wait_time = (wait_time - 1) * 10;
if(wait_time < 0) wait_time = 0;
else if(wait_time > 2530) wait_time = 2530;


return(TRUE);
}


// If the step has FORWARD and BACK buttons, set the correct value.
function convert_back_forward(button) {
if(button == FORWARD) {
return(forward);
} else if(button == BACK) {
return(back);
}
return(button);
}


// Set the buttons and values, function used on the combos.
function set_buttons_values() {
if(button_1 != -1) set_val(button_1, value_1);
if(button_2 != -1) set_val(button_2, value_2);
if(button_3 != -1) set_val(button_3, value_3);
if(button_4 != -1) set_val(button_4, value_4);
if(button_5 != -1) set_val(button_5, value_5);
}

Opaque
2nd August 17, 16:47
BlackAdam rightstick right drops after dive kick and leftstick up drops before dive kick