Can't use unmapped buttons to activate rapid fire

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

Can't use unmapped buttons to activate rapid fire

Postby pigy33 » Sun Apr 25, 2021 5:39 am

So I unmapped the PS4 Share button and programmed it to activate rapid fire and unmapped the PS4_PS button and programmed it to deactivate rapid fire, however after the unmapping the problem is these buttons don't work for turning rapid fire on/off.

I tried blocking PS4 Share/PS buttons in the loop but it doesn't work all the time when I have CV/AHK Xim Link spamming the Share or PS button combined with running my looter combo.

Any help would be much appreciated, thanks!

Here is my code with the 2 buttons unmapped
The activating/deactivating of rapid fire is under "// CV Activated Combos"
To switch the to script with the 2 buttons block just add this to the start of the main loop
"block(PS4_SHARE, 4000);
block(PS4_PS, 4000);"

Code: Select all
#include <titanone.gph>
#define DELAY     30
 
unmap PS4_SHARE;
unmap PS4_PS;
 
 //Antithesis Values
define HOME          = 0;      // XB1_XBOX    XB360_XBOX   PS4_PS           PS3_PS
define SHARE         = 1;      // XB1_VIEW    XB360_BACK   PS4_SHARE        PS3_SELECT
define OPTIONS       = 2;      // XB1_MENU    XB360_START  PS4_OPTIONS      PS3_START
define SHOOT         = 4;      // XB1_RT      XB360_RT     PS4_R2           PS3_R2
// define MELEE      = 3;      // XB1_RB      XB360_RB     PS4_R1           PS3_R1
// define FLAG_RESET = 5;      // XB1_RS      XB360_RS     PS4_R3           PS3_R3
// define GRENADE    = 6;      // XB1_LB      XB360_LB     PS4_L1           PS3_L1
define ADS           = 7;      // XB1_LT      XB360_LT     PS4_L2           PS3_L2
define SPRINT        = 8;      // XB1_LS      XB360_LS     PS4_L3           PS3_L3
define RX_AXIS       = 9;      // XB1_RX      XB360_RX     PS4_RX           PS3_RX
define RY_AXIS       = 10;     // XB1_RY      XB360_RY     PS4_RY           PS3_RY
define LX_AXIS       = 11;     // XB1_LX      XB360_LX     PS4_LX           PS3_LX
define LY_AXIS       = 12;     // XB1_LY      XB360_LY     PS4_LY           PS3_LY
define DPAD_UP       = 13;     // XB1_UP      XB360_UP     PS4_UP           PS3_UP
define DPAD_DOWN     = 14;     // XB1_DOWN    XB360_DOWN   PS4_DOWN         PS3_DOWN
// define DPAD_LEFT  = 15;     // XB1_LEFT    XB360_LEFT   PS4_LEFT         PS3_LEFT
define DPAD_RIGHT    = 16;     // XB1_RIGHT   XB360_RIGHT  PS4_RIGHT        PS3_RIGHT
define WEAPON_SWAP   = 3;     // XB1_Y       XB360_Y      PS4_TRIANGLE     PS3_TRIANGLE
define CROUCH        = 18;     // XB1_B       XB360_B      PS4_CIRCLE       PS3_CIRCLE
// define JUMP       = 19;     // XB1_A       XB360_A      PS4_CROSS        PS3_CROSS
define RELOAD        = 20;     // XB1_X       XB360_X      PS4_SQUARE       PS3_SQUARE
 
define Invert_Y = 0;
define shoot_time = 888;
define rapid_time = 5000;
 
// Anti-Recoil Values
 
int Pri_Hip_H = 0;       // Primary Hip X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Pri_Hip_V = 0;       // Primary Hip Y-axis Vertical. Range of -100 to 100. Min of to get an AR effect 12 for Xim4 24
 
int Pri_ADS_H = 0;       // Primary ADS X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Pri_ADS_V = 0;       // Primary ADS Y-axis Vertical. Range of -100 to 100. Min of 12 to get an AR effect for Xim4 25
 
int Sec_Hip_H = 0;       // Special Hip X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Sec_Hip_V = 0;       // Special Hip Y-axis Vertical. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
 
int Sec_ADS_H = 0;       // Special ADS X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Sec_ADS_V = 0;       // Special ADS Y-axis Vertical. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Pri_RapidFire, Sec_RapidFire;
 
int RightStick_X = 0;
int RightStick_Y = 0;
 
int Primary = TRUE;
 
//Posted : Wednesday 27th of February, 2019 0:17 UTC 
 
int dbl_click;
int InstaToggle = TRUE;
 
