KB + XIM + Titan2 - Fortnite Combos

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

Re: KB + XIM + Titan2 - Fortnite Combos

Postby MAL8010 » Fri Jun 22, 2018 12:04 pm

krzaczu wrote:Its My firsty day with T2, Im user of apex and wanted to use bulding script for builder pro. So now I understnad few parts of it but still cant find a way how to make proper Input Translator for it. Im not supposed to change define buttons into script, right ? Only with input Translator. Could someone show me how this should looks like when u have keyboard connected to T2 with mouse into apex? Just need to see what im doing wrong with Input Controler, how should I for example bind weapons or blueprints into Input translator.
Sory for newbie questions.


Can you copy what script you're using and I'll take a look.
User avatar
MAL8010
Sergeant Major of the Army
Sergeant Major of the Army
 
Posts: 263
Joined: Sun Feb 05, 2017 3:12 pm

Re: KB + XIM + Titan2 - Fortnite Combos

Postby krzaczu » Fri Jun 22, 2018 12:12 pm

That was m firsty shot, Im just trying to understand this input trasnator binding.
If I want to have a walls on shift how should I bind it in translator?

Code: Select all
#pragma METAINFO("<Mark>", 1, 0, "FT 1 CLICK BUILD / WEAPON SLOTS")
 
#include <keyboard.gph>
#include <mouse.gph>
#include <display.gph>
#include "light_k.gph"
 
#define LB             BUTTON_7
#define RB             BUTTON_4
#define BUILD         BUTTON_15
#define AXE         BUTTON_14
#define FIRE        BUTTON_5
#define ADS         BUTTON_8
#define RELOAD        BUTTON_17
#define Double_Tac  BUTTON_12
#define Wall        (KEY_Q)
#define Stairs      (KEY_E)
#define Floor       (KEY_F)
#define Roof         (KEY_X)
#define Wpn1          (KEY_1)
#define Wpn2          (KEY_2)
#define Wpn3          (KEY_3)
#define Wpn4          (KEY_4)
#define Wpn5          (KEY_5)
#define Change_Mats (KEY_G)
#define Place_Trap    (KEY_T)
#define Reset        (KEY_V)
#define Initial_Wait                 100
#define Same_Button_Wait             40
#define Generic_Between_Button_Wait 40
#define End_Wait                     60
#define Weapon_Wait1                30 
#define Weapon_Wait2                80
 
bool InstantBuild = TRUE;
bool onoff   = TRUE;
bool in_Build_Mode = FALSE;
bool in_Combat_Mode = TRUE;
bool in_Axe_Mode = FALSE;
int8 weapon_slot = 1;
int8 wpn_slot_switch = 1;
int8 Last_Piece_Build = 0;
 
main {
 
 mouse_passthru();
    key_passthru();   
 
///------------------------------------------------------------------------------
// MODE TRACKING
 
    if(in_Build_Mode) {
    set_light('R');
    in_Combat_Mode = FALSE;   
    }
 
    if(in_Combat_Mode) {
    set_light('G');
    in_Build_Mode = FALSE;   
    }
 
    if(weapon_slot > 5) {
        weapon_slot = 1;
    }
 
    if(!in_Axe_Mode) {
        if(weapon_slot < 1) {
            weapon_slot = 5;
        }
    }
 
    if((in_Build_Mode) && (in_Axe_Mode))
        weapon_slot = 0;
 
///------------------------------------------------------------------------------
// AXE MODE COMBINATIONS
 
    if(event_release(AXE)) {
        if ((in_Combat_Mode) && (!in_Axe_Mode))  //Weapon to Axe
            in_Axe_Mode = TRUE;
        else if ((event_release(AXE)) && (in_Build_Mode) && (!in_Axe_Mode))  //Build to Axe
            in_Axe_Mode = TRUE;
        else if ((event_release(AXE)) && (in_Combat_Mode) && (in_Axe_Mode))  //Weapon to Axe to Weapon via Axe
            in_Axe_Mode = FALSE;
        else if ((event_release(AXE)) && (in_Build_Mode) && (in_Axe_Mode)) { //Weapon to Axe to Build to Axe
        weapon_slot = 1;
        wpn_slot_switch = 1;
        in_Build_Mode = FALSE;
        in_Combat_Mode = TRUE;
        }   
    }
 
///------------------------------------------------------------------------------
// RESET
 
    if (key_status(Reset)) {  //Manual tracker reset to weapon_slot = 1;
        weapon_slot = 1;
        wpn_slot_switch = 1;
        Last_Piece_Build = 0;
        in_Build_Mode = FALSE;
        in_Combat_Mode = TRUE;
        in_Axe_Mode = FALSE;
    }                                         
 
///------------------------------------------------------------------------------
// WEAPON LOAD-OUTS
 
        if(onoff){
 
            if(key_status(Wpn1)){   
                if(weapon_slot != 1)                   
                    wpn_slot_switch = 1;
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))                           
                    combo_run(GoToSlot);                                   
            }                                             
 
            if(key_status(Wpn2)){
                if(weapon_slot != 2)
                     wpn_slot_switch = 2;
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))                             
                    combo_run(GoToSlot);                                                                                               
            }                                           
 
            if(key_status(Wpn3)){
                if(weapon_slot != 3)
                     wpn_slot_switch = 3;                               
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);               
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))
                        combo_run(GoToSlot);                                                                           
            }                                           
 
            if(key_status(Wpn4)){
                if(weapon_slot != 4)
                     wpn_slot_switch = 4;
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);   
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))                       
                    combo_run(GoToSlot);                           
            }                                           
 
            if(key_status(Wpn5)){
                if(weapon_slot != 5)                   
                      wpn_slot_switch = 5;
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);   
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))                         
                        combo_run(GoToSlot);                                                                                           
            }                                           
 
        }
            set_val(Wpn1, 0);                     
            set_val(Wpn2, 0);                       
            set_val(Wpn3, 0);                     
            set_val(Wpn4, 0);                       
            set_val(Wpn5, 0);                                                 
 
 
