GTA/Grand Theft Auto FPS Auto Sprint and Auto Scope

This is a single-click activate/deactivate Auto Sprint and is the same Auto Sprint as my previous version posted. When activated, just push the left analog stick in the direction you want to go. The Auto Scope is activated/deactivated along with the Auto Sprint. The Auto Scope occurs when you aim your weapon to shoot. It is equivalent to pressing R3/RS/(5) when you aim. This is meant for 3rd person view and will not work for 1st person view. Only use this Auto Sprint if you use FPS control setting, not FPS2 or Standard control settings where you use R1/RB/(3) or CROSS/A/(19) to sprint.
Version1.50
AuthorJ.Guza
Publish DateWed, 3 Aug 2016 - 17:22
Last UpdateWed, 3 Aug 2016 - 17:22
Downloads576
RATE


0

1

Release Notes: As stated in my instructions, AutoScope is best deactivated while in cover. In this version, the landing gear has a activate/deactivate. See instructions on how to best use that feature when you wish to raise/lower landing gear.
Code: Select all
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[ INSTRUCTIONS ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
//When I mention script, I mean the entire GPC script. When I mention "feature(s)".                                                                                     
//I mean a small part of the GPC script that carries out a specific duty, like the   
//ones I listed just below, with a number assigned to each one. They're basically                           
//like little scripts within the GPC script that carry out that task. I will   
//highlight "features" with quotation marks so you know what I'm refering to.
 
//                                   TAGGING
//   //*  By tag/tagged/tagging, I simply mean disabled and noted as such with //*
//        usually located to the far left of the page before the "features" lines.
//        I use these "tags" in this script to disable "features" or lines that I
//        have alternative ways in place to be used, should you choose to use
//        them. If you choose to use the alternate way, you would then tag the 
//        line(s) of the part you no longer wish to use and then simply take off 
//        the tag(s) on the line(s) you wish to use. Lines that have been tagged, 
//        don't take up any byte space. If you know you won't use the feature
//        ever, thne get rid of it, it you like, but you should check to see if
//        if I have an alternate way fist, that might work better for you.
 
//  [1]-  These numbers on the right side of the script are assigned to a
//  [16]  particular "feature". If you tag these "features" or lines or remove   
//        tags from these lines, you will then know what "feature" they apply to.     
//        I gave a description of each "feature" and the numbers I assigned to 
//        them, just below. You may notice skipped numbers for "features"
//        throughout the script. This is because when I wrote up my script, I had
//        put all the "features" on one page and labeled them. I have these 
//        missing "features" in the GPC library as well under different titles.
 
//@@@@@@@@@@@@@@@@@@@@@@@@@@[ FEATURES DESCRIPTIONS ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
//-----------------------------[ SPRINT FEATURES ]---------------------------------
 
//Included are SINGLE & DOUBLE TAP R1/RB/3 and HAIR TRIGGERS.                       1
//These "features" are only running when Auto Sprint is activated and done so       1
//purposely. The SINGLE & DOUBLE TAP R1/RB/3 doesn't do anything outside of Auto    1
//Sprint, but the HAIR TRIGGERS do affect dirving.                                  1
//______________                                                                    1
//-[AUTO SPRINT]                              [AUTO SPRINT'S Activate/Deactivate]   1
//**************                                                                    1
//Activated/deactivated by one-click L3/LS(8). Once activated, you sprint in any    1   
//direction you want by pushing the left analog stick in the direction you want to  1   
//go. Works for fast swimming as well. In this "feature", I've included rumble      1     
//notifiers and LED's to distinguish when you activate & when you deactivate the    1
//"feature". Within this "feature" are two other "features" that work best along    1       
//with Auto Sprint and have very little use otherwise. Auto Sprint is meant to be   1   
//activated while on foot and deactivated while in a vehicle. If you don't          1
//deactivate it when you get into a vehicle or aircraft, horns will sound off and   1     
//landing gear will go up & down at random times. The Hair Triggers make it harder  1 
//to control the cars acceleration and braking. With Auto Sprint on, you may find   1       
//it difficult to navigate around objects, tight corners or get up stairs because   1                                   
//of the speed. You can either deactivate Auto Sprint or just aim your weapon and   1           
//point in the direction you want to go in these cases and advance with no problem. 1   
//Below I have 2 aternative ways listed along with the currently used line, which   1
//is the first one listed. Should you want to lessen the sensitivity of the 360     1
//degrees always on (when activated) Auto Sprint, you can try either of these.      1     
//You'll want to keep the + numbers + and - numbers -. You can only make the        1                                                                     
//numbers (1-100). Try them out and see what works best for you. Having higher      1
//numbers will allow you to tilt the left analog stick off center more before Auto  1   
//Sprint engages. Be aware that having higher numbers will likely affect swimming   1
//in a negative way.                                                                1                         
//                                                                                  1
//if (get_val(12) <= 100)  //<- CURRENTLY USED LINE.                                1
//*if (get_val(12) < -5 || abs(get_val(11)) > 5 ^^ abs(get_val(11)) < -5 ) {        1                                     
//*if (abs(get_val(12)) > 5 || abs(get_val(11)) > 5) {                              1
//                                                                                  1
//To reload while sprinting, you need to double-tap CIRCLE/B/(18). If standing      1
//still, you only need to press once to reload. I would suggest you to take the     1
//reload option out of the Auto Sprint "feature", if you can do without it.         1
//Leaving it in will allow you to double-tap CIRCLE/B/(18) to reload while          1 
//sprinting. However, it comes at the expense of slowing you down while sprinting   1     
//or when backing out of the snack/armor menu. Reload is slow anyways. I'd suggest  1
//you just switch weapons, which is faster than reloading. For example, I often     1
//switch in between the MG & Special Carbine Rifle. The line below, which is in     1
//the script, is the one you would remove. Located in 1st section of AUTO SPRINT.   1
//                                                                                  1                                                                                  1
// if (get_val(7) || get_val(4) || get_val(18)) {  // *|| get_val(18)"(reload).     1
//_____________                                                                     
//-[AUTO SCOPE]                               [AUTO SPRINT'S Activate/Deactivate    1a
//*************                                                                     1a
//This is an add on that I had posted to the GPC library before, but I had too      1a
//many issues with it before and pulled it down. After almost giving up on it, I    1a
//got Auto Scope to work after tweaking it's script. The only negative of using it, 1a
//is in cover you need to deactivate Auto Sprint shorlty after going for cover.     1a
//This is so your weapon will not zoom in on one set of shots, zoom out the next    1a
//set of shots and keep alternating zooming in/out like that. Then you need to      1a
//activate Auto Sprint again when leaving cover. If for some reason the Auto Scope  1a
//doesn't zoom in or zooms out, simply press R3/RS/(5) to zoom in if you like.      1a
//______________________________
//-[SINGLE & DOUBLE TAP R1/RB/3]              [AUTO SPRINT'S Activate/Deactivate]   2
//******************************                                                    2
//____________________                                                              2
//Single Tap R1/RB/(3) is for when you press R1/RB/(3) once to take cover. It's     2
//used for when using Auto Sprint, to allow you time getting yourself into position 2
//after pressing R1/RB/(3) to take cover. This "feature" is required to take cover  2
//while using Auto Sprint or you will not be able to take cover with Auto Sprint    2
//activated. You can adjust this time in DEFINES and/or the TakeCover combo. I      2
//currently have the TakeCover time set at 6 seconds. Once the 6 seconds are up,    2
//if you move your feet via the L3/LS(8) analog, you will break/leave cover.        2
//____________________                                                              2
//DOUBLE TAP R1/RB/(3) is used to cancel/void the TakeCoverTime which temporaily    2
//stops Auto Sprint. You double tap R1/RB/(3) to allow you to immediately sprint    2     
//if you're still within the set TakeCover period of time. Otherwise you can just   2
//sprint, without the Single or Double Tap feature. I use DOUBLE TAP R1/RB/(3)when  2                                       
//I get in cover via Single Tap R1/RB/(3) and then need to leave very shortly       2
//afterwards & don't want to wait for the TakeCoverTime to expire before I sprint.  2             
//In some cases, it's best to use Double Tap to dive from the waters surface when   2
//swimming. Single Tap will get you under, but the TakeCover will stop you from     2
//moving, so Double Tap and you will go under water and keep moving full swimming   2
//speed.                                                                            2
//________________
//-[HAIR TRIGGERS]                            [AUTO SPRINT'S Activate/Deactivate]   3
//****************                                                                  3
//This "feature" allows the fastest response times on aiming & firing your weapon.  3 
//                                                                                  3
//&&&&&&&&&&&&&&&&&&&&&&&&&&[ INDEPENDANT FEATURES ]&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//_________________________________                                                 
//-[LANDING GEAR/SIRENS/KERS BOOST]                         [Activate/Deactivate]   4
//*********************************                                                 4
//This Version has LED and rumble notifiers. I set this as default. If you wish to  4             
//use [5], untag [4] and tag [5]. For the activate/deactivate I used UP/(13) and    4
//Circle/B/(18). Then press D-Pad LEFT to use. This "feature" is used to raise/     4
//lower landing gear, for sirens and the Lectro motorcyle using KERS boost. I use   4
//this "feature" primarily for the landing gear. When you jump into an aircraft     4
//with landing gear, you want to make sure the Auto Sprint is deactivated, that [4] 4         
//is activated and then press D-Pad LEFT to raise or lower the landing gear. You    4
//can use the D-Pad LEFT to shut off sirens as well as for KERS Boost as I          4       
//mentioned. The reason why you have to use D-Pad LEFT is, the normal way of        4               
//L3/LS/(8) pressing will not work and it will activate Auto Sprint causing the     4       
//landing gear to go up and down, with you having no control of what position the   4
//gear ends up being.                                                               4
//_________________________________
//-[LANDING GEAR/SIRENS/KERS BOOST]                                   [Always On]   5
//*********************************                                                 5
//The advantage of this default version is that you don't have to mess with an      5
//activate/deactivate. The disadvatage is, when left always on and you bring up     5
//your phone or TOUCH/P4/(27) menu, the horn sounds when you use the D-Pad LEFT.    5
//________________
//-[TURBO CROSS/A]                                                    [Always On]   7
//****************                                                                  7
//Can be used to Auto Sprint with Standard conrol settings, but not for FPS or      7
//FPS2 controller settings. I still use this with FPS settings as a quick way to    7
//to buy ammunition, snacks, armor, and more. Do so by just holding down on         7
//CROSS/A/(19).                                                                     7
//_____________                                             
//-[TURBO JUMP]                                                       [Always On]   8
//*************                                                                     8
//By holding down on SQUARE/X/(20), it allows you to jump repeatedly without        8
//doing repetitive button presses. I find this useful when wearing armored          8
//outfits, as it's the fastest way to move while wearing armored outfits. Turbo     8
//Jump also works great when jumping inside of buildings, in tunnels, up steep      8
//inclines and on land in certain areas that normally are bogged down. In those     8
//cases Turbo Jump would be faster than trying to sprint. I've done a number of     8
//tests in said situations and found that having Auto Sprint on/off while Turbo     8
//Jumping, made no difference in the times posted. So Turbo Sprint does not slow    8
//you down or speed you up when using with Turbo Jump.                              8
 
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[ DEFINES ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
//DEFINE (0) | PS4_PS | PS3_PS | XB1_XBOX | XB360_XBOX                 
//DEFINE (1) | PS4_SHARE | PS3_SELECT | XB1_VIEW | XB360_BACK                     [AUTO SPRINT] ...1.... [AUTO SPRINT'S Activate/Deactivate]
//DEFINE (2) | PS4_OPTIONS | PS3_START | XB1_MENU | XB360_STAR                     [AUTO SCOPE] ...1a... [AUTO SPRINT'S Activate/Deactivate]
//DEFINE (3) | PS4_R1 | PS3_R1 | XB1_RB | XB360_RB              [SINGLE & DOUBLE TAP R1/RB/(3)] ...2.... [AUTO SPRINT'S Activate/Deactivate]               
//DEFINE (4) | PS4_R2 | PS3_R2 | XB1_RT | XB360_RT                              [HAIR TRIGGERS] ...3.... [AUTO SPRINT'S Activate/Deactivate]
//DEFINE (5) | PS4_R3 | PS3_R3 | XB1_RS | XB360_RS             [LANDING GEAR/SIRENS/KERS BOOST] ...4.... [Activate/Deactivate]                             
//DEFINE (6) | PS4_L1 | PS3_L1 | XB1_LB | XB360_LB             [LANDING GEAR/SIRENS/KERS BOOST] ...5.... [Always On]             
//DEFINE (7) | PS4_L2 | PS3_L2 | XB1_LT | XB360_LT                          [D-PAD SENSITIVITY] ...6.... [Always On]   
//DEFINE (8) | PS4_L3 | PS3_L3 | XB1_LS | XB360_LS                              [TURBO CROSS/A] ...7.... [Always On]   
//DEFINE (9) | PS4_RX | PS3_RX | XB1_RX | XB360_RX                                 [TURBO JUMP] ...8.... [Always On]
//DEFINE (10)| PS4_RY | PS3_RY | XB1_RY | XB360_RY                          [CLOSE APPLICATION] ...9.... [Activate Only]   
//DEFINE (11)| PS4_LX | PS3_LX | XB1_LX | XB360_LX                [QUICK ONLINE PUBLIC SESSION] ...10... [Activate Only]
//DEFINE (12)| PS4_LY | PS3_LY | XB1_LY | XB360_LY           [QUICK ONLINE INVITE ONLY SESSION] ...10+.. [Activate Only]       
//DEFINE (13)| PS4_UP | PS3_UP | XB1_UP | XB360_UP                 [THIRD VIEW AIM SENSITIVITY] ...11... [Activate Only]             
//DEFINE (14)| PS4_DOWN | PS3_DOWN | XB1_DOWN | XB360_DOWN                     [COMMIT SUICIDE] ...12... [Activate Only]
//DEFINE (15)| PS4_LEFT | PS3_LEFT | XB1_LEFT | XB360_LEFT                             [SNACKS] ...13... [Activate Only] 
//DEFINE (16)| PS4_RIGHT | PS3_RIGHT | XB1_RIGHT | XB360_RIGHT                          [ARMOR] ...14... [Activate Only]
//DEFINE (17)| PS4_TRIANGLE | PS3_TRIANGLE | XB1_Y | XB360_Y                     [PASSIVE MODE] ...15... [Activate Only]
//DEFINE (18)| PS4_CIRCLE | PS3_CIRCLE | XB1_B | XB360_B                       [VEHICLE ACCESS] ...16... [Activate Only]
//DEFINE (19)| PS4_CROSS | PS3_CROSS | XB1_A | XB360_A               
//DEFINE (20)| PS4_SQUARE | PS3_SQUARE | XB1_X | XB360_X                                             
//DEFINE (27)| PS4_TOUCH | XB1_P4                                                                                       
 
   //Defines must go at the top of the page.                     
    define TakeCoverTime    = 4000//You can adjust for taking cover.        //2 
                                     //Here and in TakeCover combo.
 
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[ INT's ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
   //Int's must go below the defines, but above the init's.   
    int AutoSprintOnOff;                                                       //1 
    int Button_Timing;                                                         //2
    int Button_State             = 0;                                          //2
    int Double_Tap_Gap           = 200;     //Gap in between taps. Changeable. //2 
    int activateLandingGear      = FALSE;                                      //4
    int Button_Timing1;                                                        //4
    int Button_State1            = 0;                                          //4
    int Double_Tap_Gap1          = 200;     //Gap in between taps. Changeable. //4   
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[ INIT's ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   
 
   //Init's must go below the int's, but before the main{               
    init {AutoSprintOnOff = get_pvar(SPVAR_1, 1, 2, 1);                        //1         
    }                                                                          //1 
//---------------------------------------------------------------------------------
main{  //Main Start (Goes below init's and before the "features").
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[ FEATURES ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
   //AUTO SPRINT / RUMBLE NOTIFIERS / LED                                         
    if (event_release(8)) {                                                    //1                                                                             
    if (AutoSprintOnOff == 2) {                                                //1 
        AutoSprintOnOff = 1;                                                   //1 
        set_pvar(SPVAR_1, AutoSprintOnOff);                                    //1 
        combo_run(RumbleNotifier_2);                                           //1 
        set_led(LED_3, 0);                                                     //1 
    } else if (AutoSprintOnOff == 1) {                                         //1 
        AutoSprintOnOff = 2;                                                   //1
        set_pvar(SPVAR_1, AutoSprintOnOff);                                    //1
        combo_run(RumbleNotifier_1);                                           //1 
        set_led(LED_3, 1);                                                     //1 
        }                                                                      //1 
    }                                                                          //1 
    if (AutoSprintOnOff == 2) {                                                //1 
    if (get_val(12) <= 100){       //360 degrees Auto Sprint.                  //1 
        set_val(8, 100);                                                       //1               
    } else {                                                                   //1                                       
        set_val(8, 0);                                                         //1         
    }                              // *|| get_val(18)"(reload) option below.   //1         
    if (get_val(7) || get_val(4) || get_val(18)) {                             //1 
        set_val(8, 0);                                                         //1 
    }                                                                          //1 
   //AUTO SCOPE--------------------------------------------------------------------
    if (event_press(7)) {                                                      //1a 
        combo_run(AutoScope);                                                  //1a 
    }else if (event_release(7)) {                                              //1a 
        set_val(7, 0);                                                         //1a 
        combo_stop(AutoScope);                                                 //1a 
        }                                                                      //1a 
    if (event_press(5)) {                                                      //1a 
        set_val(5, 100);                                                       //1a 
        combo_run(OverrideZoom);                                               //1a 
    }else if (event_release(5)) {                                              //1a 
        combo_stop(OverrideZoom);                                              //1a 
    }                                                                          //1a
   //SINGLE & DOUBLE TAP R1/RB/(3)-------------------------------------------------       
    if (event_press(3)) {          //Applies to SINGLE TAP.                    //2     
        combo_run(TakeCover);                                                  //2 
    }                                                                          //2   
    if (DoubleTap(3) == TRUE) {    //Applies to DOUBLE TAP.                    //2 
        combo_stop(TakeCover);                                                 //2 
    }                                                                          //2
   //HAIR TRIGGERS-----------------------------------------------------------------     
    if (get_val(7)) {                                                          //3 
        set_val(7, 100);                                                       //3
    }                                                                          //3   
    if (get_val(4)) {                                                          //3             
        set_val(4, 100);                                                       //3
    }                                                                          //3   
//---------------------------------------------------------------------------------     
}  //Ties the entire script together. Remains here regardless of what's tagged.//1                       
   //All the included "features" only run when AUTO SPRINT is activated.
//--------------------------------------------------------------------------------- 
 
   //LANDING GEAR / SIRENS / KERS BOOST                   
   //If you use this "feature", tag the below "feature" 5.   
    if (DoubleTap(5) == TRUE) {                                                //4
        activateLandingGear  = !activateLandingGear;                           //4   
    if (activateLandingGear){                                                  //4 
            combo_run(RumbleNotifier_1);                                       //4   
            set_led(LED_2, 1);                                                 //4         
        } else {                                                               //4 
            combo_run(RumbleNotifier_2);                                       //4 
            reset_leds();                                                      //4 
        }                                                                      //4 
    }                                                                          //4                   
    if (activateLandingGear && get_val(15)) {                                  //4 
            set_val  (8, 100);                                                 //4
}                                                                              //4
   //LANDING GEAR / SIRENS / KERS BOOST--------------------------------------------                     
   //If you use this "feature", tag the above "feature" 4.
//*    if (get_val(15)) {                                                         //5     
//*        set_val(8, 100);                                                       //5 
//*}                                                                              //5
   //TURBO CROSS/A/----------------------------------------------------------------           
    if (get_val(19)) {                                                         //7 
    combo_run(TurboCrossA);                                                    //7 
}                                                                              //7 
   //TURBO JUMP--------------------------------------------------------------------
    if (get_val(20)) {                                                         //8
        combo_run(TurboJump);                                                  //8 
}                                                                              //8 
//---------------------------------------------------------------------------------   
}  //Main End (Goes after the featured scripts & before the combo's).
 
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[ COMBO'S ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
   //Combo's go after the Main End and before FUNCTIONS.
 
combo RumbleNotifier_1 {     //Notifies you when the "feature" is turned on.   //1/4         
    set_rumble(RUMBLE_B, 51);                                                  //1/4
    wait(300);                                                                 //1/4
    set_rumble(RUMBLE_B, 0);                                                   //1/4   
    wait(300);                                                                 //1/4   
    set_rumble(RUMBLE_B, 51);                                                  //1/4 
    wait(400);                                                                 //1/4   
    reset_rumble();                                                            //1/4
}                                                                              //1/4
combo RumbleNotifier_2 {     //Notifies you when the "feature" is shut off.    //1/4 
    set_rumble(RUMBLE_A, 51);                                                  //1/4 
    wait(300);                                                                 //1/4
    reset_rumble();                                                            //1/4
}                                                                              //1/4 
//---------------------------------------------------------------------------------
combo AutoScope {                                                              //1a
    wait(360);                                                                 //1a
    set_val(5, 100);                                                           //1a
    wait(100);                                                                 //1a
}                                                                              //1a
combo OverrideZoom {                                                           //1a
    wait(30);                                                                  //1a
    set_val(5, 0);                                                             //1a
    wait(30);                                                                  //1a
    set_val(5, 100);                                                           //1a
}                                                                              //1a
//---------------------------------------------------------------------------------   
combo TakeCover {            //Applies to the amount of time the TakeCover     //2                                           
    set_val  (8, 0);         //runs after pressing R1/RB/(3) to Take Cover.    //2
    wait(TakeCoverTime);     //You can choose to add to or subtract from the   //2
    set_val  (8, 0);         //TakeCoverTime if you wish. You can just put     //2
    wait(2000);              //in a specific # as well. I added 2 seconds on   //2
}                            //to TakeCover here. Also can change in DEFINES.  //2
//---------------------------------------------------------------------------------
combo TurboCrossA  {                                                           //7 
    set_val(19, 100);                                                          //7
    wait(100);                                                                 //7
    set_val(19, 0);                                                            //7
    wait(100);                                                                 //7
    set_val(19, 0);                                                            //7
}                                                                              //7
//---------------------------------------------------------------------------------
combo TurboJump  {                                                             //8       
    set_val(20, 100);                                                          //8     
    wait(100);                                                                 //8     
    set_val(20, 0);                                                            //8       
    wait(100);                                                                 //8       
    set_val(20, 0);                                                            //8
}                                                                              //8
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[ FUNCTIONS ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
   //Functions must be at the bottom of the script.                                           
   //SINGLE & DOUBLE TAP R1/RB/(3)
function DoubleTap(Button) {                                                   //2
    if(Button_State == 0) {                                                    //2
           if(get_val(Button)) Button_State = 1;                               //2 
    } else if(Button_State == 1) {                                             //2 
           if(!get_val(Button)) { Button_Timing = 0; Button_State = 2; }       //2 
    } else if(Button_State == 2) {                                             //2
           if(get_val(Button)) { Button_State = 1; return TRUE; }              //2 
              Button_Timing = Button_Timing + get_rtime();                     //2
           if(Button_Timing > Double_Tap_Gap) Button_State = 0;                //2
    }                                                                          //2
}                                                                              //2
//LANDING GEAR / SIRENS / KERS BOOST-------------------------------------------- 
function DoubleTap1(Button) {                                                  //4
    if(Button_State1 == 0) {                                                   //4
           if(get_val(Button)) Button_State1 = 1;                              //4 
    } else if(Button_State1 == 1) {                                            //4 
           if(!get_val(Button)) { Button_Timing1 = 0; Button_State1 = 2; }     //4 
    } else if(Button_State1 == 2) {                                            //4
           if(get_val(Button)) { Button_State1 = 1; return TRUE; }             //4 
              Button_Timing1 = Button_Timing1 + get_rtime();                   //4
           if(Button_Timing1 > Double_Tap_Gap1) Button_State1 = 0;             //4
    }                                                                          //4
}                                                                              //4