Abort combo?

GPC2 script programming for Titan Two. Code examples, questions, requests.

Abort combo?

Postby Sightblinder » Tue Dec 31, 2019 3:16 pm

Hi

Im wondering if there is a command to abort ongoing combo chain?

Lets say i have a whole list of commands in combo and then suddenly given the situation i need to abort it to start over.

Code: Select all
#pragma METAINFO("combo", 1, 0, "sightblinder")
#define tap_time 400
 
main {
    if (event_release(BUTTON_20) && time_active(BUTTON_20)<tap_time) combo_run(LTOP); //top left
    if (check_active(BUTTON_20,tap_time)) combo_run(LTOPHOLD);
    if (event_release(BUTTON_19) && time_active(BUTTON_19)<tap_time) combo_run(RBOTTOM); //bottom right
    if (check_active(BUTTON_19,tap_time)) combo_run(RBOTTOMHOLD);
    if (event_release(BUTTON_18) && time_active(BUTTON_18)<tap_time) combo_run(RTOP); //right top
    if (check_active(BUTTON_18,tap_time)) combo_run(RTOPHOLD);
    if (event_release(BUTTON_21) && time_active(BUTTON_21)<tap_time) combo_run(LBOTTOM); //bottom left
    if (check_active(BUTTON_21,tap_time)) combo_run(LBOTTOMHOLD);
}
    combo LTOP { //left top
        set_val(BUTTON_11, 100); //  DP down
        wait(300);
        wait(200);
        set_val(STICK_2_Y, -100); //
        wait(600);
        wait(300);
        set_val(STICK_2_Y, 100); //
        set_val(BUTTON_4, 100); //  RB
        wait(800);
        wait(200);
        set_val(BUTTON_16, 100); //  A
        wait(600);
        wait(300);
        set_val(BUTTON_10, 100); //  DP up
        wait(1000);
        wait(300);
        set_val(STICK_2_Y, -100); //
        set_val(BUTTON_5, 100); //  rt
        wait(500);
        wait(200);
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_4, 100); // RB
        wait(500);
        wait(200);
        set_val(BUTTON_15, 100); //  B
        wait(400);
        wait(200);
    }


Happy New Year!
User avatar
Sightblinder
Staff Sergeant
Staff Sergeant
 
Posts: 12
Joined: Wed Jul 31, 2019 6:56 pm

Re: Abort combo?

Postby Mad » Tue Dec 31, 2019 6:11 pm

ConsoleTuner Support Team || ConsoleTuner Discord || InputSense Discord
Mad
Major General
Major General
 
Posts: 4536
Joined: Wed May 22, 2019 5:39 am

Re: Abort combo?

Postby Sightblinder » Wed Jan 01, 2020 7:35 am

Mad wrote:https://www.consoletuner.com/wiki/index.php?id=t2:combo_stop


Thank you. I have tried to understand how this works and how to use it in my existing code but not been able to get it to work.



Code: Select all
#pragma METAINFO("abort", 1, 0, "sightblinder")
#define tap_time 400
 
