Sword Art Online Fatal Bullet Switch Glitch

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

Sword Art Online Fatal Bullet Switch Glitch

Postby Fuez » Fri Sep 24, 2021 6:23 pm

https://www.youtube.com/watch?v=pOeS_NnZ5JM
I need help making a script for this frame-perfect glitch.
User avatar
Fuez
Private
Private
 
Posts: 1
Joined: Wed Sep 22, 2021 3:41 pm

Re: Sword Art Online Fatal Bullet Switch Glitch

Postby Haures » Wed Sep 29, 2021 12:03 am

Fuez wrote:https://www.youtube.com/watch?v=pOeS_NnZ5JM
I need help making a script for this frame-perfect glitch.


Hi, I saw your post and tried myself on a script.
It often works (about 1 of 3 try's) (if you stand still).
It still needs to be polished and is not yet 100% finished.

Its my second script so far, so i would like feedback.

NOTE: Its only tested in singleplayer with NPC's

Code: Select all
#pragma METAINFO("SAO Fatal Bullet Switch Glitch", 1, 01, "Haures")
 
//////////////////////////////////////////////////////////
//        Script writen by Haures 29.09.2021            //
//////////////////////////////////////////////////////////
 
       ██    ██   ██████   ██    ██  ███████   ████████  ████████
       ██    ██  ██    ██  ██    ██  ██    ██  ██        ██
       ████████  ████████  ██    ██  ███████   ██████    ████████
       ██    ██  ██    ██  ██    ██  ██    ██  ██              ██
       ██    ██  ██    ██    ████    ██    ██  ████████  ████████
 
//    TODO:    - improve Switch Glitch reliability
//            - fix Switch Glitch so it works while running
 
//    NOTE:    at the moment the Switch Glitch works often (like 1 out of 3 times) if you stand still
 
bool toggle1=FALSE;
bool toggle2=FALSE;
bool toggle3=FALSE;
bool toggle4=FALSE;
 
//LS/L3 + Y/TRIANGLE = Top Slot Switch Glitch
//LS/L3 + B/CIRCLE      = Right Slot Switch Glitch
//LS/L3 + A/CROSS      = Bottom Slot Switch Glitch
//LS/L3 + X/SQUARE      = Left Slot Switch Glitch
 
//SWITCH_1 = (Top Slot)        BUTTON_14 = Y / triangle
//SWITCH_2 = (Right Slot)    BUTTON_15 = B / circle
//SWITCH_3 = (Bottom Slot)    BUTTON_16 = A / cross
//SWITCH_4 = (Left Slot)    BUTTON_17 = X / square
 
main {
////////////////////////////////////////////////////////////
    // if (event_active(BUTTON_14) && time_release(BUTTON_14)<=200){    // when you want double tap function (in this example Y/triangle) but you must deactivate the line below maybe like i did here with // so it is a comment
    if (get_actual(BUTTON_9) && event_active(BUTTON_14)) {        //LS/L3=9 + Y/triangle=14
        toggle1 = !toggle1;                               
        if(toggle1) {                                       
            toggle2 = FALSE;                                    //toggles off SWITCH_2
            toggle3 = FALSE;                                    //toggles off SWITCH_3
            toggle4 = FALSE;                                    //toggles off SWITCH_4
            if(SWITCH_2) combo_stop(SWITCH_2);
            if(SWITCH_3) combo_stop(SWITCH_3);
            if(SWITCH_4) combo_stop(SWITCH_4);
        }
    }
    if (event_release(BUTTON_14)) toggle1 = FALSE;                 //stop repeating on release
 
    if(toggle1) {
        combo_run(SWITCH_1);
    }
/////////////////////////////////////////////////////////////
    if (get_actual(BUTTON_9) && event_active(BUTTON_15)) {        //LS/L3=9 + B/circle=15
        toggle2 = !toggle2;
        if(toggle2) {
            toggle1 = FALSE;                                    //toggles off SWITCH_1
            toggle3 = FALSE;                                    //toggles off SWITCH_3
            toggle4 = FALSE;                                    //toggles off SWITCH_4
            if(SWITCH_1) combo_stop(SWITCH_1);
            if(SWITCH_3) combo_stop(SWITCH_3);
            if(SWITCH_4) combo_stop(SWITCH_4);
        }
    }
    if (event_release(BUTTON_15)) toggle2 = FALSE;                 //stop repeating on release
 
    if(toggle2) {
        combo_run(SWITCH_2);
    }
/////////////////////////////////////////////////////////////
    if (get_actual(BUTTON_9) && event_active(BUTTON_16)) {        //LS/L3=9 + A/cross=16
        toggle3 = !toggle3;                               
        if(toggle3) {                                       
            toggle1 = FALSE;                                    //toggles off SWITCH_1
            toggle2 = FALSE;                                    //toggles off SWITCH_2
            toggle4 = FALSE;                                    //toggles off SWITCH_4
            if(SWITCH_1) combo_stop(SWITCH_1);
            if(SWITCH_2) combo_stop(SWITCH_2);
            if(SWITCH_4) combo_stop(SWITCH_4);
        }
    }
    if (event_release(BUTTON_16)) toggle3 = FALSE;                 //stop repeating on release
 
    if(toggle3) {
        combo_run(SWITCH_3);
    }
////////////////////////////////////////////////////////////
    if (get_actual(BUTTON_9) && event_active(BUTTON_17)) {        //LS/L3=9 + X/square=17
        toggle4 = !toggle4;                               
        if(toggle4) {                                       
            toggle1 = FALSE;                                    //toggles off SWITCH_1
            toggle2 = FALSE;                                    //toggles off SWITCH_2
            toggle3 = FALSE;                                    //toggles off SWITCH_3
            if(SWITCH_1) combo_stop(SWITCH_1);
            if(SWITCH_2) combo_stop(SWITCH_2);
            if(SWITCH_3) combo_stop(SWITCH_3);
        }
    }
    if (event_release(BUTTON_17)) toggle4 = FALSE;                 //stop repeating on release
 
    if(toggle4) {
        combo_run(SWITCH_4);
    }
/////////////////////////////////////////////////////////////
}
 
combo SWITCH_1 {
    set_val(BUTTON_4, 0.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_14, 0.00);
    set_val(STICK_2_X, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(5);
    set_val(BUTTON_4, 100.00);        //RB
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_14, 0.00);
    set_val(STICK_2_X, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(100);
    set_val(BUTTON_4, 100.00);        //RB
    set_val(BUTTON_13, 100.00);        //--> weapon switch
    set_val(BUTTON_14, 0.00);
    set_val(STICK_2_X, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(100);
    set_val(BUTTON_4, 100.00);        //RB
    set_val(BUTTON_13, 0.00);        //-->
    set_val(BUTTON_14, 0.00);        //Y
    set_val(STICK_2_X, 0.00);        //0 so its dead centre for the glitch        Left STICK_X = left(-100) and right(+100)
    set_val(STICK_2_Y, 0.00);        //LeftStick(-100=forward)                            Left STICK_Y = up(-100) and down (+100)           
    wait(15);
    set_val(BUTTON_4, 100.00);        //RB
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_X, 0.00);
    set_val(STICK_2_Y, -66.00);        //LeftStick
    wait(20);
    set_val(BUTTON_4, 100.00);        //RB
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_X, 0.00);
    set_val(STICK_2_Y, -100.00);    //LeftStick
    wait(15);
    set_val(BUTTON_4, 100.00);        //RB
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_X, 0.00);
    set_val(STICK_2_Y, -66.00);        //LeftStick
    wait(10);
    set_val(BUTTON_4, 100.00);        //RB
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_X, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(15);
    set_val(BUTTON_4, 100.00);        //RB
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_14, 100.00);        //Y or triangle
    set_val(STICK_2_X, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(150);
    set_val(BUTTON_4, 100.00);        //RB
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_14, 0.00);
    set_val(STICK_2_X, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(125);
    }
 