main {
 
/* if (get_val(PS4_CROSS)){
    combo_run(TurboCross);
    }
 
if (get_val(PS4_DOWN)){
    set_val(PS4_CROSS, 100);
    }
 
if (!get_val(PS4_DOWN)){
    set_val(PS4_CROSS, 0);
    }
 
if (get_val(PS4_L3) && double_click(PS4_L2)) {
    InstaToggle = !InstaToggle;
    }
 
if(InstaToggle){   
    block(PS4_DOWN, 2000);
    }  */

 
// Instantly Switch Weapons
/*if(InstaToggle){
    if (get_val(PS4_LEFT)){
    block(PS4_LEFT, 4000);
    combo_run(InstaSwitch);
    }
} */

 
// Anti-Recoil
 
// Looter
if (double_click(PS4_L1)) {
    combo_run(looter);
}
 
if (event_press(PS4_R1)) {
    combo_stop(looter);
}
 
// Grenade Switch Fix is in if statement below
 
if (!get_val(PS4_R1)) {
    if (event_press(PS4_TRIANGLE)) {
        Primary = !Primary;
        }
    }
 
// Weapon Swap and Attah Change Profile fix
/*   
    if (event_press(PS4_TRIANGLE)) {
        combo_run(HoldTriangleCheck);
    }
*/

 
if(Primary){
    if (get_val(PS4_R2) && get_val(PS4_L2)){
    AntiRecoil(Pri_ADS_H, Pri_ADS_V);
    }
    else if (get_val(PS4_R2)) {
    AntiRecoil(Pri_Hip_H, Pri_Hip_V);
    }
}
 
if(!Primary){
    if (get_val(PS4_R2) && get_val(PS4_L2)){
    AntiRecoil(Sec_ADS_H, Sec_ADS_V);
    }
    else if (get_val(PS4_R2)) {
    AntiRecoil(Sec_Hip_H, Sec_Hip_V);
    }
}
 
// Rapid Fire
 
// CV Activated Combos
 
if (Primary) {
    if (event_press(PS4_SHARE)) {
        Pri_RapidFire = 1;
    }
}
 
if (Primary) {
    if (event_press(PS4_PS)) {
        Pri_RapidFire = 0;
    }
}
 
if (!Primary) {   
        if (event_press(PS4_SHARE)) {
    Sec_RapidFire = 1;
    }
}
 
if (!Primary) {   
        if (event_press(PS4_PS)) {
    Sec_RapidFire = 0;
    }
}
 
//
 
if (Primary) {
    if (event_release(PS4_DOWN) && get_val(PS4_LEFT) && time_active(PS4_LEFT) > 200) {
        Pri_RapidFire = 1;
    }
}
 
if (Primary) {
    if (event_release(PS4_DOWN) && get_val(PS4_RIGHT) && time_active(PS4_RIGHT) > 200) {
        Pri_RapidFire = 0;
    }
}
 
if (!Primary) {   
        if (event_release(PS4_DOWN) && get_val(PS4_LEFT) && time_active(PS4_LEFT) > 200) {
    Sec_RapidFire = 1;
    }
}
 
if (!Primary) {   
        if (event_release(PS4_DOWN) && get_val(PS4_RIGHT) && time_active(PS4_RIGHT) > 200) {
    Sec_RapidFire = 0;
    }
}
 
if (Primary) {   
    if (Pri_RapidFire == 1) {
        set_led(LED_1, 1);
        if (get_val(PS4_R2) && get_ptime(SHOOT)) {
        combo_run(RapidFire);
        }
    }
}
 
if (!Primary) {   
    if (Sec_RapidFire == 1) {
        set_led(LED_1, 1);
        if (get_val(PS4_R2) && get_ptime(SHOOT)) {
        combo_run(RapidFire);
        }
    }
}
 
if (Primary) {
    if    (Pri_RapidFire == 0) {
        set_led(LED_1, 0);
    }
}
 
if (!Primary) {
    if    (Sec_RapidFire == 0) {
        set_led(LED_1, 0);
    }
}
 
// Weapon Profile Switch on Swap and Attach fix
 
// if (get_val(PS4_LEFT)){
//    combo_run(SideSlide);
//    }
 
 
}       
combo TurboCross {               
set_val(PS4_CROSS, 100);
wait(50);
set_val(PS4_CROSS, 0);
}
 
//
// 2/27/2019 2:45:39 PM
// Combo generated by Combo Magick Plugin
//----------------------------------------
combo SideSlide {
    set_val(PS4_LX, -72);
    set_val(PS4_LY, -69);
    set_val(PS4_CIRCLE, 100);
    wait(110);
    set_val(PS4_LX, -71);
    set_val(PS4_LY, -69);
    set_val(PS4_CIRCLE, 0);
    }
 
/* combo InstaSwitch {
    set_val(PS4_TRIANGLE, 100);
    wait(15);
    set_val(PS4_TRIANGLE, 100);
    wait(15);
    set_val(PS4_CIRCLE, 100);
    wait(15);
    set_val(PS4_CIRCLE, 0);
    wait(100);
    } */

 