main {
    if (event_release(BUTTON_20) && time_active(BUTTON_20)<tap_time) combo_run(LTOP); //top left       
    if (check_active(BUTTON_20,tap_time)) combo_run(LTOPHOLD);
    if (event_release(BUTTON_19) && time_active(BUTTON_19)<tap_time) combo_run(RBOTTOM); //bottom right
    if (check_active(BUTTON_19,tap_time)) combo_run(RBOTTOMHOLD);
    if (event_release(BUTTON_18) && time_active(BUTTON_18)<tap_time) combo_run(RTOP); //right top
    if (check_active(BUTTON_18,tap_time)) combo_run(RTOPHOLD);
    if (event_release(BUTTON_21) && time_active(BUTTON_21)<tap_time) combo_run(LBOTTOM); //bottom left
    if (check_active(BUTTON_21,tap_time)) combo_run(LBOTTOMHOLD);
}
    combo LTOP { //left top
        set_val(BUTTON_11, 100); //  DP down
        wait(300);
        wait(200);
        set_val(STICK_2_Y, -100); //
        wait(600);
        wait(300);
        set_val(STICK_2_Y, 100); //
        set_val(BUTTON_4, 100); //  RB
        wait(800);
        wait(200);
        set_val(BUTTON_16, 100); //  A
        wait(600);
        wait(300);
        //set_val(BUTTON_8, 100); //  LT
        //set_val(BUTTON_4, 100); //  RB
        //wait(300);
        //wait(500);
        set_val(BUTTON_10, 100); //  DP up
        wait(1000);
        wait(300);
        set_val(STICK_2_Y, -100); //
        set_val(BUTTON_5, 100); //  rt
        wait(500);
        wait(200);
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_4, 100); // RB
        wait(500);
        wait(200);
        set_val(BUTTON_15, 100); //  B
        wait(400);
        wait(200);
    }
    combo RTOP { //right top
        set_val(BUTTON_12, 100); //  DP left
        wait(1200);
        wait(200);
        set_val(BUTTON_15, 100); //  B
        wait(300);
        wait(200);
        set_val(STICK_2_Y, 100); //
        set_val(BUTTON_4, 100); //  RB
        wait(600);
        wait(200);
        set_val(BUTTON_15, 100); //  B
        wait(300);
        wait(200);
        set_val(BUTTON_16, 100); //  A
        wait(600);
        wait(200);
        //set_val(BUTTON_15, 100); //  B
        //wait(300);
        //wait(200);
        //set_val(BUTTON_16, 100); //  A
        //wait(600);
        //wait(200);
        set_val(STICK_2_Y, 100); //
        set_val(BUTTON_5, 100); //  rt
        wait(1200);
        wait(300);
        set_val(STICK_2_Y, -100); //
        set_val(BUTTON_5, 100); //  rt
        wait(500);
        wait(200);
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_5, 100); //  RT
        wait(500);
        wait(200);
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_4, 100); // RB
        wait(600);
        wait(200);
        set_val(BUTTON_15, 100); //  B
        wait(500);
        wait(200);       
    }
    combo LBOTTOM { //left bottom
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_17, 100); // X
        wait(500);
        wait(200);
        set_val(BUTTON_5, 100); // LT
        wait(300);
        wait(200);
    }
    combo RBOTTOM { //right bottom
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_13, 100); //  DP right
        wait(300);
        wait(200);
    }
    combo LBOTTOMHOLD { //left bottom hold
 
    }
    combo RBOTTOMHOLD { //right bottom hold
 
    }
    combo LTOPHOLD { //top left hold
        set_val(BUTTON_13, 100); //  DP right
        wait(500);
        wait(200);
        set_val(STICK_2_Y, -100); // forward
        set_val(BUTTON_5, 100); //  rt
        wait(300);
        wait(300);
    }
    combo RTOPHOLD { //top right hold
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_12, 100); //  DP left
        wait(1400);
        wait(200);
        set_val(STICK_2_Y, -100); // forward
        set_val(BUTTON_5, 100); //  rt
        wait(300);
        wait(300);
    }
User avatar
Sightblinder
Staff Sergeant
Staff Sergeant
 
Posts: 12
Joined: Wed Jul 31, 2019 6:56 pm

Re: Abort combo?

Postby Mad » Wed Jan 01, 2020 7:56 am

How do you want to stop it? with the same button?

Example:
Code: Select all
if(event_active(BUTTON)) {
    if(!some_combo) combo_run(some_combo); // if some_combo not running, run it.
    else combo_stop(some_combo); // else stop
}
ConsoleTuner Support Team || ConsoleTuner Discord || InputSense Discord
Mad
Major General
Major General
 
Posts: 4536
Joined: Wed May 22, 2019 5:39 am

Re: Abort combo?

Postby Sightblinder » Wed Jan 01, 2020 8:08 am

Mad wrote:How do you want to stop it? with the same button?

Example:
Code: Select all
if(event_active(BUTTON)) {
    if(!some_combo) combo_run(some_combo); // if some_combo not running, run it.
    else combo_stop(some_combo); // else stop
}


Yes plz.

So for example: Combo LTOP is running when i press button_20 i want to abort it with same. If i press down and hold button_20 it runns LTOPHOLD and i want that to cancel when i hold it down.

Ty for taking time to help
User avatar
Sightblinder
Staff Sergeant
Staff Sergeant
 
Posts: 12
Joined: Wed Jul 31, 2019 6:56 pm

Re: Abort combo?

Postby Mad » Wed Jan 01, 2020 8:45 am

Code: Select all
#pragma METAINFO("abort", 1, 0, "sightblinder")
#define tap_time 400
 