combo SWITCH_2 {
    set_val(BUTTON_4, 0.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_15, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(2);        //2
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_15, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(150);        //150
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 100.00);
    set_val(BUTTON_15, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(100);        //110
    set_val(BUTTON_4, 100.00);                //RB
    set_val(BUTTON_13, 0.00);                //-->
    set_val(BUTTON_15, 0.00);                //B
    set_val(STICK_2_Y, 0.00);                //Left Stick (-100=forward)
    wait(13);        //13
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, -66.00);
    wait(20);        //10
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, -100.00);
    wait(15);        //15
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, -66.00);
    wait(9);        //9
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(10);        //10
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_15, 0.00);
    wait(7);        //7
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_15, 100.00);
    wait(150);        //170
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_15, 0.00);
    wait(120);        //120
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_15, 0.00);
    wait(20);        //10 + 10
    set_val(BUTTON_4, 0.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_14, 0.00);
    wait(100);        //150
    }
 
combo SWITCH_3 {
    set_val(BUTTON_4, 0.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_16, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(2);        //2
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_16, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(150);        //150
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 100.00);
    set_val(BUTTON_16, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(100);        //110
    set_val(BUTTON_4, 100.00);                //RB
    set_val(BUTTON_13, 0.00);                //-->
    set_val(BUTTON_16, 0.00);                //A
    set_val(STICK_2_Y, 0.00);                //Left Stick (-100=forward)
    wait(13);        //13
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, -66.00);
    wait(20);        //10
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, -100.00);
    wait(15);        //15
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, -66.00);
    wait(9);        //9
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(10);        //10
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_16, 0.00);
    wait(7);        //7
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_16, 100.00);
    wait(150);        //170
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_16, 0.00);
    wait(120);        //120
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_16, 0.00);
    wait(20);        //10 + 10
    set_val(BUTTON_4, 0.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_16, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(150);        //167
    }
 
    combo SWITCH_4 {
    set_val(BUTTON_4, 0.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_17, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(2);        //2
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_17, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(150);        //150
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 100.00);
    set_val(BUTTON_17, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(100);        //110
    set_val(BUTTON_4, 100.00);                //RB
    set_val(BUTTON_13, 0.00);                //-->
    set_val(BUTTON_17, 0.00);                //X
    set_val(STICK_2_Y, 0.00);                //Left Stick (-100=forward)
    wait(13);        //13
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, -66.00);
    wait(20);        //10
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, -100.00);
    wait(15);        //15
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, -66.00);
    wait(9);        //9
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(10);        //10
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_17, 0.00);
    wait(7);        //7
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_17, 100.00);
    wait(150);        //170
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_17, 0.00);
    wait(120);        //120
    set_val(BUTTON_4, 100.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_17, 0.00);
    wait(20);        //10 + 10
    set_val(BUTTON_4, 0.00);
    set_val(BUTTON_13, 0.00);
    set_val(BUTTON_17, 0.00);
    set_val(STICK_2_Y, 0.00);
    wait(150);        //167
    }
//////////////////////////////////////////////////////////
//        Script writen by Haures 29.09.2021            //
//////////////////////////////////////////////////////////
Haures
Sergeant First Class
Sergeant First Class
 
Posts: 16
Joined: Thu Sep 16, 2021 2:59 pm
Location: Germany


Return to GPC2 Script Programming

Who is online

Users browsing this forum: No registered users and 70 guests