combo CLICK {
    dbl_click = TRUE;
    wait(200);            //change this value for delay between clicks
    dbl_click = FALSE;
}
 
combo RapidFire {
    set_val(PS4_R2, 100);
    wait(6);
    set_val(PS4_R2, 0);
    wait(5);
    set_val(PS4_R2, 0);
    }
 
combo HoldTriangleCheck {
    wait(225);
    if (get_val(PS4_TRIANGLE) > 50) {
        Primary = !Primary;
    }
}   
 
combo looter {
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_R1, 100);
    wait(DELAY);
    set_val(PS4_R1, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    /* Old Going from bottom on 2nd page looter
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
*/
   
}
 
function double_click(btn) {
 
    if(event_press(btn) && !dbl_click) {
        combo_run(CLICK);
        return FALSE;
    }
    if(event_press(btn) && dbl_click)
        return TRUE;
 
    return FALSE;
}
//Posted by Fadexz, a member of the community in the device Forums - http://device.com/forums
 
//Posted : Thursday 28th of February, 2019 8:55 UTC 
 
 
 
// ANTI-RECOIL
 
function AntiRecoil (AntiRecoil_H, AntiRecoil_V)
{
    //  Anti-recoil parameters
    if (get_val(SHOOT) && get_ptime(SHOOT) < shoot_time && isqrt(pow(get_val(RX_AXIS), 2) + pow(get_val(RY_AXIS), 2)) <= abs(AntiRecoil_V))
    {
        if(abs(RY_AXIS) <= abs(AntiRecoil_V))
        {
            // Horizontal anti-recoil
            RightStick_X = (get_val(RX_AXIS) + (AntiRecoil_H*(100-abs(get_val(RX_AXIS))))/100);
                set_val(RX_AXIS, RightStick_X);
 
            // Vertical anti-recoil
            if (Invert_Y) { RightStick_Y = (get_val(RY_AXIS) - (AntiRecoil_V*(100-abs(get_val(RY_AXIS))))/100); } // Y-axis invert
            else { RightStick_Y = (get_val(RY_AXIS) + (AntiRecoil_V*(100-abs(get_val(RY_AXIS))))/100); }
            if (RightStick_Y >  (AntiRecoil_V)) {RightStick_Y = (AntiRecoil_V) ;}
                set_val(RY_AXIS, RightStick_Y);
        }
    }
}
User avatar
pigy33
Sergeant First Class
Sergeant First Class
 
Posts: 25
Joined: Tue Mar 20, 2018 9:58 pm

Re: Can't use unmapped buttons to activate rapid fire

Postby UK_Wildcats » Sun Apr 25, 2021 3:06 pm

When you unmap the buttons, you are basically telling the T2 to ignore any inputs from those buttons. I believe that you should swamp (remap) the two buttons to other buttons that are not used for the controller. Then you can call out those specific buttons to use for enabling and disabling rapid fire.

For example, the PS button is BUTTON_1, so you can swap it with PADDLE_1 that is not used with the PS4. Share is BUTTON_18 that you can swap with PADDLE_2 that is not used with the PS4. Rapid enable and disable would be triggered for PADDLE_1 & PADDLE_2.

What buttons are used and not used
https://www.consoletuner.com/wiki/index.php?id=t2:gpc_language_reference

Remapper function
https://www.consoletuner.com/wiki/index.php?id=t2:remapper_swap
User avatar
UK_Wildcats
Brigadier General
Brigadier General
 
Posts: 2243
Joined: Thu Jan 08, 2015 6:53 pm

Re: Can't use unmapped buttons to activate rapid fire

Postby pigy33 » Sun Apr 25, 2021 8:06 pm

Hello, I tried your suggestion and the PADDLE_1/2 buttons don't seem to register on PS4 as my RF toggle on/off only worked when I tested this script out on my Xbox One.

Code: Select all
#include <titanone.gph>
#define DELAY     30
 
 //Antithesis Values
