PDA

View Full Version : Ryu AE 3.5 -- New Combos into CA, based off Falconpunch323 original



hiddindragon08
20th April 18, 00:00
Hey what's up guys, I'm a really novice script junkie but have gone through and attempted to learn a bit and redo some of the older scripts to meet my needs. Currently I have a script for Ryu AE that has been working really solidly.
It's based off the original FALCONPUNCH script but I've gotten rid of a few things, updated for better modern combos and custom tailored it for my own use. Feel free to use/modify and do whatever. I don't like using the touchpad so I've disabled it within the script and simply altered combos to mirror based on what side I'm on. I have a very weird layout since I'm coming from stick/arcade pad to dualshock so this isn't going to be normal button layout but you can customize it easy enough by replacing corresponding buttons with your own.

I'm still working on more combos, upcoming I'm going to build combos for EX tatsu into EX DP in corners, donkey kick as well as a reset combo that I really love doing in game but haven't a clue how to build it in gpc yet. I've got a basic understanding of the gpc like 2, FORWARD, 100 = wait 20millisec? press forward --- but when it goes into separate lines with 2,0,2 and whatever i've no clue what the zero is and all that. haha OK SO:

I do a lot of manual inputs for meaty timings and will use b HK manually, and learn the timing to link the Lk, L TATSU CA based on the side.. if that makes sense. This gives you a lot of versatility in game to manually input starters, and link into LK tatsu CA finisher if you want. If you get a HK cc, you can HK yourself and then use the LK tatsu ca combo. So that's why its just the linking end finisher rather than a full start to finish combo.

LP = r1
Lk = l1
MP = square
HP = triangle
MK = X
HK = O

R2 (trigger) = mDP if opponent is on right
L2 (trigger) = mDP if opponent is on left

Rstick up = Throw
Rstick Down =EX hands / Vtrigger / Vreversal
Rstick LEFT = c LP, c LK, L Tatsu CA (opponent on left side)
Rstick RIGHT = c LP, c LK, L Tatsu CA (opponent on right side)

Lstick UP = LK, L Tatsu CA (opponent on left side)
Lstick DOWN = LK, L Tatsu CA (opponent on right side)
Lstick LEFT = f HP, c HP, DP, CA (opponent on left side)
Lstick RIGHT = f HP, c HP, DP, CA (opponent on left side)

//Posted by falconpunch323, edited by a noob member of the community in the CronusMAX Forums - http://cronusmax.com/forums

//Posted : Sunday 25th of February, 2018 8:53 UTC


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

// 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 Combos
//--------------------------------------
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 Fatality1 =8; //
define Fatality2 =9; //
//--------------------------------------

//Define Combo Adjusters
//--------------------------------------
define L1_PRESS =11; //
define L2_PRESS =12; //
define R1_PRESS =13; //
define R2_PRESS =14; //
//--------------------------------------

// Combo Data
//--------------------------------------




combo T2 { //Throw ,//
wait(10);
set_val(PS4_R1, 100);
set_val(PS4_L1, 100);
wait(50);
set_val(PS4_R1, 0);
set_val(PS4_L1, 0);
wait(20);
set_val(PS4_R1, 100);
set_val(PS4_L1, 100);
wait(50);
set_val(PS4_R1, 0);
set_val(PS4_L1, 0);
wait(10);
}


combo T1 { //V-reversal, EX hands, Vtrigger ,//
wait(10);
set_val(PS4_SQUARE, 100);
set_val(PS4_TRIANGLE, 100);
set_val(PS4_CIRCLE, 100);
wait(50);
set_val(PS4_SQUARE, 0);
set_val(PS4_TRIANGLE, 0);
set_val(PS4_CIRCLE, 0);
wait(20);
set_val(PS4_SQUARE, 100);
set_val(PS4_TRIANGLE, 100);
set_val(PS4_CIRCLE, 100);
wait(50);
set_val(PS4_SQUARE, 0);
set_val(PS4_TRIANGLE, 0);
set_val(PS4_CIRCLE, 0);
wait(10);
}