///------------------------------------------------------------------------------
// BUILDING LOAD-OUTS
 
    if(key_status(Wall)){
        if(in_Combat_Mode){
            combo_run(BuildWall); //build the first new wall       
        }
        else
            if((in_Build_Mode) && (Last_Piece_Build != 1)){ //if last piece is not a Wall, double tap RT
                combo_run(BuildWall2);
            }
            else
                if((in_Build_Mode) && (Last_Piece_Build == 1)){ // if last piece as wall, turbo mode on
                    combo_run(BuildWall3);
                }
    }
 
    if(key_status(Floor)){
        if(in_Combat_Mode){
            combo_run(BuildFloor);         
        }
        else
            if((in_Build_Mode) && (Last_Piece_Build != 2)){
                combo_run(BuildFloor2);
            }
            else
                if((in_Build_Mode) && (Last_Piece_Build == 2)){
                    combo_run(BuildFloor3);
                }
    }
 
    if(key_status(Stairs)){
        if(in_Combat_Mode){
            combo_run(BuildStair);     
        }
        else
            if((in_Build_Mode) && (Last_Piece_Build != 3)){
                combo_run(BuildStair2);
            }
            else
                if((in_Build_Mode) && (Last_Piece_Build == 3)){
                    combo_run(BuildStair3);
                }
    }
 
 
    if(key_status(Roof)){
        if(in_Combat_Mode){
            combo_run(BuildRoof);     
        }
        else
            if((in_Build_Mode) && (Last_Piece_Build != 4)){
                combo_run(BuildRoof2);
            }
            else
                if((in_Build_Mode) && (Last_Piece_Build == 4)){
                    combo_run(BuildRoof3);
                }
    }
 
    //Turbo build using Fire
    if((in_Build_Mode) && (Last_Piece_Build > 0 ) && get_val(FIRE)){
        set_val(FIRE, 0);
        if (Last_Piece_Build == 1) combo_run (BuildWall3);
            else if (Last_Piece_Build == 2) combo_run(BuildFloor3);
                else if (Last_Piece_Build == 3) combo_run(BuildStair3);
                    else if (Last_Piece_Build == 4) combo_run(BuildRoof3);
    }
 
///------------------------------------------------------------------------------
// CHANGE MATS
 
            if(key_status(Change_Mats))    {
                if(in_Combat_Mode){
                    combo_run (ChangeMat1);}
                else if (in_Build_Mode){
                    combo_run (ChangeMat2);}
                }
 
///------------------------------------------------------------------------------
// PLACE TRAP
 
            if(key_status(Place_Trap)) {
                if(in_Combat_Mode){
                    combo_run (PlaceTrap1);}
                else if (in_Build_Mode){
                    combo_run( PlaceTrap2);}
                }
 
///------------------------------------------------------------------------------
// DOUBLE TAC
 
            if (event_release(Double_Tac)){
                combo_run (DoubleTacShotguns);
                set_val(Double_Tac, 0.0);   
            }
 
///------------------------------------------------------------------------------
// LED       
        if(!in_Axe_Mode){
        switch(weapon_slot) {
                case 0: display_overlay(_0_, 2000); break;
                case 1: display_overlay(_1_, 2000); break;
                case 2: display_overlay(_2_, 2000); break;
                case 3: display_overlay(_3_, 2000); break;
                case 4: display_overlay(_4_, 2000); break;
                case 5: display_overlay(_5_, 2000); break;
            }
        }
        if(in_Axe_Mode) {
                display_overlay(_0_, 2000);
        }
 
        if(in_Build_Mode) {
        switch(Last_Piece_Build)  {   
                case 0: display_overlay(_0_, 2000); break;
                case 1: display_overlay(_1_, 2000); break;
                case 2: display_overlay(_2_, 2000); break;
                case 3: display_overlay(_3_, 2000); break;
                case 4: display_overlay(_3_, 2000); break;
            }
        }             
 
}                                                               
 
combo GoToSlot {             
    onoff = FALSE;             
 
    if(wpn_slot_switch_steps(wpn_slot_switch, weapon_slot) >= 1 ){         
        if(wpn_slot_switch_direction(wpn_slot_switch, weapon_slot) != 0)
        set_val(RB, 100)
        else set_val(LB, 100);         
    }                                   
    wait(Weapon_Wait1);                           
    wait(Weapon_Wait2)
 
    if(wpn_slot_switch_steps(wpn_slot_switch, weapon_slot) >= 2 ){                   
        if(wpn_slot_switch_direction(wpn_slot_switch, weapon_slot) != 0)
        set_val(RB, 100);   
        else set_val(LB, 100);           
    }                                     
    wait(Weapon_Wait1);                           
    wait(Weapon_Wait2)
 
    if(wpn_slot_switch_steps(wpn_slot_switch, weapon_slot) >= 3 ){                   
        if(wpn_slot_switch_direction(wpn_slot_switch, weapon_slot) != 0)
        set_val(RB, 100);   
        else set_val(LB, 100);           
    }                                     
    wait(Weapon_Wait1);                             
    wait(Weapon_Wait2)
 
    if(wpn_slot_switch_steps(wpn_slot_switch, weapon_slot) >= 4 ){                     
        if(wpn_slot_switch_direction(wpn_slot_switch, weapon_slot) != 0)
        set_val(RB, 100);   
        else set_val(LB, 100);           
    }                                       
    wait(Weapon_Wait1);                             
    wait(Weapon_Wait2);                           
 
    weapon_slot = wpn_slot_switch;                     
 
    onoff = TRUE;                         
} 
 
combo ToggleBuild {
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(End_Wait);
    in_Build_Mode = FALSE;
    in_Combat_Mode = TRUE;
}
 