define HOME          = 0;      // XB1_XBOX    XB360_XBOX   PS4_PS           PS3_PS
define SHARE         = 1;      // XB1_VIEW    XB360_BACK   PS4_SHARE        PS3_SELECT
define OPTIONS       = 2;      // XB1_MENU    XB360_START  PS4_OPTIONS      PS3_START
define SHOOT         = 4;      // XB1_RT      XB360_RT     PS4_R2           PS3_R2
// define MELEE      = 3;      // XB1_RB      XB360_RB     PS4_R1           PS3_R1
// define FLAG_RESET = 5;      // XB1_RS      XB360_RS     PS4_R3           PS3_R3
// define GRENADE    = 6;      // XB1_LB      XB360_LB     PS4_L1           PS3_L1
define ADS           = 7;      // XB1_LT      XB360_LT     PS4_L2           PS3_L2
define SPRINT        = 8;      // XB1_LS      XB360_LS     PS4_L3           PS3_L3
define RX_AXIS       = 9;      // XB1_RX      XB360_RX     PS4_RX           PS3_RX
define RY_AXIS       = 10;     // XB1_RY      XB360_RY     PS4_RY           PS3_RY
define LX_AXIS       = 11;     // XB1_LX      XB360_LX     PS4_LX           PS3_LX
define LY_AXIS       = 12;     // XB1_LY      XB360_LY     PS4_LY           PS3_LY
define DPAD_UP       = 13;     // XB1_UP      XB360_UP     PS4_UP           PS3_UP
define DPAD_DOWN     = 14;     // XB1_DOWN    XB360_DOWN   PS4_DOWN         PS3_DOWN
// define DPAD_LEFT  = 15;     // XB1_LEFT    XB360_LEFT   PS4_LEFT         PS3_LEFT
define DPAD_RIGHT    = 16;     // XB1_RIGHT   XB360_RIGHT  PS4_RIGHT        PS3_RIGHT
define WEAPON_SWAP   = 3;     // XB1_Y       XB360_Y      PS4_TRIANGLE     PS3_TRIANGLE
define CROUCH        = 18;     // XB1_B       XB360_B      PS4_CIRCLE       PS3_CIRCLE
// define JUMP       = 19;     // XB1_A       XB360_A      PS4_CROSS        PS3_CROSS
define RELOAD        = 20;     // XB1_X       XB360_X      PS4_SQUARE       PS3_SQUARE
 
define Invert_Y = 0;
define shoot_time = 888;
define rapid_time = 5000;
 
// Anti-Recoil Values
 
int Pri_Hip_H = 0;       // Primary Hip X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Pri_Hip_V = 0;       // Primary Hip Y-axis Vertical. Range of -100 to 100. Min of to get an AR effect 12 for Xim4 24
 
int Pri_ADS_H = 0;       // Primary ADS X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Pri_ADS_V = 0;       // Primary ADS Y-axis Vertical. Range of -100 to 100. Min of 12 to get an AR effect for Xim4 25
 
int Sec_Hip_H = 0;       // Special Hip X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Sec_Hip_V = 0;       // Special Hip Y-axis Vertical. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
 
int Sec_ADS_H = 0;       // Special ADS X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Sec_ADS_V = 0;       // Special ADS Y-axis Vertical. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Pri_RapidFire, Sec_RapidFire;
 
int RightStick_X = 0;
int RightStick_Y = 0;
 
int Primary = TRUE;
 
//Posted : Wednesday 27th of February, 2019 0:17 UTC 
 
int dbl_click;
int InstaToggle = TRUE;
 
init {
remapper_swap(BUTTON_18, PADDLE_1);
remapper_swap(BUTTON_1, PADDLE_2);
}
 