data(

R2_PRESS,//c LP, c LK, L tatsu into CA ,//
2,BACK,100,
L1,100,
4,0,10,
1,DOWN,100,
2,
2,DOWN,100,
BACK,100,
2,
2,BACK,100,
L1,100,
4,0,65,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
FORWARD,100,
2,
0,2,
1,FORWARD,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
FORWARD,100,
2,
0,2,
1,FORWARD,100,
2,
0,2,
1,SQUARE,100,
80,
EOC,

R1_PRESS,//STANDING LK, L Tatsu CA ,//
2,FORWARD,100,
L1,100,
4,0,10,
1,DOWN,100,
2,
2,DOWN,100,
FORWARD,100,
2,
2,FORWARD,100,
L1,100,
4,0,65,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
BACK,100,
2,
0,2,
1,BACK,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
BACK,100,
2,
0,2,
1,BACK,100,
2,
0,2,
1,SQUARE,100,
80,
EOC,



L2_PRESS,

EOC,

L1_PRESS,

EOC,

Combo_1,//STANDING f HP, c HP, DP into CA TO RIGHT
2,FORWARD,100,
TRI,100,
4,0,110,
2,DOWN,100,
TRI,100,
4,0,8,
7,FORWARD,100,
4,
0,2,
2,DOWN,100,
BACK,100,
4,
0,2,
1,FORWARD,100,
4,
0,2,
1,TRI,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
FORWARD,100,
2,
0,2,
1,FORWARD,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
FORWARD,100,
2,
0,2,
1,FORWARD,100,
2,
0,2,
1,SQUARE,100,
4,
0,200,
EOC,



Combo_2,//DP TO LEFT
2,BACK,100,
R1,100,
4,0,110,
2,DOWN,100,
R1,100,
4,0,8,
7,BACK,100,
4,0,2,
2,DOWN,100,
FORWARD,100,
4,0,2,
1,BACK,100,
4,0,2,
1,R1,100,
4,0,200,
EOC,

Combo_3,// STANDING f HP, c HP, DP into CA TO LEFT
2,BACK,100,
TRI,100,
4,0,110,
2,DOWN,100,
TRI,100,
4,0,8,
7,BACK,100,
4,
0,2,
2,DOWN,100,
FORWARD,100,
4,
0,2,
1,BACK,100,
4,
0,2,
1,TRI,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
BACK,100,
2,
0,2,
1,BACK,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
BACK,100,
2,
0,2,
1,BACK,100,
2,
0,2,
1,SQUARE,100,
4,50,
EOC,

Combo_4,//CURRENTLY BEING WORKED//
1,DOWN,100,
2,
0,2,
2,DOWN,100,
BACK,100,
2,
0,2,
1,BACK,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
BACK,100,
2,
0,2,
1,BACK,100,
2,
0,2,
1,SQUARE,100,
4,
EOC,

Combo_5,//CURRENTLY BEING WORKED//
1,BACK,100
1,R1,L1,100
4,
EOC,

Combo_6,//DP JUMP IN LEFT//
1,BACK,100,
4,
2,DOWN,100,
FORWARD,100,
4,
2,BACK,100,
SQUARE,100,
4,0,10,
EOC,

Combo_7,//c LP, c LK, L Tatsu into CA //
2,DOWN,100,
L1,100,
4,0,25,
2,DOWN,100,
R1,100,
4,0,10,
1,DOWN,100,
2,
2,DOWN,100,
FORWARD,100,
2,
2,FORWARD,100,
L1,100,
4,0,60,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
BACK,100,
2,
0,2,
1,BACK,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
BACK,100,
2,
0,2,
1,BACK,100,
2,
0,2,
1,SQUARE,100,
2,50,
EOC,

Combo_8,//CURRENTLY BEING WORKED -- RIGHT CA AT THE MOMENT//
1,DOWN,100,
2,
0,2,
2,DOWN,100,
FORWARD,100,
2,
0,2,
1,FORWARD,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
FORWARD,100,
2,
0,2,
1,FORWARD,100,
2,
0,2,
1,SQUARE,100,
4,50,
EOC,




Fatality1,// c Lk, c LP, L Tatsu CA//
2,DOWN,100,
L1,100,
4,0,25,
2,DOWN,100,
R1,100,
4,0,10,
1,DOWN,100,
2,
2,DOWN,100,
BACK,100,
2,
2,BACK,100,
L1,100,
4,0,60,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
FORWARD,100,
2,
0,2,
1,FORWARD,100,
2,
0,2,
1,DOWN,100,
2,
0,2,
2,DOWN,100,
FORWARD,100,
2,
0,2,
1,FORWARD,100,
2,
0,2,
1,SQUARE,100,
2,50,
EOC,

Fatality2,//HEAVY DP LOOP JUMP IN FROM RIGHT//
1,FORWARD,100,
4,
2,DOWN,100,
BACK,100,
4,
2,FORWARD,100,
SQUARE,100,
4,0,10,
EOC,

EOD );
//End Of Combo Data
//--------------------------------------

//Unmaps
unmap PS4_L3;
unmap PS4_LY;
unmap PS4_LX;