combo ToggleAxe {
    set_val(AXE, 100);
    wait(Same_Button_Wait);
    set_val(AXE, 0);
    wait(End_Wait);
    in_Axe_Mode = FALSE;
}
 
combo ToggleBuildAxe {
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    set_val(AXE, 100);
    wait(Same_Button_Wait);
    set_val(AXE, 0);
    wait(End_Wait);
    in_Axe_Mode = FALSE;
    in_Build_Mode = FALSE;
    in_Combat_Mode = TRUE;
    weapon_slot = 1;
}
 
combo BuildWall {
    wait(Initial_Wait);
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(FIRE, 100);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 1;
}
 
combo BuildFloor {
    wait(Initial_Wait);
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    set_val(RB, 100);
    wait(Same_Button_Wait);
    set_val(RB, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(RB, 100);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 2;
}
 
combo BuildStair {
    wait(Initial_Wait);
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    set_val(ADS, 100);
    wait(Same_Button_Wait);
    set_val(ADS, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(ADS, 100);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 3;
}
 
combo BuildRoof {
    wait(Initial_Wait);
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    set_val(LB, 100);
    wait(Same_Button_Wait);
    set_val(LB, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(LB, 100);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 4;
}
 
combo BuildWall2 {
    wait(Initial_Wait);
    set_val(FIRE, 100);
    wait(Same_Button_Wait);
    set_val(FIRE, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(FIRE, 100);
    wait(End_Wait);
    Last_Piece_Build = 1;
}
 
combo BuildFloor2 {
    wait(Initial_Wait);
    set_val(RB, 100);
    wait(Same_Button_Wait);
    set_val(RB, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(RB, 100);
    wait(End_Wait);
    Last_Piece_Build = 2;
}
 
combo BuildStair2 {
    wait(Initial_Wait);
    set_val(ADS, 100);
    wait(Same_Button_Wait);
    set_val(ADS, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(ADS, 100);
    wait(End_Wait);
    Last_Piece_Build = 3;
}
 
combo BuildRoof2 {
    wait(Initial_Wait);
    set_val(LB, 100);
    wait(Same_Button_Wait);
    set_val(LB, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(LB, 100);
    wait(End_Wait);
    Last_Piece_Build = 4;
}
 
combo BuildWall3 {
    wait(Initial_Wait);
    set_val(FIRE, 100);
    wait(Same_Button_Wait);
    set_val(FIRE, 0);
    wait(End_Wait);
    Last_Piece_Build = 1;
}
 
combo BuildFloor3 {
    wait(Initial_Wait);
    set_val(RB, 100);
    wait(Same_Button_Wait);
    set_val(RB, 0);
    wait(End_Wait);
    Last_Piece_Build = 2;
}
 
combo BuildStair3 {
    wait(Initial_Wait);
    set_val(ADS, 100);
    wait(Same_Button_Wait);
    set_val(ADS, 0);
    wait(End_Wait);
    Last_Piece_Build = 3;
}
combo BuildRoof3 {
    wait(Initial_Wait);
    set_val(LB, 100);
    wait(Same_Button_Wait);
    set_val(LB, 0);
    wait(End_Wait);
    Last_Piece_Build = 4;
}
 
combo ChangeMat1 {
    wait(Initial_Wait);
    set_val(BUILD, 100.0);
    wait(Same_Button_Wait);
    set_val(BUILD, 0.0);
    wait(Initial_Wait);
    set_val(BUTTON_12, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_12, 0.0);
    wait(Initial_Wait);
    set_val(BUILD, 100.0);
    wait(Same_Button_Wait);
    set_val(BUILD, 0.0);
    wait(End_Wait);
}
 
combo ChangeMat2 {
    wait(Initial_Wait);
    set_val(BUTTON_12, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_12, 0.0);
    wait(End_Wait);
}
combo PlaceTrap1 {
    wait(Initial_Wait);
    set_val(BUILD, 100.0);
    wait(Same_Button_Wait);
    set_val(BUILD, 0.0);
    wait(100);
    set_val(BUTTON_17, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_17, 0.0);
    wait(100);
    set_val(BUTTON_17, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_17, 0.0);
    wait(100);
    set_val(BUILD, 100.0);
    wait(Same_Button_Wait);
    set_val(BUILD, 0.0);
    wait(End_Wait);
}
 
combo PlaceTrap2 {
    wait(Initial_Wait);
    set_val(BUTTON_17, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_17, 0.0);
    wait(100);
    set_val(BUTTON_17, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_17, 0.0);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 5;
}
 
combo DoubleTacShotguns {
    set_val(FIRE, 100.0);
    wait(50);
    set_val(FIRE, 0.0);
    wait(50);
    set_val(LB, 100.0);
    wait(50);
    set_val(LB, 0.0);
    wait(50);
    wait(680);
    set_val(FIRE, 100.0);
    wait(50);
    set_val(FIRE, 0.0);
    wait(50);
    set_val(RB, 100.0);
    wait(50);
    set_val(RB, 0.0);
    wait(50);
    wait(680);
}
 
int8 wpn_slot_switch_direction (int8 wpn_slot_switch, int8 weapon_slot){                   
 
    if(wpn_slot_switch > weapon_slot){ 
 
        if((wpn_slot_switch - weapon_slot) < 3){               
            return 1;   
 
        }else if((wpn_slot_switch - weapon_slot) >= 3) {           
            return 0;                 
        }                                   
 
    }else if(wpn_slot_switch < weapon_slot){             
 
        if((weapon_slot - wpn_slot_switch) < 3){           
            return 0;                 
        }else if((weapon_slot - wpn_slot_switch) >= 3) {           
            return 1;                   
        }                                 
    }  return 0;                             
}
 
int8 wpn_slot_switch_steps (int8 wpn_slot_switch, int8 weapon_slot) {
 
        if(wpn_slot_switch > weapon_slot){                   
 
            if((wpn_slot_switch - weapon_slot) < 3){               
                return (wpn_slot_switch - weapon_slot);
            }else if((wpn_slot_switch - weapon_slot) >= 3) {           
                return ((5 - wpn_slot_switch ) + weapon_slot) ;
            }                                   
 
        }else if(wpn_slot_switch < weapon_slot){             
 
            if((weapon_slot - wpn_slot_switch) < 3){           
                return (weapon_slot - wpn_slot_switch);                 
            }else if((weapon_slot - wpn_slot_switch) >= 3) {           
                return ((5 - weapon_slot) + wpn_slot_switch) ;
            }                                 
        }  return 0;                             
}
 
 
 
User avatar
krzaczu
Staff Sergeant
Staff Sergeant
 
Posts: 14
Joined: Fri Jun 22, 2018 12:53 am

Re: KB + XIM + Titan2 - Fortnite Combos

Postby MAL8010 » Fri Jun 22, 2018 3:30 pm

krzaczu wrote:That was m firsty shot, Im just trying to understand this input trasnator binding.
If I want to have a walls on shift how should I bind it in translator?

Code: Select all
#pragma METAINFO("<Mark>", 1, 0, "FT 1 CLICK BUILD / WEAPON SLOTS")
 
#include <keyboard.gph>
#include <mouse.gph>
#include <display.gph>
#include "light_k.gph"
 
#define LB             BUTTON_7
#define RB             BUTTON_4
#define BUILD         BUTTON_15
#define AXE         BUTTON_14
#define FIRE        BUTTON_5
#define ADS         BUTTON_8
#define RELOAD        BUTTON_17
#define Double_Tac  BUTTON_12
#define Wall        (KEY_Q)
#define Stairs      (KEY_E)
#define Floor       (KEY_F)
#define Roof         (KEY_X)
#define Wpn1          (KEY_1)
#define Wpn2          (KEY_2)
#define Wpn3          (KEY_3)
#define Wpn4          (KEY_4)
#define Wpn5          (KEY_5)
#define Change_Mats (KEY_G)
#define Place_Trap    (KEY_T)
#define Reset        (KEY_V)
#define Initial_Wait                 100
#define Same_Button_Wait             40
#define Generic_Between_Button_Wait 40
#define End_Wait                     60
#define Weapon_Wait1                30 
#define Weapon_Wait2                80
 
bool InstantBuild = TRUE;
bool onoff   = TRUE;
bool in_Build_Mode = FALSE;
bool in_Combat_Mode = TRUE;
bool in_Axe_Mode = FALSE;
int8 weapon_slot = 1;
int8 wpn_slot_switch = 1;
int8 Last_Piece_Build = 0;
 
main {
 
 mouse_passthru();
    key_passthru();   
 
///------------------------------------------------------------------------------
// MODE TRACKING
 
    if(in_Build_Mode) {
    set_light('R');
    in_Combat_Mode = FALSE;   
    }
 
    if(in_Combat_Mode) {
    set_light('G');
    in_Build_Mode = FALSE;   
    }
 
    if(weapon_slot > 5) {
        weapon_slot = 1;
    }
 
    if(!in_Axe_Mode) {
        if(weapon_slot < 1) {
            weapon_slot = 5;
        }
    }
 
    if((in_Build_Mode) && (in_Axe_Mode))
        weapon_slot = 0;
 
///------------------------------------------------------------------------------
// AXE MODE COMBINATIONS
 
    if(event_release(AXE)) {
        if ((in_Combat_Mode) && (!in_Axe_Mode))  //Weapon to Axe
            in_Axe_Mode = TRUE;
        else if ((event_release(AXE)) && (in_Build_Mode) && (!in_Axe_Mode))  //Build to Axe
            in_Axe_Mode = TRUE;
        else if ((event_release(AXE)) && (in_Combat_Mode) && (in_Axe_Mode))  //Weapon to Axe to Weapon via Axe
            in_Axe_Mode = FALSE;
        else if ((event_release(AXE)) && (in_Build_Mode) && (in_Axe_Mode)) { //Weapon to Axe to Build to Axe
        weapon_slot = 1;
        wpn_slot_switch = 1;
        in_Build_Mode = FALSE;
        in_Combat_Mode = TRUE;
        }   
    }
 
///------------------------------------------------------------------------------
// RESET
 
    if (key_status(Reset)) {  //Manual tracker reset to weapon_slot = 1;
        weapon_slot = 1;
        wpn_slot_switch = 1;
        Last_Piece_Build = 0;
        in_Build_Mode = FALSE;
        in_Combat_Mode = TRUE;
        in_Axe_Mode = FALSE;
    }                                         
 
///------------------------------------------------------------------------------
// WEAPON LOAD-OUTS
 
        if(onoff){
 
            if(key_status(Wpn1)){   
                if(weapon_slot != 1)                   
                    wpn_slot_switch = 1;
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))                           
                    combo_run(GoToSlot);                                   
            }                                             
 
            if(key_status(Wpn2)){
                if(weapon_slot != 2)
                     wpn_slot_switch = 2;
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))                             
                    combo_run(GoToSlot);                                                                                               
            }                                           
 
            if(key_status(Wpn3)){
                if(weapon_slot != 3)
                     wpn_slot_switch = 3;                               
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);               
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))
                        combo_run(GoToSlot);                                                                           
            }                                           
 
            if(key_status(Wpn4)){
                if(weapon_slot != 4)
                     wpn_slot_switch = 4;
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);   
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))                       
                    combo_run(GoToSlot);                           
            }                                           
 
            if(key_status(Wpn5)){
                if(weapon_slot != 5)                   
                      wpn_slot_switch = 5;
 
                if((in_Build_Mode) && (weapon_slot != 0))
                    combo_run(ToggleBuild);
 
                if((in_Combat_Mode) && (in_Axe_Mode))
                    combo_run(ToggleAxe);
 
                if((in_Build_Mode) && (in_Axe_Mode) && (weapon_slot == 0))
                    combo_run(ToggleBuildAxe);   
 
                if (in_Combat_Mode && !in_Axe_Mode && wpn_slot_switch_steps(wpn_slot_switch, weapon_slot))                         
                        combo_run(GoToSlot);                                                                                           
            }                                           
 
        }
            set_val(Wpn1, 0);                     
            set_val(Wpn2, 0);                       
            set_val(Wpn3, 0);                     
            set_val(Wpn4, 0);                       
            set_val(Wpn5, 0);                                                 
 
 