main {
 
/* if (get_val(PS4_CROSS)){
    combo_run(TurboCross);
    }
 
if (get_val(PS4_DOWN)){
    set_val(PS4_CROSS, 100);
    }
 
if (!get_val(PS4_DOWN)){
    set_val(PS4_CROSS, 0);
    }
 
if (get_val(PS4_L3) && double_click(PS4_L2)) {
    InstaToggle = !InstaToggle;
    }
 
if(InstaToggle){   
    block(PS4_DOWN, 2000);
    }  */

 
// Instantly Switch Weapons
/*if(InstaToggle){
    if (get_val(PS4_LEFT)){
    block(PS4_LEFT, 4000);
    combo_run(InstaSwitch);
    }
} */

 
// Anti-Recoil
 
// Looter
if (double_click(PS4_L1)) {
    combo_run(looter);
}
 
if (event_press(PS4_R1)) {
    combo_stop(looter);
}
 
// Grenade Switch Fix is in if statement below
 
if (!get_val(PS4_R1)) {
    if (event_press(PS4_TRIANGLE)) {
        Primary = !Primary;
        }
    }
 
// Weapon Swap and Attah Change Profile fix
/*   
    if (event_press(PS4_TRIANGLE)) {
        combo_run(HoldTriangleCheck);
    }
*/

 
if(Primary){
    if (get_val(PS4_R2) && get_val(PS4_L2)){
    AntiRecoil(Pri_ADS_H, Pri_ADS_V);
    }
    else if (get_val(PS4_R2)) {
    AntiRecoil(Pri_Hip_H, Pri_Hip_V);
    }
}
 
if(!Primary){
    if (get_val(PS4_R2) && get_val(PS4_L2)){
    AntiRecoil(Sec_ADS_H, Sec_ADS_V);
    }
    else if (get_val(PS4_R2)) {
    AntiRecoil(Sec_Hip_H, Sec_Hip_V);
    }
}
 
// Rapid Fire
 
// CV Activated Combos
 
if (Primary) {
    if (event_press(PADDLE_1)) {
        Pri_RapidFire = 1;
    }
}
 
if (Primary) {
    if (event_press(PADDLE_2)) {
        Pri_RapidFire = 0;
    }
}
 
if (!Primary) {   
        if (event_press(PADDLE_1)) {
    Sec_RapidFire = 1;
    }
}
 
if (!Primary) {   
        if (event_press(PADDLE_2)) {
    Sec_RapidFire = 0;
    }
}
 
//
 
if (Primary) {
    if (event_release(PS4_DOWN) && get_val(PS4_LEFT) && time_active(PS4_LEFT) > 200) {
        Pri_RapidFire = 1;
    }
}
 
if (Primary) {
    if (event_release(PS4_DOWN) && get_val(PS4_RIGHT) && time_active(PS4_RIGHT) > 200) {
        Pri_RapidFire = 0;
    }
}
 
if (!Primary) {   
        if (event_release(PS4_DOWN) && get_val(PS4_LEFT) && time_active(PS4_LEFT) > 200) {
    Sec_RapidFire = 1;
    }
}
 
if (!Primary) {   
        if (event_release(PS4_DOWN) && get_val(PS4_RIGHT) && time_active(PS4_RIGHT) > 200) {
    Sec_RapidFire = 0;
    }
}
 
if (Primary) {   
    if (Pri_RapidFire == 1) {
        set_led(LED_1, 1);
        if (get_val(PS4_R2) && get_ptime(SHOOT)) {
        combo_run(RapidFire);
        }
    }
}
 
if (!Primary) {   
    if (Sec_RapidFire == 1) {
        set_led(LED_1, 1);
        if (get_val(PS4_R2) && get_ptime(SHOOT)) {
        combo_run(RapidFire);
        }
    }
}
 
if (Primary) {
    if    (Pri_RapidFire == 0) {
        set_led(LED_1, 0);
    }
}
 
if (!Primary) {
    if    (Sec_RapidFire == 0) {
        set_led(LED_1, 0);
    }
}
 
// Weapon Profile Switch on Swap and Attach fix
 
// if (get_val(PS4_LEFT)){
//    combo_run(SideSlide);
//    }
 
 
}       
combo TurboCross {               
set_val(PS4_CROSS, 100);
wait(50);
set_val(PS4_CROSS, 0);
}
 
//
// 2/27/2019 2:45:39 PM
// Combo generated by Combo Magick Plugin
//----------------------------------------
combo SideSlide {
    set_val(PS4_LX, -72);
    set_val(PS4_LY, -69);
    set_val(PS4_CIRCLE, 100);
    wait(110);
    set_val(PS4_LX, -71);
    set_val(PS4_LY, -69);
    set_val(PS4_CIRCLE, 0);
    }
 
/* combo InstaSwitch {
    set_val(PS4_TRIANGLE, 100);
    wait(15);
    set_val(PS4_TRIANGLE, 100);
    wait(15);
    set_val(PS4_CIRCLE, 100);
    wait(15);
    set_val(PS4_CIRCLE, 0);
    wait(100);
    } */

 
combo CLICK {
    dbl_click = TRUE;
    wait(200);            //change this value for delay between clicks
    dbl_click = FALSE;
}
 
combo RapidFire {
    set_val(PS4_R2, 100);
    wait(6);
    set_val(PS4_R2, 0);
    wait(5);
    set_val(PS4_R2, 0);
    }
 
combo HoldTriangleCheck {
    wait(225);
    if (get_val(PS4_TRIANGLE) > 50) {
        Primary = !Primary;
    }
}   
 
combo looter {
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_R1, 100);
    wait(DELAY);
    set_val(PS4_R1, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    /* Old Going from bottom on 2nd page looter
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
*/
   
}
 
function double_click(btn) {
 
    if(event_press(btn) && !dbl_click) {
        combo_run(CLICK);
        return FALSE;
    }
    if(event_press(btn) && dbl_click)
        return TRUE;
 
    return FALSE;
}
//Posted by Fadexz, a member of the community in the device Forums - http://device.com/forums
 
//Posted : Thursday 28th of February, 2019 8:55 UTC 
 
 
 
// ANTI-RECOIL
 