main {
    if (event_release(BUTTON_20) && time_active(BUTTON_20)<tap_time) {
        if(!LTOP) combo_run(LTOP);
        else combo_stop(LTOP);
    }
 
    if (check_active(BUTTON_20,tap_time)) {
        if(!LTOPHOLD) combo_run(LTOPHOLD); // if some_combo not running, run it.
        else combo_stop(LTOPHOLD); // else stop
    }
 
    if (event_release(BUTTON_19) && time_active(BUTTON_19)<tap_time) {
        if(!RBOTTOM) combo_run(RBOTTOM);
        else combo_stop(RBOTTOM);
    }
    if (check_active(BUTTON_19,tap_time)) {
        if(!RBOTTOMHOLD) combo_run(RBOTTOMHOLD);
        else combo_stop(RBOTTOMHOLD);
    }
    if (event_release(BUTTON_18) && time_active(BUTTON_18)<tap_time) {
        if(!RTOP) combo_run(RTOP);
        else combo_stop(RTOP);
    }
    if (check_active(BUTTON_18,tap_time)) {
        if(!RTOPHOLD) combo_run(RTOPHOLD);
        else combo_stop(RTOPHOLD);
    }
    if (event_release(BUTTON_21) && time_active(BUTTON_21)<tap_time) {
        if(!RTOPHOLD) combo_run(LBOTTOM);
        else combo_stop(LBOTTOM);
    }
    if (check_active(BUTTON_21,tap_time)) {
        if(!LBOTTOMHOLD) combo_run(LBOTTOMHOLD);
        else combo_stop(LBOTTOMHOLD);
    }
}
    combo LTOP { //left top
        set_val(BUTTON_11, 100); //  DP down
        wait(300);
        wait(200);
        set_val(STICK_2_Y, -100); //
        wait(600);
        wait(300);
        set_val(STICK_2_Y, 100); //
        set_val(BUTTON_4, 100); //  RB
        wait(800);
        wait(200);
        set_val(BUTTON_16, 100); //  A
        wait(600);
        wait(300);
        //set_val(BUTTON_8, 100); //  LT
        //set_val(BUTTON_4, 100); //  RB
        //wait(300);
        //wait(500);
        set_val(BUTTON_10, 100); //  DP up
        wait(1000);
        wait(300);
        set_val(STICK_2_Y, -100); //
        set_val(BUTTON_5, 100); //  rt
        wait(500);
        wait(200);
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_4, 100); // RB
        wait(500);
        wait(200);
        set_val(BUTTON_15, 100); //  B
        wait(400);
        wait(200);
    }
    combo RTOP { //right top
        set_val(BUTTON_12, 100); //  DP left
        wait(1200);
        wait(200);
        set_val(BUTTON_15, 100); //  B
        wait(300);
        wait(200);
        set_val(STICK_2_Y, 100); //
        set_val(BUTTON_4, 100); //  RB
        wait(600);
        wait(200);
        set_val(BUTTON_15, 100); //  B
        wait(300);
        wait(200);
        set_val(BUTTON_16, 100); //  A
        wait(600);
        wait(200);
        //set_val(BUTTON_15, 100); //  B
        //wait(300);
        //wait(200);
        //set_val(BUTTON_16, 100); //  A
        //wait(600);
        //wait(200);
        set_val(STICK_2_Y, 100); //
        set_val(BUTTON_5, 100); //  rt
        wait(1200);
        wait(300);
        set_val(STICK_2_Y, -100); //
        set_val(BUTTON_5, 100); //  rt
        wait(500);
        wait(200);
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_5, 100); //  RT
        wait(500);
        wait(200);
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_4, 100); // RB
        wait(600);
        wait(200);
        set_val(BUTTON_15, 100); //  B
        wait(500);
        wait(200);       
    }
    combo LBOTTOM { //left bottom
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_17, 100); // X
        wait(500);
        wait(200);
        set_val(BUTTON_5, 100); // LT
        wait(300);
        wait(200);
    }
    combo RBOTTOM { //right bottom
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_13, 100); //  DP right
        wait(300);
        wait(200);
    }
    combo LBOTTOMHOLD { //left bottom hold
 
    }
    combo RBOTTOMHOLD { //right bottom hold
 
    }
    combo LTOPHOLD { //top left hold
        set_val(BUTTON_13, 100); //  DP right
        wait(500);
        wait(200);
        set_val(STICK_2_Y, -100); // forward
        set_val(BUTTON_5, 100); //  rt
        wait(300);
        wait(300);
    }
    combo RTOPHOLD { //top right hold
        set_val(BUTTON_8, 100); // LT
        set_val(BUTTON_12, 100); //  DP left
        wait(1400);
        wait(200);
        set_val(STICK_2_Y, -100); // forward
        set_val(BUTTON_5, 100); //  rt
        wait(300);
        wait(300);
    }
 
 
ConsoleTuner Support Team || ConsoleTuner Discord || InputSense Discord
Mad
Major General
Major General
 
Posts: 4536
Joined: Wed May 22, 2019 5:39 am

Re: Abort combo?

Postby Sightblinder » Wed Jan 01, 2020 9:12 am