///------------------------------------------------------------------------------
// BUILDING LOAD-OUTS
 
    if(key_status(Wall)){
        if(in_Combat_Mode){
            combo_run(BuildWall); //build the first new wall       
        }
        else
            if((in_Build_Mode) && (Last_Piece_Build != 1)){ //if last piece is not a Wall, double tap RT
                combo_run(BuildWall2);
            }
            else
                if((in_Build_Mode) && (Last_Piece_Build == 1)){ // if last piece as wall, turbo mode on
                    combo_run(BuildWall3);
                }
    }
 
    if(key_status(Floor)){
        if(in_Combat_Mode){
            combo_run(BuildFloor);         
        }
        else
            if((in_Build_Mode) && (Last_Piece_Build != 2)){
                combo_run(BuildFloor2);
            }
            else
                if((in_Build_Mode) && (Last_Piece_Build == 2)){
                    combo_run(BuildFloor3);
                }
    }
 
    if(key_status(Stairs)){
        if(in_Combat_Mode){
            combo_run(BuildStair);     
        }
        else
            if((in_Build_Mode) && (Last_Piece_Build != 3)){
                combo_run(BuildStair2);
            }
            else
                if((in_Build_Mode) && (Last_Piece_Build == 3)){
                    combo_run(BuildStair3);
                }
    }
 
 
    if(key_status(Roof)){
        if(in_Combat_Mode){
            combo_run(BuildRoof);     
        }
        else
            if((in_Build_Mode) && (Last_Piece_Build != 4)){
                combo_run(BuildRoof2);
            }
            else
                if((in_Build_Mode) && (Last_Piece_Build == 4)){
                    combo_run(BuildRoof3);
                }
    }
 
    //Turbo build using Fire
    if((in_Build_Mode) && (Last_Piece_Build > 0 ) && get_val(FIRE)){
        set_val(FIRE, 0);
        if (Last_Piece_Build == 1) combo_run (BuildWall3);
            else if (Last_Piece_Build == 2) combo_run(BuildFloor3);
                else if (Last_Piece_Build == 3) combo_run(BuildStair3);
                    else if (Last_Piece_Build == 4) combo_run(BuildRoof3);
    }
 