function AntiRecoil (AntiRecoil_H, AntiRecoil_V)
{
    //  Anti-recoil parameters
    if (get_val(SHOOT) && get_ptime(SHOOT) < shoot_time && isqrt(pow(get_val(RX_AXIS), 2) + pow(get_val(RY_AXIS), 2)) <= abs(AntiRecoil_V))
    {
        if(abs(RY_AXIS) <= abs(AntiRecoil_V))
        {
            // Horizontal anti-recoil
            RightStick_X = (get_val(RX_AXIS) + (AntiRecoil_H*(100-abs(get_val(RX_AXIS))))/100);
                set_val(RX_AXIS, RightStick_X);
 
            // Vertical anti-recoil
            if (Invert_Y) { RightStick_Y = (get_val(RY_AXIS) - (AntiRecoil_V*(100-abs(get_val(RY_AXIS))))/100); } // Y-axis invert
            else { RightStick_Y = (get_val(RY_AXIS) + (AntiRecoil_V*(100-abs(get_val(RY_AXIS))))/100); }
            if (RightStick_Y >  (AntiRecoil_V)) {RightStick_Y = (AntiRecoil_V) ;}
                set_val(RY_AXIS, RightStick_Y);
        }
    }
}
User avatar
pigy33
Sergeant First Class
Sergeant First Class
 
Posts: 25
Joined: Tue Mar 20, 2018 9:58 pm

Re: Can't use unmapped buttons to activate rapid fire

Postby pigy33 » Mon Apr 26, 2021 1:23 am

actually Paddle1/2 both seem to not really be extra buttons but correspond to buttons on the controller as on both the Xbox and PS4 this code makes touch pad/options as the activators/deactivators rather than the Share/PS button
User avatar
pigy33
Sergeant First Class
Sergeant First Class
 
Posts: 25
Joined: Tue Mar 20, 2018 9:58 pm

Re: Can't use unmapped buttons to activate rapid fire

Postby UK_Wildcats » Tue Apr 27, 2021 9:09 pm

The PADDLE_1 & PADDLE_2 are exclusively for the Xbox Elite Controller. I modified the code and got it working.


Code: Select all
#include <titanone.gph>
#define DELAY     30
 
 //Antithesis Values
define HOME          = 0;      // XB1_XBOX    XB360_XBOX   PS4_PS           PS3_PS
define SHARE         = 1;      // XB1_VIEW    XB360_BACK   PS4_SHARE        PS3_SELECT
define OPTIONS       = 2;      // XB1_MENU    XB360_START  PS4_OPTIONS      PS3_START
define SHOOT         = 4;      // XB1_RT      XB360_RT     PS4_R2           PS3_R2
// define MELEE      = 3;      // XB1_RB      XB360_RB     PS4_R1           PS3_R1
// define FLAG_RESET = 5;      // XB1_RS      XB360_RS     PS4_R3           PS3_R3
// define GRENADE    = 6;      // XB1_LB      XB360_LB     PS4_L1           PS3_L1
define ADS           = 7;      // XB1_LT      XB360_LT     PS4_L2           PS3_L2
define SPRINT        = 8;      // XB1_LS      XB360_LS     PS4_L3           PS3_L3
define RX_AXIS       = 9;      // XB1_RX      XB360_RX     PS4_RX           PS3_RX
define RY_AXIS       = 10;     // XB1_RY      XB360_RY     PS4_RY           PS3_RY
define LX_AXIS       = 11;     // XB1_LX      XB360_LX     PS4_LX           PS3_LX
define LY_AXIS       = 12;     // XB1_LY      XB360_LY     PS4_LY           PS3_LY
define DPAD_UP       = 13;     // XB1_UP      XB360_UP     PS4_UP           PS3_UP
define DPAD_DOWN     = 14;     // XB1_DOWN    XB360_DOWN   PS4_DOWN         PS3_DOWN
// define DPAD_LEFT  = 15;     // XB1_LEFT    XB360_LEFT   PS4_LEFT         PS3_LEFT
define DPAD_RIGHT    = 16;     // XB1_RIGHT   XB360_RIGHT  PS4_RIGHT        PS3_RIGHT
define WEAPON_SWAP   = 3;     // XB1_Y       XB360_Y      PS4_TRIANGLE     PS3_TRIANGLE
define CROUCH        = 18;     // XB1_B       XB360_B      PS4_CIRCLE       PS3_CIRCLE
// define JUMP       = 19;     // XB1_A       XB360_A      PS4_CROSS        PS3_CROSS
define RELOAD        = 20;     // XB1_X       XB360_X      PS4_SQUARE       PS3_SQUARE
 
define Invert_Y = 0;
define shoot_time = 888;
define rapid_time = 5000;
 
// Anti-Recoil Values
 
int Pri_Hip_H = 0;       // Primary Hip X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Pri_Hip_V = 0;       // Primary Hip Y-axis Vertical. Range of -100 to 100. Min of to get an AR effect 12 for Xim4 24
 
int Pri_ADS_H = 0;       // Primary ADS X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Pri_ADS_V = 0;       // Primary ADS Y-axis Vertical. Range of -100 to 100. Min of 12 to get an AR effect for Xim4 25
 
