PDA

View Full Version : Nash



Solo.
4th March 16, 22:45
Standard Nash script, no fancy L2 integration or anything like that, i just really don't like this game that much it's not that good.

The script's quality is not that great either,just a 5/10 for me but there is not much in this section so it's better than nothing.

It's all binded to the analog sticks, you can see for yourself in training what they do.

define BACK_PUNCH = 17; // TRIANGLE, 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 Critical_Art =4;
define Sonic_Boom =5;
define EXTA =6;
define Standard_TA =7;
define EXMS =8;
data(
Standard_TA,
1,FORWARD,100,
2,
0,2,
1,DOWN,100,
2,
1,FORWARD,100,
4,
0,2,
1,BACK_PUNCH,100,
4,
0,50,
EOC,
Sonic_Boom,
1,DOWN,100,
2,
2,DOWN,100,
FORWARD,100,
2,
2,FORWARD,100,
FRONT_PUNCH,100,
4,
0,27,
EOC,
EXTA,
1,FORWARD,100,
2,
0,2,
1,DOWN,100,
2,
1,FORWARD,100,
4,
0,2,
2,BACK_PUNCH,100,
FRONT_PUNCH,100,
4,
0,50,
EOC,
Critical_Art,
1,DOWN,100,
2,
2,DOWN,100,
BACK,100,
2,
1,BACK,100,
2,
1,DOWN,100,
2,
2,DOWN,100,
BACK,100,
2,
2,BACK,100,
FRONT_PUNCH,100,
4,
0,50,
EOC,
Combo_1,
2,DOWN,100,
BACK_PUNCH,100,
4,
0,50,
1,BACK_PUNCH,100,
4,
0,5,
1,DOWN,100,
2,
2,DOWN,100,
FORWARD,100,
2,
2,FORWARD,100,
FRONT_PUNCH,100,
4,
0,40,
3,FORWARD,100,
R2,100,
R1,100,
4,
0,65,
1,R1,100,
4,
0,45,
2,DOWN,100,
R1,100,
4,
0,60,
1,BACK_PUNCH,100,
4,
0,5,
1,DOWN,100,
2,
2,DOWN,100,
FORWARD,100,
2,
2,FORWARD,100,
R2,100,
4,
0,100,
EOC,
Combo_3,
1,DOWN,100,
2,
2,DOWN,100,
FORWARD,100,
2,
2,FORWARD,100,
R2,100,
4,
0,100,
1,FRONT_PUNCH,100,
4,
0,7,
1,BACK_PUNCH,100,
4,
0,5,
1,DOWN,100,
2,
2,DOWN,100,
BACK,100,
2,
1,BACK,100,
2,
1,DOWN,100,
2,
2,DOWN,100,
BACK,100,
2,
2,BACK,100,
FRONT_PUNCH,100,
4,
0,15,
1,DOWN,100,
2,
2,DOWN,100,
BACK,100,
2,
2,BACK,100,
FRONT_KICK,100,
2,
3,BACK,0,
FRONT_KICK,100,
BACK_KICK,100,
4,
0,100,
EOC,
Combo_4,
3,FORWARD,100,
R2,100,
R1,100,
4,
0,58,
1,R1,100,
4,
0,50,
2,DOWN,100,
R1,100,
4,
0,10,
1,DOWN,100,
2,
2,DOWN,100,
FORWARD,100,
2,
1,FORWARD,100,
2,
1,DOWN,100,
2,
2,DOWN,100,
FORWARD,100,
2,
2,FORWARD,100,
FRONT_PUNCH,100,
4,
0,100,
EOC,
Combo_2,
1,FRONT_PUNCH,100,
4,
0,10,
1,BACK_PUNCH,100,
4,
0,2,
1,DOWN,100,
2,
2,DOWN,100,
BACK,100,
2,
1,BACK,100,
2,
1,DOWN,100,
2,
2,DOWN,100,
BACK,100,
2,
2,BACK,100,
FRONT_KICK,100,
10,
0,100,
EOC,
EOD );




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;
unmap PS4_L3;
unmap PS4_LY;
unmap PS4_LX;

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) { //Long Range HP combo.
cancel=1;
i = get_combo_index(Combo_1);
}
// RS LEFT
if (get_val (9) <= -60) { //Punisher.
cancel=1;
i = get_combo_index(Combo_2);
}
// RS UP
if (get_val (10) <= -60) { //Long Range Unique Skill Combo.
cancel=1;
i = get_combo_index(Combo_3);
}
// RS DOWN
if (get_val (10) >= 40) { //V-Skill Combo.
cancel=1;
i = get_combo_index(Combo_4);
}
if (get_val(PS4_L2)) { //CA
cancel=0;
i = get_combo_index(Critical_Art);
}
if (get_val (12)<= -60) { //Standard Sonic Boom.
cancel=2;
i = get_combo_index(Sonic_Boom);
}
// LS RIGHT
if (get_val (11)>= 60) { //EX-Tragedy Assault.
cancel=2;
i = get_combo_index(EXTA);
}
// LS LEFT
if (get_val (11)<= -60) { //Standard Tragedy Assault
cancel=2;
i = get_combo_index(Standard_TA);
}

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

EvilRyu
5th March 16, 11:44
I'm a big fan of SF and i appreciate your work

serdi
5th March 16, 14:24
thanks Solo, wish you could like the game more so we could see more good stuff like you did with mkx.