Wow its amazing, tyvm
User avatar
Sightblinder
Staff Sergeant
Staff Sergeant
 
Posts: 12
Joined: Wed Jul 31, 2019 6:56 pm

Re: Abort combo?

Postby Sightblinder » Sat Jan 04, 2020 9:01 pm

Mad wrote:
Code: Select all
#pragma METAINFO("abort", 1, 0, "sightblinder")
#define tap_time 400
 
main {
    if (event_release(BUTTON_20) && time_active(BUTTON_20)<tap_time) {
        if(!LTOP) combo_run(LTOP);
        else combo_stop(LTOP);
    }
 
    if (check_active(BUTTON_20,tap_time)) {
        if(!LTOPHOLD) combo_run(LTOPHOLD); // if some_combo not running, run it.
        else combo_stop(LTOPHOLD); // else stop
    }
 
    if (event_release(BUTTON_19) && time_active(BUTTON_19)<tap_time) {
        if(!RBOTTOM) combo_run(RBOTTOM);
        else combo_stop(RBOTTOM);
    }
    if (check_active(BUTTON_19,tap_time)) {
        if(!RBOTTOMHOLD) combo_run(RBOTTOMHOLD);
        else combo_stop(RBOTTOMHOLD);
    }
    if (event_release(BUTTON_18) && time_active(BUTTON_18)<tap_time) {
        if(!RTOP) combo_run(RTOP);
        else combo_stop(RTOP);
    }
    if (check_active(BUTTON_18,tap_time)) {
        if(!RTOPHOLD) combo_run(RTOPHOLD);
        else combo_stop(RTOPHOLD);
    }
    if (event_release(BUTTON_21) && time_active(BUTTON_21)<tap_time) {
        if(!RTOPHOLD) combo_run(LBOTTOM);
        else combo_stop(LBOTTOM);
    }
    if (check_active(BUTTON_21,tap_time)) {
        if(!LBOTTOMHOLD) combo_run(LBOTTOMHOLD);
        else combo_stop(LBOTTOMHOLD);
    }
}
 
 


Is there a way to make sure i dont run two combos at once? If i accidentally press another button it messes up ongoing combo.
User avatar
Sightblinder
Staff Sergeant
Staff Sergeant
 
Posts: 12
Joined: Wed Jul 31, 2019 6:56 pm

Re: Abort combo?

Postby Mad » Sat Jan 04, 2020 11:24 pm

Sightblinder wrote:Is there a way to make sure i dont run two combos at once? If i accidentally press another button it messes up ongoing combo.


Example:
Code: Select all
if (event_release(BUTTON_20) && time_active(BUTTON_20)<tap_time) {
    if(!LTOPHOLD) combo_run(LTOP); // if LTOPHOLD combo is not running, run LTOP
}
 
if (check_active(BUTTON_20,tap_time)) {
    if(!LTOP) combo_run(LTOPHOLD); // if LTOP combo is not running, run LTOPHOLD
}
ConsoleTuner Support Team || ConsoleTuner Discord || InputSense Discord
Mad
Major General
Major General
 
Posts: 4536
Joined: Wed May 22, 2019 5:39 am

Re: Abort combo?

Postby Sightblinder » Sat Jan 04, 2020 11:34 pm

Mad wrote:
Sightblinder wrote:Is there a way to make sure i dont run two combos at once? If i accidentally press another button it messes up ongoing combo.


Example:
Code: Select all
if (event_release(BUTTON_20) && time_active(BUTTON_20)<tap_time) {
    if(!LTOPHOLD) combo_run(LTOP); // if LTOPHOLD combo is not running, run LTOP
}
 
if (check_active(BUTTON_20,tap_time)) {
    if(!LTOP) combo_run(LTOPHOLD); // if LTOP combo is not running, run LTOPHOLD
}


Code: Select all
if (check_active(BUTTON_20,tap_time)) {
        if(!LTOPHOLD) combo_run(LTOPHOLD); // if some_combo not running, run it.
        else combo_stop(LTOPHOLD); // else stop
    }
 
    if (event_release(BUTTON_19) && time_active(BUTTON_19)<tap_time) {
        if(!RBOTTOM) combo_run(RBOTTOM);
        else combo_stop(RBOTTOM);


How can i make so these two wont run at the same time. LTOPHOLD and LTOP cant run at same time but RTOP and LTOP can.
User avatar
Sightblinder
Staff Sergeant
Staff Sergeant
 
Posts: 12
Joined: Wed Jul 31, 2019 6:56 pm

Next

Return to GPC2 Script Programming

Who is online

Users browsing this forum: No registered users and 162 guests