int Sec_Hip_H = 0;       // Special Hip X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Sec_Hip_V = 0;       // Special Hip Y-axis Vertical. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
 
int Sec_ADS_H = 0;       // Special ADS X-axis Horizontal. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Sec_ADS_V = 0;       // Special ADS Y-axis Vertical. Range of -100 to 100. Min of 12 to get an AR effect for Xim4
int Pri_RapidFire, Sec_RapidFire;
 
int RightStick_X = 0;
int RightStick_Y = 0;
 
int Primary = TRUE;
 
//Posted : Wednesday 27th of February, 2019 0:17 UTC 
 
int dbl_click;
int InstaToggle = TRUE;
 
uint8 RAPID_ON ;
uint8 RAPID_OFF;
 
init {
remapper_swap(BUTTON_18, PADDLE_1);
remapper_swap(BUTTON_1, PADDLE_2);
 
RAPID_ON = PADDLE_1;
RAPID_OFF = PADDLE_2;
}
 
 
main {
 
 
/* if (get_val(PS4_CROSS)){
    combo_run(TurboCross);
    }
 
if (get_val(PS4_DOWN)){
    set_val(PS4_CROSS, 100);
    }
 
if (!get_val(PS4_DOWN)){
    set_val(PS4_CROSS, 0);
    }
 
if (get_val(PS4_L3) && double_click(PS4_L2)) {
    InstaToggle = !InstaToggle;
    }
 
if(InstaToggle){   
    block(PS4_DOWN, 2000);
    }  */

 
// Instantly Switch Weapons
/*if(InstaToggle){
    if (get_val(PS4_LEFT)){
    block(PS4_LEFT, 4000);
    combo_run(InstaSwitch);
    }
} */

 
// Anti-Recoil
 
// Looter
if (double_click(PS4_L1)) {
    combo_run(looter);
}
 
if (event_press(PS4_R1)) {
    combo_stop(looter);
}
 
// Grenade Switch Fix is in if statement below
 
if (!get_val(PS4_R1)) {
    if (event_press(PS4_TRIANGLE)) {
        Primary = !Primary;
        printf("Primary is %d", Primary);
        }
    }
 
// Weapon Swap and Attah Change Profile fix
/*   
    if (event_press(PS4_TRIANGLE)) {
        combo_run(HoldTriangleCheck);
    }
*/

 
if(Primary){
    if (get_val(PS4_R2) && get_val(PS4_L2)){
    AntiRecoil(Pri_ADS_H, Pri_ADS_V);
    }
    else if (get_val(PS4_R2)) {
    AntiRecoil(Pri_Hip_H, Pri_Hip_V);
    }
}
 
if(!Primary){
    if (get_val(PS4_R2) && get_val(PS4_L2)){
    AntiRecoil(Sec_ADS_H, Sec_ADS_V);
    }
    else if (get_val(PS4_R2)) {
    AntiRecoil(Sec_Hip_H, Sec_Hip_V);
    }
}
 
// Rapid Fire
 
// CV Activated Combos
 
if (Primary) {
    if (event_active(RAPID_ON)) {
        Pri_RapidFire = 1;
        printf("Pri_Rapid Fire = 1")// For Testing
    }
}
 
if (Primary) {
    if (event_active(RAPID_OFF)) {
        Pri_RapidFire = 0;
        printf("Pri_Rapid Fire = 0")// For Testing
    }
}
 
if (!Primary) {   
        if (event_press(RAPID_ON)) {
    Sec_RapidFire = 1;
    }
}
 
if (!Primary) {   
        if (event_press(RAPID_OFF)) {
    Sec_RapidFire = 0;
    }
}
 
//
 
if (Primary) {
    if (event_release(PS4_DOWN) && get_val(PS4_LEFT) && time_active(PS4_LEFT) > 200) {
        Pri_RapidFire = 1;
    }
}
 
if (Primary) {
    if (event_release(PS4_DOWN) && get_val(PS4_RIGHT) && time_active(PS4_RIGHT) > 200) {
        Pri_RapidFire = 0;
    }
}
 
if (!Primary) {   
        if (event_release(PS4_DOWN) && get_val(PS4_LEFT) && time_active(PS4_LEFT) > 200) {
    Sec_RapidFire = 1;
    }
}
 
if (!Primary) {   
        if (event_release(PS4_DOWN) && get_val(PS4_RIGHT) && time_active(PS4_RIGHT) > 200) {
    Sec_RapidFire = 0;
    }
}
 
if (Primary) {   
    if (Pri_RapidFire == 1) {
        set_led(LED_1, 1);
        if (get_val(PS4_R2) && get_ptime(SHOOT)) {
        combo_run(RapidFire);
        }
    }
}
 
if (!Primary) {   
    if (Sec_RapidFire == 1) {
        set_led(LED_1, 1);
        if (get_val(PS4_R2) && get_ptime(SHOOT)) {
        combo_run(RapidFire);
        }
    }
}
 
if (Primary) {
    if    (Pri_RapidFire == 0) {
        set_led(LED_1, 0);
    }
}
 
if (!Primary) {
    if    (Sec_RapidFire == 0) {
        set_led(LED_1, 0);
    }
}
 
// Weapon Profile Switch on Swap and Attach fix
 
// if (get_val(PS4_LEFT)){
//    combo_run(SideSlide);
//    }
 
 
}       
combo TurboCross {               
set_val(PS4_CROSS, 100);
wait(50);
set_val(PS4_CROSS, 0);
}
 
