PDA

View Full Version : My first script release: Zantanna Injustice



swa2776
3rd July 16, 13:20
Ok now combos work in both directions



define BACK_PUNCH = 17; // BACK_PUNCHANGLE, Y
define BACK_KICK = 18; // CIRCLE, B
define FRONT_KICK = 19; // CROSS, A
define FRONT_PUNCH = 20; // SQUARE, X
define R1 = 3; // R1, RB
define R2 = 4; // R2, RT
define THROW = 6; // L1, LB
define L2 = 7; // L2, LT
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.
// 253 Combo Name
define EOC = 254; // End of Combo
define EOD = 255; // End of Data Segment

define Combo_1 =0;
define Combo_2 =1;
define Combo_3 =2;
define Combo_4 =3;
define Combo_5 =4;
define Combo_6 =5;
define Combo_7 =6;
define Combo_8 =7;
define Fatality_1 =8;
define Fatality_2 =9;
data(
Combo_1,
1,FRONT_PUNCH,100,
4,
0,4,
1,FRONT_PUNCH,100,
4,
0,4,
1,BACK_PUNCH,100,
4,
0,13,
1,BACK,100,
4,
0,4,
2,FORWARD,100,
FRONT_PUNCH,100,
4,
0,35,
1,R2,100,
4,
0,195,
2,UP,100,
FORWARD,100,
4,
0,10,
1,FRONT_KICK,100,
4,
0,97,
1,FRONT_PUNCH,100,
4,
0,4,
1,FRONT_PUNCH,100,
4,
0,4,
1,BACK_PUNCH,100,
4,
0,13,
1,BACK,100,
4,
0,4,
2,FORWARD,100,
BACK_PUNCH,100,
4,
0,200,
EOC,

Combo_2,
1,FRONT_PUNCH,100,
4,
0,4,
1,FRONT_PUNCH,100,
4,
0,4,
1,BACK_PUNCH,100,
4,
0,13,
1,BACK,100,
4,
0,4,
2,FORWARD,100,
FRONT_PUNCH,100,
4,
0,35,
1,R2,100,
4,
0,195,
2,UP,100,
FORWARD,100,
4,
0,10,
1,FRONT_KICK,100,
4,
0,90,
1,FRONT_PUNCH,100,
4,
0,8,
1,FRONT_PUNCH,100,
4,
0,8,
1,BACK_PUNCH,100,
4,
0,13,
1,BACK,100,
4,
0,8,
2,FORWARD,100,
FRONT_KICK,100,
4,
0,200,
EOC,

Combo_3,
2,BACK,100,
FRONT_PUNCH,100,
4,
0,4,
1,BACK,100,
4,
0,4,
2,FORWARD,100,
FRONT_PUNCH,100,
4,
0,35,
1,R2,100,
4,
0,195,
2,UP,100,
FORWARD,100,
4,
0,8,
1,FRONT_KICK,100,
4,
0,90,
1,FRONT_PUNCH,100,
4,
0,4,
1,FRONT_PUNCH,100,
4,
0,4,
1,BACK_PUNCH,100,
4,
0,13,
1,BACK,100,
4,
0,4,
2,FORWARD,100,
BACK_PUNCH,100,
4,
0,200,
EOC,
Combo_4,
2,BACK,100,
FRONT_PUNCH,100,
4,
0,4,
1,BACK,100,
4,
0,4,
2,FORWARD,100,
FRONT_PUNCH,100,
4,
0,35,
1,R2,100,
4,
0,195,
2,UP,100,
FORWARD,100,
4,
0,8,
1,FRONT_KICK,100,
4,
0,10,
1,DOWN,100,
4,
0,4,
2,BACK,100,
FRONT_KICK,100,
4,
0,200,
EOC,
EOD );

unmap PS4_L3;
unmap PS4_LY;
unmap PS4_LX;

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 cancel;
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-----------------------------------------
// RS X and Y are in rest - cancel the combo
if(cancel==1){
if ( (abs(get_val (9)) <= 20 && abs(get_val (10)) <= 20) ) {
i = -1;
combo_stop(execute_step);
}
}else if(cancel==2){
if ( (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(BACK_PUNCH, 0);
set_val(BACK_KICK, 0);
set_val(FRONT_KICK, 0);
set_val(FRONT_PUNCH, 0);
set_val(R1, 0);
set_val(R2, 0);
set_val(THROW, 0);
set_val(L2, 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);
} else {
// EDIT THIS PART OF SCRIPT for combo run ---------------------------
//////////////////////////////////////////////////////////////////////////
// RS RIGHT
if (get_val (9) >= 60) { //Combo 1
cancel=1;
i = get_combo_index(Combo_1);
}
// RS LEFT
if (get_val (9) <= -60) { //Combo 2
cancel=1;
i = get_combo_index(Combo_2);
}
// RS UP
if (get_val (10) <= -60) { //Combo 3
cancel=1;
i = get_combo_index(Combo_3);
}
// RS DOWN
if (get_val (10) >= 60) { //Combo 4
cancel=1;
i = get_combo_index(Combo_4);
}
// LS UP
if (get_val (12)<= -60) { //Combo 5
cancel=2;
i = get_combo_index(Combo_5);
}
// LS RIGHT
if (get_val (11)>= 60) { //Combo 5.5
cancel=2;
i = get_combo_index(Combo_8);
}
// LS DOWN
if (get_val (12) >= 60) { //Combo 6
cancel=2;
i = get_combo_index(Combo_7);
}
//LS LEFT
if (get_val (11)<= -60) { //Combo 4
cancel=2;
i = get_combo_index(Combo_6);
}
// LEFT Stick Pressed
if (get_val (5)) { //Fatality Eye Squish
cancel=3;
i = get_combo_index(Fatality_1);
}
// RIGHT Stick Pressed
if (get_val (8)) { //Fatality Pole
cancel=3;
i = get_combo_index(Fatality_2);
}
// end editing here --------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////
}
}

// 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();
}



// 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 = dbyte(i); i = i + 1;
} else { button_1 = -1; value_1 = 0; }

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

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

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

if(b >= 5) {
button_5 = convert_back_forward(dbyte(i)); i = i + 1;
value_5 = dbyte(i); i = i + 1;
} 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);
}

Zo8663
3rd July 16, 13:30
nice work dude,but they only work on left side

swa2776
3rd July 16, 13:37
Yeah sorry, I don't know how to make it work from both sides, but if anyone can do it feel free to edit this

falconpunch323
3rd July 16, 18:47
Nice work i will post my new injustice stuff tonight and i can set it up to switch for you

Eddie
3rd July 16, 18:55
Yeah sorry, I don't know how to make it work from both sides, but if anyone can do it feel free to edit this

guy at the beginning of your script you get the reference of the forward and backward
Just swap right and left in combos.

if(get_val(11) < -20 || get_val(15)){
FORWARD = 15; BACK = 16;
}else if(get_val(11) >20 || get_val(16)){
FORWARD = 16; BACK = 15;
}

swa2776
3rd July 16, 19:17
oh ok thanks Eddie & Falcon