///------------------------------------------------------------------------------
// CHANGE MATS
 
            if(key_status(Change_Mats))    {
                if(in_Combat_Mode){
                    combo_run (ChangeMat1);}
                else if (in_Build_Mode){
                    combo_run (ChangeMat2);}
                }
 
///------------------------------------------------------------------------------
// PLACE TRAP
 
            if(key_status(Place_Trap)) {
                if(in_Combat_Mode){
                    combo_run (PlaceTrap1);}
                else if (in_Build_Mode){
                    combo_run( PlaceTrap2);}
                }
 
///------------------------------------------------------------------------------
// DOUBLE TAC
 
            if (event_release(Double_Tac)){
                combo_run (DoubleTacShotguns);
                set_val(Double_Tac, 0.0);   
            }
 
///------------------------------------------------------------------------------
// LED       
        if(!in_Axe_Mode){
        switch(weapon_slot) {
                case 0: display_overlay(_0_, 2000); break;
                case 1: display_overlay(_1_, 2000); break;
                case 2: display_overlay(_2_, 2000); break;
                case 3: display_overlay(_3_, 2000); break;
                case 4: display_overlay(_4_, 2000); break;
                case 5: display_overlay(_5_, 2000); break;
            }
        }
        if(in_Axe_Mode) {
                display_overlay(_0_, 2000);
        }
 
        if(in_Build_Mode) {
        switch(Last_Piece_Build)  {   
                case 0: display_overlay(_0_, 2000); break;
                case 1: display_overlay(_1_, 2000); break;
                case 2: display_overlay(_2_, 2000); break;
                case 3: display_overlay(_3_, 2000); break;
                case 4: display_overlay(_3_, 2000); break;
            }
        }             
 
}                                                               
 
combo GoToSlot {             
    onoff = FALSE;             
 
    if(wpn_slot_switch_steps(wpn_slot_switch, weapon_slot) >= 1 ){         
        if(wpn_slot_switch_direction(wpn_slot_switch, weapon_slot) != 0)
        set_val(RB, 100)
        else set_val(LB, 100);         
    }                                   
    wait(Weapon_Wait1);                           
    wait(Weapon_Wait2)
 
    if(wpn_slot_switch_steps(wpn_slot_switch, weapon_slot) >= 2 ){                   
        if(wpn_slot_switch_direction(wpn_slot_switch, weapon_slot) != 0)
        set_val(RB, 100);   
        else set_val(LB, 100);           
    }                                     
    wait(Weapon_Wait1);                           
    wait(Weapon_Wait2)
 
    if(wpn_slot_switch_steps(wpn_slot_switch, weapon_slot) >= 3 ){                   
        if(wpn_slot_switch_direction(wpn_slot_switch, weapon_slot) != 0)
        set_val(RB, 100);   
        else set_val(LB, 100);           
    }                                     
    wait(Weapon_Wait1);                             
    wait(Weapon_Wait2)
 
    if(wpn_slot_switch_steps(wpn_slot_switch, weapon_slot) >= 4 ){                     
        if(wpn_slot_switch_direction(wpn_slot_switch, weapon_slot) != 0)
        set_val(RB, 100);   
        else set_val(LB, 100);           
    }                                       
    wait(Weapon_Wait1);                             
    wait(Weapon_Wait2);                           
 
    weapon_slot = wpn_slot_switch;                     
 
    onoff = TRUE;                         
} 
 