//
// 2/27/2019 2:45:39 PM
// Combo generated by Combo Magick Plugin
//----------------------------------------
combo SideSlide {
    set_val(PS4_LX, -72);
    set_val(PS4_LY, -69);
    set_val(PS4_CIRCLE, 100);
    wait(110);
    set_val(PS4_LX, -71);
    set_val(PS4_LY, -69);
    set_val(PS4_CIRCLE, 0);
    }
 
/* combo InstaSwitch {
    set_val(PS4_TRIANGLE, 100);
    wait(15);
    set_val(PS4_TRIANGLE, 100);
    wait(15);
    set_val(PS4_CIRCLE, 100);
    wait(15);
    set_val(PS4_CIRCLE, 0);
    wait(100);
    } */

 
combo CLICK {
    dbl_click = TRUE;
    wait(200);            //change this value for delay between clicks
    dbl_click = FALSE;
}
 
combo RapidFire {
    set_val(PS4_R2, 100);
    wait(6);
    set_val(PS4_R2, 0);
    wait(5);
    set_val(PS4_R2, 0);
    }
 
combo HoldTriangleCheck {
    wait(225);
    if (get_val(PS4_TRIANGLE) > 50) {
        Primary = !Primary;
    }
}   
 
combo looter {
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_R1, 100);
    wait(DELAY);
    set_val(PS4_R1, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    /* Old Going from bottom on 2nd page looter
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_LEFT, 100);
    wait(DELAY);
    set_val(PS4_LEFT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_DOWN, 100);
    wait(DELAY);
    set_val(PS4_DOWN, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
    wait(DELAY);
    set_val(PS4_SQUARE, 100);
    wait(DELAY);
    set_val(PS4_SQUARE, 0);
    wait(DELAY);
    set_val(PS4_RIGHT, 100);
    wait(DELAY);
    set_val(PS4_RIGHT, 0);
*/
   
}
 
function double_click(btn) {
 
    if(event_press(btn) && !dbl_click) {
        combo_run(CLICK);
        return FALSE;
    }
    if(event_press(btn) && dbl_click)
        return TRUE;
 
    return FALSE;
}
//Posted by Fadexz, a member of the community in the device Forums - http://device.com/forums
 
//Posted : Thursday 28th of February, 2019 8:55 UTC 
 
 
 
// ANTI-RECOIL
 
function AntiRecoil (AntiRecoil_H, AntiRecoil_V)
{
    //  Anti-recoil parameters
    if (get_val(SHOOT) && get_ptime(SHOOT) < shoot_time && isqrt(pow(get_val(RX_AXIS), 2) + pow(get_val(RY_AXIS), 2)) <= abs(AntiRecoil_V))
    {
        if(abs(RY_AXIS) <= abs(AntiRecoil_V))
        {
            // Horizontal anti-recoil
            RightStick_X = (get_val(RX_AXIS) + (AntiRecoil_H*(100-abs(get_val(RX_AXIS))))/100);
                set_val(RX_AXIS, RightStick_X);
 
            // Vertical anti-recoil
            if (Invert_Y) { RightStick_Y = (get_val(RY_AXIS) - (AntiRecoil_V*(100-abs(get_val(RY_AXIS))))/100); } // Y-axis invert
            else { RightStick_Y = (get_val(RY_AXIS) + (AntiRecoil_V*(100-abs(get_val(RY_AXIS))))/100); }
            if (RightStick_Y >  (AntiRecoil_V)) {RightStick_Y = (AntiRecoil_V) ;}
                set_val(RY_AXIS, RightStick_Y);
        }
    }
}
User avatar
UK_Wildcats
Brigadier General
Brigadier General
 
Posts: 2243
Joined: Thu Jan 08, 2015 6:53 pm

Re: Can't use unmapped buttons to activate rapid fire

Postby pigy33 » Mon May 10, 2021 8:06 pm

Thanks it worked! ^^
User avatar
pigy33
Sergeant First Class
Sergeant First Class
 
Posts: 25
Joined: Tue Mar 20, 2018 9:58 pm


Return to GPC2 Script Programming

Who is online

Users browsing this forum: No registered users and 35 guests