int i = -1, b, v;
int back = BACK, forward = FORWARD;
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 nohtyPecasreV;
int cancel;
int L2_press;
int L1_press;
int R2_press;
int R1_press;
int CanStart;
int SWITCH
main {
//Determine L2/L1 Press
//------------------------
if(get_val(PS4_TOUCHX) >= 70) {
back = BACK; forward = FORWARD;
} else if(get_val(PS4_TOUCHX) <= -70) {
back = BACK; forward = FORWARD;
}//----------------------------------------------

// Determine Back and Forward for Combos
if(get_val(PS4_TOUCHX) >= 70) {
SWITCH = TRUE;
} else if(get_val(PS4_TOUCHX) <= -70) {
SWITCH = FALSE;
}

// If there is a combo to be executed
if(i >= 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 {
//Determine combo on L1/L2 Press
if(L2_press) {
L2_press = FALSE;
i = get_combo_index(L2_PRESS);
}else if(L1_press) {
L1_press = FALSE;
i = get_combo_index(L1_PRESS);
}else if(R1_press) {
R1_press = FALSE;
i = get_combo_index(R1_PRESS);
}else if(R2_press) {
R2_press = FALSE;
i = get_combo_index(R2_PRESS);

}else{
i = -1;
}
}
}

// CANCEL combos condition-----------------------------------------
// RS X / 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(TRI, 0);
set_val(CIRCLE, 0);
set_val(CROSS, 0);
set_val(SQUARE, 0);
set_val(R1, 0);
set_val(R2, 0);
set_val(L1, 0);
set_val(L2, 0);
set_val(UP, 0);
set_val(DOWN, 0);
set_val(BACK, 0);
set_val(FORWARD, 0);
set_val(MOVE_X, 0);
set_val(MOVE_Y, 0);
} else {

// Combo Run
//--------------------------------------

// RS FORWARD
if (get_val (9) >= 60) {
cancel=1;
i = get_combo_index(Fatality1);
}
// RS BACK
if (get_val (9) <= -60) {
cancel=1;
i = get_combo_index(Combo_7);
}
// RS UP
if (get_val (10) <= -60) {
cancel=1;
i = combo_run(T2);
}
// RS DOWN
if (get_val (10) >= 60) {
cancel=1;
i = combo_run(T1);
}
// LS FORWARD
if (get_val (11)>= 30) {
cancel=2;
i = get_combo_index(Combo_1);
}
//LS BACK
if (get_val (11)<= -30) {
cancel=2;
i = get_combo_index(Combo_3);
}
// LS UP
if (get_val (12)<= -30) {
cancel=2;
i = get_combo_index(R1_PRESS);
}
// LS DOWN
if (get_val (12) >= 30) {
cancel=2;
i = get_combo_index(R2_PRESS);
}
// R2 Pressed
if (get_val (PS4_R2)) {
cancel=3;
i = get_combo_index(Fatality2);
}
// L2 Pressed
if (get_val (PS4_L2)) {
cancel=3;
i = get_combo_index(Combo_6);
}
// R3 Pressed
if (get_val (PS4_R3)) {
cancel=3;
i = combo_run(T2);
}
// End Of Combo Run
//--------------------------------------
}
}

// 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) {
L1_press=0;
L2_press=0;
R1_press=0;
R2_press=0;
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;

//Determine L1/L2 Press
if(b > 5) {
if(L2_press) {
return(FALSE);
}else if(L1_press) {
return(FALSE);
}else if(R1_press) {
return(FALSE);
}else if(R2_press) {
return(FALSE);
}else{
b = b -6;
if(b<1 || 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);
}

crunchypickle
10th August 18, 21:00
This is cool. When I got my cronus i am going to try falcon's most updated ryu that he posted but then i might copy out some combos from your script to mix things up! Thanks for contributing and posting this. I very much appreciate everyone in this community and the work they do.

As an aside, do you have any scripts that you use for other characters and would you be willing to share those? I plan to learn more about writing this so i can come up with things on my own and share them back to you guys, one of the best ways for me to learn is by having access to other good scripts though, im less of a pure book learner and more of an observer so when I see completed scripts and how things are written, it helps me better understand how this stuff works. i have never coded anything in my life and it's basically a foreign language to me but i really want to learn to work on scripts for the cronus since gaming is my huge passion.

hiddindragon08
19th August 18, 01:35
Thanks for the input. I don't actually use CM anymore since the hardware support is very lacking if they update the hardware support for newer fightsticks then maybe i'd give it another go. Writing the scripts was really a long and odd process, kind of taking parts of different scripts and mashing them together to get the desired executions haha.