combo ToggleBuild {
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(End_Wait);
    in_Build_Mode = FALSE;
    in_Combat_Mode = TRUE;
}
 
combo ToggleAxe {
    set_val(AXE, 100);
    wait(Same_Button_Wait);
    set_val(AXE, 0);
    wait(End_Wait);
    in_Axe_Mode = FALSE;
}
 
combo ToggleBuildAxe {
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    set_val(AXE, 100);
    wait(Same_Button_Wait);
    set_val(AXE, 0);
    wait(End_Wait);
    in_Axe_Mode = FALSE;
    in_Build_Mode = FALSE;
    in_Combat_Mode = TRUE;
    weapon_slot = 1;
}
 
combo BuildWall {
    wait(Initial_Wait);
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(FIRE, 100);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 1;
}
 
combo BuildFloor {
    wait(Initial_Wait);
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    set_val(RB, 100);
    wait(Same_Button_Wait);
    set_val(RB, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(RB, 100);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 2;
}
 
combo BuildStair {
    wait(Initial_Wait);
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    set_val(ADS, 100);
    wait(Same_Button_Wait);
    set_val(ADS, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(ADS, 100);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 3;
}
 
combo BuildRoof {
    wait(Initial_Wait);
    set_val(BUILD, 100);
    wait(Same_Button_Wait);
    set_val(BUILD, 0);
    wait(Generic_Between_Button_Wait);
    set_val(LB, 100);
    wait(Same_Button_Wait);
    set_val(LB, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(LB, 100);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 4;
}
 
combo BuildWall2 {
    wait(Initial_Wait);
    set_val(FIRE, 100);
    wait(Same_Button_Wait);
    set_val(FIRE, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(FIRE, 100);
    wait(End_Wait);
    Last_Piece_Build = 1;
}
 
combo BuildFloor2 {
    wait(Initial_Wait);
    set_val(RB, 100);
    wait(Same_Button_Wait);
    set_val(RB, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(RB, 100);
    wait(End_Wait);
    Last_Piece_Build = 2;
}
 
combo BuildStair2 {
    wait(Initial_Wait);
    set_val(ADS, 100);
    wait(Same_Button_Wait);
    set_val(ADS, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(ADS, 100);
    wait(End_Wait);
    Last_Piece_Build = 3;
}
 
combo BuildRoof2 {
    wait(Initial_Wait);
    set_val(LB, 100);
    wait(Same_Button_Wait);
    set_val(LB, 0);
    wait(Generic_Between_Button_Wait);
    if(InstantBuild) set_val(LB, 100);
    wait(End_Wait);
    Last_Piece_Build = 4;
}
 
combo BuildWall3 {
    wait(Initial_Wait);
    set_val(FIRE, 100);
    wait(Same_Button_Wait);
    set_val(FIRE, 0);
    wait(End_Wait);
    Last_Piece_Build = 1;
}
 
combo BuildFloor3 {
    wait(Initial_Wait);
    set_val(RB, 100);
    wait(Same_Button_Wait);
    set_val(RB, 0);
    wait(End_Wait);
    Last_Piece_Build = 2;
}
 
combo BuildStair3 {
    wait(Initial_Wait);
    set_val(ADS, 100);
    wait(Same_Button_Wait);
    set_val(ADS, 0);
    wait(End_Wait);
    Last_Piece_Build = 3;
}
combo BuildRoof3 {
    wait(Initial_Wait);
    set_val(LB, 100);
    wait(Same_Button_Wait);
    set_val(LB, 0);
    wait(End_Wait);
    Last_Piece_Build = 4;
}
 
combo ChangeMat1 {
    wait(Initial_Wait);
    set_val(BUILD, 100.0);
    wait(Same_Button_Wait);
    set_val(BUILD, 0.0);
    wait(Initial_Wait);
    set_val(BUTTON_12, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_12, 0.0);
    wait(Initial_Wait);
    set_val(BUILD, 100.0);
    wait(Same_Button_Wait);
    set_val(BUILD, 0.0);
    wait(End_Wait);
}
 
combo ChangeMat2 {
    wait(Initial_Wait);
    set_val(BUTTON_12, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_12, 0.0);
    wait(End_Wait);
}
combo PlaceTrap1 {
    wait(Initial_Wait);
    set_val(BUILD, 100.0);
    wait(Same_Button_Wait);
    set_val(BUILD, 0.0);
    wait(100);
    set_val(BUTTON_17, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_17, 0.0);
    wait(100);
    set_val(BUTTON_17, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_17, 0.0);
    wait(100);
    set_val(BUILD, 100.0);
    wait(Same_Button_Wait);
    set_val(BUILD, 0.0);
    wait(End_Wait);
}
 
combo PlaceTrap2 {
    wait(Initial_Wait);
    set_val(BUTTON_17, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_17, 0.0);
    wait(100);
    set_val(BUTTON_17, 100.0);
    wait(Same_Button_Wait);
    set_val(BUTTON_17, 0.0);
    wait(End_Wait);
    in_Build_Mode = TRUE;
    Last_Piece_Build = 5;
}
 
combo DoubleTacShotguns {
    set_val(FIRE, 100.0);
    wait(50);
    set_val(FIRE, 0.0);
    wait(50);
    set_val(LB, 100.0);
    wait(50);
    set_val(LB, 0.0);
    wait(50);
    wait(680);
    set_val(FIRE, 100.0);
    wait(50);
    set_val(FIRE, 0.0);
    wait(50);
    set_val(RB, 100.0);
    wait(50);
    set_val(RB, 0.0);
    wait(50);
    wait(680);
}
 
int8 wpn_slot_switch_direction (int8 wpn_slot_switch, int8 weapon_slot){                   
 
    if(wpn_slot_switch > weapon_slot){ 
 
        if((wpn_slot_switch - weapon_slot) < 3){               
            return 1;   
 
        }else if((wpn_slot_switch - weapon_slot) >= 3) {           
            return 0;                 
        }                                   
 
    }else if(wpn_slot_switch < weapon_slot){             
 
        if((weapon_slot - wpn_slot_switch) < 3){           
            return 0;                 
        }else if((weapon_slot - wpn_slot_switch) >= 3) {           
            return 1;                   
        }                                 
    }  return 0;                             
}
 
int8 wpn_slot_switch_steps (int8 wpn_slot_switch, int8 weapon_slot) {
 
        if(wpn_slot_switch > weapon_slot){                   
 
            if((wpn_slot_switch - weapon_slot) < 3){               
                return (wpn_slot_switch - weapon_slot);
            }else if((wpn_slot_switch - weapon_slot) >= 3) {           
                return ((5 - wpn_slot_switch ) + weapon_slot) ;
            }                                   
 
        }else if(wpn_slot_switch < weapon_slot){             
 
            if((weapon_slot - wpn_slot_switch) < 3){           
                return (weapon_slot - wpn_slot_switch);                 
            }else if((weapon_slot - wpn_slot_switch) >= 3) {           
                return ((5 - weapon_slot) + wpn_slot_switch) ;
            }                                 
        }  return 0;                             
}
 
 
 


Change these to match the keys you want to use for those definitions:

Code: Select all
#define Wall        (KEY_Q)
#define Stairs      (KEY_E)
#define Floor       (KEY_F)
#define Roof         (KEY_X)
#define Wpn1          (KEY_1)
#define Wpn2          (KEY_2)
#define Wpn3          (KEY_3)
#define Wpn4          (KEY_4)
#define Wpn5          (KEY_5)
#define Change_Mats (KEY_G)
#define Place_Trap    (KEY_T)
#define Reset        (KEY_V)


You use an Input Translator to map your controller mapped keybinds to KB+Mouse. So for example under keyboard mapping map W -> STICK_2_Y (negative)... under mouse mapping, map Button 1 -> BUTTON_5 etc until all controller inputs are mapped to your KB/Mouse keys you want them to be.
User avatar
MAL8010
Sergeant Major of the Army
Sergeant Major of the Army
 
Posts: 263
Joined: Sun Feb 05, 2017 3:12 pm

Re: KB + XIM + Titan2 - Fortnite Combos

Postby krzaczu » Fri Jun 22, 2018 11:51 pm

Helps me alot. Now I get it how it works and ye its working but next thing is , that my mouse is connected to apex and apex into t2 and its there a way to have stairs/floors on extra mouse button? I was trying to change mouse bind to the same like in script but its not working like that.
User avatar
krzaczu
Staff Sergeant
Staff Sergeant
 
Posts: 14
Joined: Fri Jun 22, 2018 12:53 am

Re: KB + XIM + Titan2 - Fortnite Combos

Postby bonefisher » Fri Jun 22, 2018 11:53 pm

Code: Select all
 
fix32  RY;
fix32  RX;
fix32 ffb_1_speed;
uint32 ffb_1_duration;
 
main {
    ffb_1_speed = ffb_get_actual(FFB_1, &ffb_1_duration);
    if(ffb_1_speed) {
        if(get_actual(BUTTON_5))set_val(BUTTON_5, 0.0);
        AntiRecoil(STICK_1_Y, 32.0);
        AntiRecoil(STICK_1_X, 2.0);
    }
    if(ffb_get(FFB_2, NULL) > 0.0) {
        set_val(BUTTON_8, 0.0);
    }
    if(ffb_get(FFB_3, NULL) > 0.0) {
        combo_run(side_step);
    }
}
combo side_step
{
    strafe (STICK_2_X, 100.0);
    wait(400);
    strafe (STICK_2_X, -100.0);
    wait(400);
}
 
 
void AntiRecoil (uint8 axis, fix32 recoil)
{
 
     RY = get_actual(STICK_1_Y);
     RX = get_actual(STICK_1_X);
 
    if ((sqrt(RX*RX + RY*RY)) <= abs(recoil))
    {
    if(abs(RY) <= abs(recoil))
    {
        set_val(axis,(recoil * (100.0 - abs(get_val(axis)))) / 100.0 + get_val(axis));
    }
    }
}
 
void strafe (uint8 stick, fix32 length)
{
        set_val(stick,(length * (100.0 - abs(get_val(stick)))) / 100.0 + get_val(stick));
}
 

See if this works with fortnite game. Need rumbles to be working to activate. Also has rapid fire working off of rumble.
bonefisher
Lieutenant General
Lieutenant General
 
Posts: 5413
Joined: Thu Jan 29, 2015 10:49 am

Re: KB + XIM + Titan2 - Fortnite Combos

Postby Sillyasskid » Sat Jun 23, 2018 4:16 am

bonefisher wrote:
Code: Select all
 
fix32  RY;
fix32  RX;
fix32 ffb_1_speed;
uint32 ffb_1_duration;
 
main {
    ffb_1_speed = ffb_get_actual(FFB_1, &ffb_1_duration);
    if(ffb_1_speed) {
        if(get_actual(BUTTON_5))set_val(BUTTON_5, 0.0);
        AntiRecoil(STICK_1_Y, 32.0);
        AntiRecoil(STICK_1_X, 2.0);
    }
    if(ffb_get(FFB_2, NULL) > 0.0) {
        set_val(BUTTON_8, 0.0);
    }
    if(ffb_get(FFB_3, NULL) > 0.0) {
        combo_run(side_step);
    }
}
combo side_step
{
    strafe (STICK_2_X, 100.0);
    wait(400);
    strafe (STICK_2_X, -100.0);
    wait(400);
}
 
 
void AntiRecoil (uint8 axis, fix32 recoil)
{
 
     RY = get_actual(STICK_1_Y);
     RX = get_actual(STICK_1_X);
 
    if ((sqrt(RX*RX + RY*RY)) <= abs(recoil))
    {
    if(abs(RY) <= abs(recoil))
    {
        set_val(axis,(recoil * (100.0 - abs(get_val(axis)))) / 100.0 + get_val(axis));
    }
    }
}
 
void strafe (uint8 stick, fix32 length)
{
        set_val(stick,(length * (100.0 - abs(get_val(stick)))) / 100.0 + get_val(stick));
}
 

See if this works with fortnite game. Need rumbles to be working to activate. Also has rapid fire working off of rumble.

I've tested a similar method using the FFB to control recoil with this game in the past,
It's not a good candidate, as I found the recoil for most guns already easily maintainable.

And also if you factor in all this aa abuse scripts, the anti-recoil implementation really just becomes a joke. Maybe things have changed since I last played, but I don't have it installed anymore, so I cant test it. I just wanted to share my experience using this sort of method with this game,

Don't get me wrong, antirecoil activation by the ffb definitely does work for some games, and in some cases it works extremely well (R6 Siege being one of the best examples)

Anyways, just want to point out the side step combo will never activate, if the user is on a PS4. As FFB_3 and FFB_4 are the impact triggers for the Xbox. The Ps4 does not utilize them.
Code: Select all
if(ffb_get(FFB_3, NULL) > 0.0) 
        combo_run(side_step);
    }
Also you should know the actual FFB resolution in the PS4 controller is much smaller than the Xbox controller You would assume that both consoles would share a similar FFB print when they are invoked. But they don't, The Xbox one has a much higher resolution. Allowing for more reliable scripting when using ffb ques.

Oh, also I did not see any rapid fire that you mention in this script you posted... not sure if you were talking about a future script of yours, or the one you just posted. If you needed to know if the rapid fire would also work with this game, It does.

I've also experimented with rapid fire using the ffb activation, from what I remember, it worked pretty well with this game. but thats not saying much though because It works very well with pretty much all shooters. lol.
User avatar
Sillyasskid
Captain
Captain
 
Posts: 574
Joined: Sat May 14, 2016 3:07 am

Re: KB + XIM + Titan2 - Fortnite Combos

Postby bonefisher » Sat Jun 23, 2018 8:08 am

Code: Select all
 
ffb_1_speed = ffb_get_actual(FFB_1, &ffb_1_duration);
    if(ffb_1_speed) {
        if(get_actual(BUTTON_5))set_val(BUTTON_5, 0.0);
 

This part here works really well in battlefield as a rapid fire! pulses like a wait(40);wait(40); in game and in sink with anti-recoil! Yes totally forgot about that I was using my elite controller and PS4 don't use all ffb's. Sorry!
bonefisher
Lieutenant General
Lieutenant General
 
Posts: 5413
Joined: Thu Jan 29, 2015 10:49 am

Re: KB + XIM + Titan2 - Fortnite Combos

Postby MAL8010 » Sun Jun 24, 2018 11:24 am

krzaczu wrote:Helps me alot. Now I get it how it works and ye its working but next thing is , that my mouse is connected to apex and apex into t2 and its there a way to have stairs/floors on extra mouse button? I was trying to change mouse bind to the same like in script but its not working like that.


No, the script was designed to for KB only for the building/weapon slots etc. Would need to be re-written in parts for this change and since I no longer post new scripts/code to public forums (since it just get's ripped off for financial gain elsewhere without due credit) I won't be providing this.

The easiest way is to not use XIM and use T2's own mouse translation. Honestly, IMO the T2 current mouse translation is superior to the XIM, especially for using scoped weapons where the deadzone is incorrect for XIM and can't be changed.
User avatar
MAL8010
Sergeant Major of the Army
Sergeant Major of the Army
 
Posts: 263
Joined: Sun Feb 05, 2017 3:12 pm

Re: KB + XIM + Titan2 - Fortnite Combos

Postby alanmcgregor » Mon Jun 25, 2018 8:27 pm

MAL8010 wrote:
krzaczu wrote:Helps me alot. Now I get it how it works and ye its working but next thing is , that my mouse is connected to apex and apex into t2 and its there a way to have stairs/floors on extra mouse button? I was trying to change mouse bind to the same like in script but its not working like that.


No, the script was designed to for KB only for the building/weapon slots etc. Would need to be re-written in parts for this change and since I no longer post new scripts/code to public forums (since it just get's ripped off for financial gain elsewhere without due credit) I won't be providing this.

The easiest way is to not use XIM and use T2's own mouse translation. Honestly, IMO the T2 current mouse translation is superior to the XIM, especially for using scoped weapons where the deadzone is incorrect for XIM and can't be changed.

That sucks man. Yup I knew a guy that bought my basic script for TurboInstantBuild (with a lot of shady exploits awfully added, just plastered) for 50 bucks.

I was trying to help MAL with the requests, with my limit knowledge on the language. I won't be posting /supporting too following his decision. Honestly, the topic it has a lot of questions resolved already and if you need to tweak your scripts, dig it.

About the T2 Mouse translation being better than XIM Apex... I'm with you, I found that too after the issues with the changes at the look mechanics. I tried T2 and felt better. Didn't say anything of course, because people can be such a fan boys. I mean, if you guys already have your T2... give it a try, you might be surprised.
User avatar
alanmcgregor
Major
Major
 
Posts: 981
Joined: Tue Mar 27, 2018 8:38 am

Re: KB + XIM + Titan2 - Fortnite Combos

Postby Sillyasskid » Mon Jun 25, 2018 10:31 pm

MAL8010 wrote:I no longer post new scripts/code to public forums (since it just get's ripped off for financial gain elsewhere without due credit) I won't be providing this.
Where was this ?
User avatar
Sillyasskid
Captain
Captain
 
Posts: 574
Joined: Sat May 14, 2016 3:07 am

PreviousNext

Return to GPC2 Script Programming

Who is online

Users browsing this forum: Google [Bot] and 96 guests