KB + XIM + Titan2 - Fortnite Combos

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

Re: KB + XIM + Titan2 - Fortnite Combos

Postby alanmcgregor » Tue Apr 17, 2018 10:20 pm

:smile0203: Awesome!

Image

That's pretty much the fastest script around.

Good Job MAL8010 :smile0517:

Here is my setup:

Code: Select all
 
#pragma METAINFO("<Mark", 1, 0, "FORTNITE BUILDER PRO - McGregor Turbo Build - M&KB-BuildArrows")
 
#include <keyboard.gph>
#include <display.gph>
#include "light_k.gph"
#include <mouse.gph>
 
#define Reset BUTTON_14 //manual reset of tracking (pickaxe)
#define Wall (KEY_RIGHTARROW)
#define Floor (KEY_DOWNARROW)
#define Stair (KEY_LEFTARROW)
#define RB (KEY_E)
#define Build (MBUTTON_4)
#define Fire (MBUTTON_1)
#define ADS (MBUTTON_2)
#define InitailEnd_Wait 30
#define SameButton_Wait 60
#define GenericBetweenButton_Wait 60
 
//mode and tracker
int mode;
int NavState;
 
//building hotkeys and tracker
int LastPieceBuild; // 0 = NULL | 1 = Wall | 2 = Floor | 3 = Stair |
 
main {
 
mouse_passthru();
key_passthru();
 
 
//------------------------------------------------------------------------------
//MODE TRACKING
 
    if (mode == 0) {
        set_light('B');
        }
 
    if (mode == 1) {
        set_light('G');
        }
 
    if (mode > 1) {
        mode = 0;}
 
    if ((event_release(BUTTON_15)) && (mode == 0)){
            mode = 1; //building mode
            }
 
    else if (event_release(BUTTON_15) && (mode == 1)) {
            mode = 0; //combat mode
            }
 
    if ((event_release(BUTTON_14)) && (mode == 1)) {
        mode = 0; //building mode to axe
        }
 
//------------------------------------------------------------------------------
//TRACKER RESETS
 
    //manual tracker reset to pickaxe
    if (event_active(Reset)) {
        mode = 0;
    }
 
    //Since B is cancel as well as enter building mode, need to reset tracker if using to cancel out of xbox menu, inventory, game menu, emotes
    if (event_release (BUTTON_1) || event_release (BUTTON_3) || event_release (BUTTON_10) || event_release (BUTTON_11) || event_release (BUTTON_13)) {
        NavState = 1;}
 
    // Pressing B to cancel resets
    if (event_release (BUTTON_15) && NavState) {
        mode = mode + 1;
        NavState = 0;}
 
///------------------------------------------------------------------------------
// LOAD-OUTS
 
    if(key_status(Wall)){
        if(mode == 0){ //is on Combat Mode
            combo_run(BuildWall); //build the first new wall       
        }
        else
            if((mode == 1) && (LastPieceBuild != 1)){ //if last piece is not a Wall, double tap RT
                combo_run(RT2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 1)){ // if last piece as wall, turbo mode on
                    combo_run(RT1);
                }
    }
 
    if(key_status(Floor)){
        if(mode == 0){
            combo_run(BuildFloor);         
        }
        else
            if((mode == 1) && (LastPieceBuild != 2)){
                combo_run(RB2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 2)){
                    combo_run(RB1);
                }
    }
 
    if(key_status(Stair)){
        if(mode == 0){
            combo_run(BuildStair);     
        }
        else
            if((mode == 1) && (LastPieceBuild != 3)){
                combo_run(ADS2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 3)){
                    combo_run(ADS1);
                }
    }
 
    //turbo build using Fire
    if((mode == 1) && (LastPieceBuild > 0 ) && mouse_status(Fire)){
        mouse_set(Fire, 0);
        if (LastPieceBuild == 1) combo_run (RT1);
            else if (LastPieceBuild == 2) combo_run(RB1);
                else combo_run(ADS1);
    }
 
//------------------------------------------------------------------------------
//LED                   
        if (mode == 1){           
        switch(LastPieceBuild) {
              //  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;
            }
        }
 
        if (mode == 0) {
            display_overlay(_0_, 2000); }   
} // main
 
combo BuildWall {
    wait(InitailEnd_Wait);
    mouse_set(Build, 1);
    wait(SameButton_Wait);
    mouse_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 1;
}
 
combo BuildFloor {
    wait(InitailEnd_Wait);
    mouse_set(Build, 1);
    wait(SameButton_Wait);
    mouse_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 2;
}
 
combo BuildStair {
    wait(InitailEnd_Wait);
    mouse_set(Build, 1);
    wait(SameButton_Wait);
    mouse_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 3;
}
 
combo RT2 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB2 {
    wait(InitailEnd_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS2 {
    wait(InitailEnd_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
 
combo RT1 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB1 {
    wait(InitailEnd_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS1 {
    wait(InitailEnd_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 

Input Translator
Image

My Mouse Side Button is Build,
WASD for movement and Q(Previus Weapon), E(Next Weapon)
I use the Orbweaver, like this:
Image
User avatar
alanmcgregor
Major
Major
 
Posts: 981
Joined: Tue Mar 27, 2018 8:38 am

Re: KB + XIM + Titan2 - Fortnite Combos

Postby Silktouch » Thu Apr 19, 2018 10:40 am

Heyho :)
Im at home now and was able to play some rounds with the new script, its nice, but I have one problem.
I dont like to open build mode first, I want it same before with only one button. I will try to edit the script to my liking, but I think it isnt only "add circle" to every combo, because of the tracking. I hope somebody can help me.

Here is my code:
Code: Select all
 
#pragma METAINFO("<MAL APEX + T2", 1, 0, "")
 
 
 
#include <keyboard.gph>
#include <display.gph>
#include "light_k.gph"
#include <mouse.gph>
 
#define Reset BUTTON_14 //manual reset of tracking (pickaxe)
#define Wall (KEY_Y)
#define Floor (KEY_U)
#define Stair (KEY_I)
#define RB (KEY_E)
#define Build (KEY_F)
#define Fire (MBUTTON_1)
#define ADS (MBUTTON_2)
#define InitailEnd_Wait 30
#define SameButton_Wait 60
#define GenericBetweenButton_Wait 60
 
 
fix32 minv2 = 23.00*23.00 ; //  adjust so resting position never register.
 
//mode and tracker
int mode;
int NavState;
 
//building hotkeys and tracker
int LastPieceBuild; // 0 = NULL | 1 = Wall | 2 = Floor | 3 = Stair |
 
 init {
 
 
//------------------------------------------------------------------------------
// KEYBOARD BINDINGS
      const uint8 map[] = {
 
        MOUSE_X,            STICK_1_X,
        MOUSE_Y,            STICK_1_Y,
 
      };
 
       const uint8 map2[] = {
 
        KEY_W,                STICK_2_Y | KEYMAP_NEGATIVE,
        KEY_A,                STICK_2_X | KEYMAP_NEGATIVE,
        KEY_S,                STICK_2_Y,
        KEY_D,                STICK_2_X,
        KEY_ESCAPE,           BUTTON_3, // XBOX
        KEY_TAB,              BUTTON_10, // VIEW
        KEY_F12,              BUTTON_1,
        KEY_PAUSE,              BUTTON_11,
 
//                            BUTTON_3, // MENU
//                            BUTTON_4, // RB
//                            BUTTON_5, // RT
//        KEY_C,                BUTTON_6, // RS
//                            BUTTON_7, // LB
//                                BUTTON_8, // LT
        KEY_LEFTSHIFT,        BUTTON_9, // LS
//        KEY_CAPSLOCK,         BUTTON_10, // UP
        KEY_DOWNARROW,          BUTTON_11, // DOWN
        KEY_UPARROW,          BUTTON_2,
        KEY_LEFTARROW,          BUTTON_12,
        KEY_RIGHTARROW,          BUTTON_13,
//                              BUTTON_12, // LEFT
//                             BUTTON_13, // RIGHT
        KEY_R,                     BUTTON_17,
      KEY_K,                     BUTTON_14,
     KEY_F,                     BUTTON_15,
      KEY_Q,                     BUTTON_7,
        KEY_E,                     BUTTON_4,
      // Y
 
//                              BUTTON_15, // B
        KEY_SPACEBAR,         BUTTON_16, // A
        KEY_LEFTCONTROL,      BUTTON_6, // X
 
 
 
 
       };
 
    keymapping(map2);
    mousemapping(map);
 
}   
 
 
main {
 
    mouse_passthru();
    key_passthru();
 
 if(key_status(KEY_1)) {
        combo_run(dance1);
    }
    if(key_status(KEY_2)) {
        combo_run(dance2);
    }
    if(key_status(KEY_3)) {
        combo_run(dance3);
    }
    if(key_status(KEY_4)) {
        combo_run(dance4);
    }   
    if(key_status(KEY_5)) {
        combo_run(dance5);
    }
    if(key_status(KEY_6)) {
        combo_run(dance6);
    }
 
//------------------------------------------------------------------------------
//MODE TRACKING
 
    if (mode == 0) {
        set_light('G');
        }
 
    if (mode == 1) {
        set_light('R');
        }
 
    if (mode > 1) {
        mode = 0;}
 
    if ((event_release(BUTTON_15)) && (mode == 0)){
            mode = 1; //building mode
            }
 
    else if (event_release(BUTTON_15) && (mode == 1)) {
            mode = 0; //combat mode
            }
 
    if ((event_release(BUTTON_14)) && (mode == 1)) {
        mode = 0; //building mode to axe
        }
 
//------------------------------------------------------------------------------
//TRACKER RESETS
 
    //manual tracker reset to pickaxe
    if (event_active(Reset)) {
        mode = 0;
    }
 
    //Since B is cancel as well as enter building mode, need to reset tracker if using to cancel out of xbox menu, inventory, game menu, emotes
    if (event_release (BUTTON_1) || event_release (BUTTON_3) || event_release (BUTTON_10) || event_release (BUTTON_11) || event_release (BUTTON_13)) {
        NavState = 1;}
 
    // Pressing B to cancel resets
    if (event_release (BUTTON_15) && NavState) {
        mode = mode + 1;
        NavState = 0;}
 
///------------------------------------------------------------------------------
// LOAD-OUTS
 
    if(key_status(Wall)){
        if(mode == 0){ //is on Combat Mode
            combo_run(BuildWall); //build the first new wall       
        }
        else
            if((mode == 1) && (LastPieceBuild != 1)){ //if last piece is not a Wall, double tap RT
                combo_run(RT2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 1)){ // if last piece as wall, turbo mode on
                    combo_run(RT1);
                }
    }
 
    if(key_status(Floor)){
        if(mode == 0){
            combo_run(BuildFloor);         
        }
        else
            if((mode == 1) && (LastPieceBuild != 2)){
                combo_run(RB2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 2)){
                    combo_run(RB1);
                }
    }
 
    if(key_status(Stair)){
        if(mode == 0){
            combo_run(BuildStair);     
        }
        else
            if((mode == 1) && (LastPieceBuild != 3)){
                combo_run(ADS2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 3)){
                    combo_run(ADS1);
                }
    }
 
    //turbo build using Fire
    if((mode == 1) && (LastPieceBuild > 0 ) && mouse_status(Fire)){
        mouse_set(Fire, 0);
        if (LastPieceBuild == 1) combo_run (RT1);
            else if (LastPieceBuild == 2) combo_run(RB1);
                else combo_run(ADS1);
    }
 
//------------------------------------------------------------------------------
//LED                   
        if (mode == 1){           
        switch(LastPieceBuild) {
              //  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;
            }
        }
 
        if (mode == 0) {
            display_overlay(_0_, 2000); }   
} // main
 
combo BuildWall {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 1;
}
 
combo BuildFloor {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 2;
}
 
combo BuildStair {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 3;
}
 
combo RT2 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB2 {
    wait(InitailEnd_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS2 {
    wait(InitailEnd_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo ADS3 {
    wait(InitailEnd_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo RT1 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB1 {
    wait(InitailEnd_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS1 {
    wait(InitailEnd_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
 combo dance1 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(160);
 
    mouse_set(MOUSE_Y, -100);
    wait(120);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_Y, 100);
}
 
combo dance2 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_Y, 100);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_Y, -100);
}
 
combo dance3 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, 40);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, -40);
}
 
combo dance4 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, -50);
 
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, 50);
}
 
combo dance5 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, 50);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, -50);
}
 
combo dance6 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, -40);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, 40);
}
 
void WASD(uint8 io_x, uint8 io_y){
    fix32 rx = get_actual(io_x) ;
    fix32 ry = get_actual(io_y) ;
    fix32 ovl = 10.00;   // 20 degrees overlap so diagonals movement also register
 
    fix32 angle = atan2(ry,rx) * 180.00 / PI;
    fix32 radius2 = rx*rx + ry*ry ;
 
    if ( radius2 >= minv2 ) {
 
        //W
        if ( angle < (-45.00+ovl)  && angle > (-135.00-ovl) ) { key_set(KEY_W,1);}
 
        //A
        if ( abs(angle) > (135.00-ovl) ) { key_set(KEY_A,1);}
 
        //S
        if ( angle > (45.00-ovl)  && angle < (135.00+ovl) ) { key_set(KEY_S,1);}
 
        //D
        if (abs(angle) < (45.00+ovl) ) { key_set(KEY_D,1);}
    }
 
 
    return;
}
 
 


I dont use any Input-Translator on my T2.

Cheers and thanks for your work :joia:
User avatar
Silktouch
Sergeant Major
Sergeant Major
 
Posts: 70
Joined: Sat Mar 03, 2018 2:57 pm

Re: KB + XIM + Titan2 - Fortnite Combos

Postby MAL8010 » Thu Apr 19, 2018 11:52 am

Silktouch wrote:Heyho :)
Im at home now and was able to play some rounds with the new script, its nice, but I have one problem.
I dont like to open build mode first, I want it same before with only one button. I will try to edit the script to my liking, but I think it isnt only "add circle" to every combo, because of the tracking. I hope somebody can help me.

Here is my code:
Code: Select all
 
#pragma METAINFO("<MAL APEX + T2", 1, 0, "")
 
 
 
#include <keyboard.gph>
#include <display.gph>
#include "light_k.gph"
#include <mouse.gph>
 
#define Reset BUTTON_14 //manual reset of tracking (pickaxe)
#define Wall (KEY_Y)
#define Floor (KEY_U)
#define Stair (KEY_I)
#define RB (KEY_E)
#define Build (KEY_F)
#define Fire (MBUTTON_1)
#define ADS (MBUTTON_2)
#define InitailEnd_Wait 30
#define SameButton_Wait 60
#define GenericBetweenButton_Wait 60
 
 
fix32 minv2 = 23.00*23.00 ; //  adjust so resting position never register.
 
//mode and tracker
int mode;
int NavState;
 
//building hotkeys and tracker
int LastPieceBuild; // 0 = NULL | 1 = Wall | 2 = Floor | 3 = Stair |
 
 init {
 
 
//------------------------------------------------------------------------------
// KEYBOARD BINDINGS
      const uint8 map[] = {
 
        MOUSE_X,            STICK_1_X,
        MOUSE_Y,            STICK_1_Y,
 
      };
 
       const uint8 map2[] = {
 
        KEY_W,                STICK_2_Y | KEYMAP_NEGATIVE,
        KEY_A,                STICK_2_X | KEYMAP_NEGATIVE,
        KEY_S,                STICK_2_Y,
        KEY_D,                STICK_2_X,
        KEY_ESCAPE,           BUTTON_3, // XBOX
        KEY_TAB,              BUTTON_10, // VIEW
        KEY_F12,              BUTTON_1,
        KEY_PAUSE,              BUTTON_11,
 
//                            BUTTON_3, // MENU
//                            BUTTON_4, // RB
//                            BUTTON_5, // RT
//        KEY_C,                BUTTON_6, // RS
//                            BUTTON_7, // LB
//                                BUTTON_8, // LT
        KEY_LEFTSHIFT,        BUTTON_9, // LS
//        KEY_CAPSLOCK,         BUTTON_10, // UP
        KEY_DOWNARROW,          BUTTON_11, // DOWN
        KEY_UPARROW,          BUTTON_2,
        KEY_LEFTARROW,          BUTTON_12,
        KEY_RIGHTARROW,          BUTTON_13,
//                              BUTTON_12, // LEFT
//                             BUTTON_13, // RIGHT
        KEY_R,                     BUTTON_17,
      KEY_K,                     BUTTON_14,
     KEY_F,                     BUTTON_15,
      KEY_Q,                     BUTTON_7,
        KEY_E,                     BUTTON_4,
      // Y
 
//                              BUTTON_15, // B
        KEY_SPACEBAR,         BUTTON_16, // A
        KEY_LEFTCONTROL,      BUTTON_6, // X
 
 
 
 
       };
 
    keymapping(map2);
    mousemapping(map);
 
}   
 
 
main {
 
    mouse_passthru();
    key_passthru();
 
 if(key_status(KEY_1)) {
        combo_run(dance1);
    }
    if(key_status(KEY_2)) {
        combo_run(dance2);
    }
    if(key_status(KEY_3)) {
        combo_run(dance3);
    }
    if(key_status(KEY_4)) {
        combo_run(dance4);
    }   
    if(key_status(KEY_5)) {
        combo_run(dance5);
    }
    if(key_status(KEY_6)) {
        combo_run(dance6);
    }
 
//------------------------------------------------------------------------------
//MODE TRACKING
 
    if (mode == 0) {
        set_light('G');
        }
 
    if (mode == 1) {
        set_light('R');
        }
 
    if (mode > 1) {
        mode = 0;}
 
    if ((event_release(BUTTON_15)) && (mode == 0)){
            mode = 1; //building mode
            }
 
    else if (event_release(BUTTON_15) && (mode == 1)) {
            mode = 0; //combat mode
            }
 
    if ((event_release(BUTTON_14)) && (mode == 1)) {
        mode = 0; //building mode to axe
        }
 
//------------------------------------------------------------------------------
//TRACKER RESETS
 
    //manual tracker reset to pickaxe
    if (event_active(Reset)) {
        mode = 0;
    }
 
    //Since B is cancel as well as enter building mode, need to reset tracker if using to cancel out of xbox menu, inventory, game menu, emotes
    if (event_release (BUTTON_1) || event_release (BUTTON_3) || event_release (BUTTON_10) || event_release (BUTTON_11) || event_release (BUTTON_13)) {
        NavState = 1;}
 
    // Pressing B to cancel resets
    if (event_release (BUTTON_15) && NavState) {
        mode = mode + 1;
        NavState = 0;}
 
///------------------------------------------------------------------------------
// LOAD-OUTS
 
    if(key_status(Wall)){
        if(mode == 0){ //is on Combat Mode
            combo_run(BuildWall); //build the first new wall       
        }
        else
            if((mode == 1) && (LastPieceBuild != 1)){ //if last piece is not a Wall, double tap RT
                combo_run(RT2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 1)){ // if last piece as wall, turbo mode on
                    combo_run(RT1);
                }
    }
 
    if(key_status(Floor)){
        if(mode == 0){
            combo_run(BuildFloor);         
        }
        else
            if((mode == 1) && (LastPieceBuild != 2)){
                combo_run(RB2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 2)){
                    combo_run(RB1);
                }
    }
 
    if(key_status(Stair)){
        if(mode == 0){
            combo_run(BuildStair);     
        }
        else
            if((mode == 1) && (LastPieceBuild != 3)){
                combo_run(ADS2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 3)){
                    combo_run(ADS1);
                }
    }
 
    //turbo build using Fire
    if((mode == 1) && (LastPieceBuild > 0 ) && mouse_status(Fire)){
        mouse_set(Fire, 0);
        if (LastPieceBuild == 1) combo_run (RT1);
            else if (LastPieceBuild == 2) combo_run(RB1);
                else combo_run(ADS1);
    }
 
//------------------------------------------------------------------------------
//LED                   
        if (mode == 1){           
        switch(LastPieceBuild) {
              //  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;
            }
        }
 
        if (mode == 0) {
            display_overlay(_0_, 2000); }   
} // main
 
combo BuildWall {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 1;
}
 
combo BuildFloor {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 2;
}
 
combo BuildStair {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 3;
}
 
combo RT2 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB2 {
    wait(InitailEnd_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS2 {
    wait(InitailEnd_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo ADS3 {
    wait(InitailEnd_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo RT1 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB1 {
    wait(InitailEnd_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS1 {
    wait(InitailEnd_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
 combo dance1 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(160);
 
    mouse_set(MOUSE_Y, -100);
    wait(120);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_Y, 100);
}
 
combo dance2 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_Y, 100);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_Y, -100);
}
 
combo dance3 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, 40);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, -40);
}
 
combo dance4 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, -50);
 
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, 50);
}
 
combo dance5 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, 50);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, -50);
}
 
combo dance6 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, -40);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, 40);
}
 
void WASD(uint8 io_x, uint8 io_y){
    fix32 rx = get_actual(io_x) ;
    fix32 ry = get_actual(io_y) ;
    fix32 ovl = 10.00;   // 20 degrees overlap so diagonals movement also register
 
    fix32 angle = atan2(ry,rx) * 180.00 / PI;
    fix32 radius2 = rx*rx + ry*ry ;
 
    if ( radius2 >= minv2 ) {
 
        //W
        if ( angle < (-45.00+ovl)  && angle > (-135.00-ovl) ) { key_set(KEY_W,1);}
 
        //A
        if ( abs(angle) > (135.00-ovl) ) { key_set(KEY_A,1);}
 
        //S
        if ( angle > (45.00-ovl)  && angle < (135.00+ovl) ) { key_set(KEY_S,1);}
 
        //D
        if (abs(angle) < (45.00+ovl) ) { key_set(KEY_D,1);}
    }
 
 
    return;
}
 
 


I dont use any Input-Translator on my T2.

Cheers and thanks for your work :joia:


The combo's work the same as before, just press your piece keys to build the desired piece
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 Silktouch » Thu Apr 19, 2018 11:56 am

Edit: Ok, all work now. Had some problems with "mouse_set, key_set". But I must say, I like the old building with Combat-Pro more. With the new building I have so many tracking errors and sometime I want to shoot my weapon but nothing happens. But the old script is perfect for now, I think I will wait for an updated Builder-Pro, maybe then its more usable for me.
User avatar
Silktouch
Sergeant Major
Sergeant Major
 
Posts: 70
Joined: Sat Mar 03, 2018 2:57 pm

Re: KB + XIM + Titan2 - Fortnite Combos

Postby MAL8010 » Thu Apr 19, 2018 6:02 pm

Silktouch wrote:Edit: Ok, all work now. Had some problems with "mouse_set, key_set". But I must say, I like the old building with Combat-Pro more. With the new building I have so many tracking errors and sometime I want to shoot my weapon but nothing happens. But the old script is perfect for now, I think I will wait for an updated Builder-Pro, maybe then its more usable for me.


If you are having consistent issues with building wrong piece then you likely have an error in the script or in game latency is causing an issue. Works fine for me.

With regards firing and nothing happening that's a known in game problem for this controller layout. https://trello.com/b/Bs7hgkma/fortnite-community-issues
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 » Thu Apr 19, 2018 8:01 pm

Silktouch wrote:Edit: Ok, all work now. Had some problems with "mouse_set, key_set". But I must say, I like the old building with Combat-Pro more. With the new building I have so many tracking errors and sometime I want to shoot my weapon but nothing happens. But the old script is perfect for now, I think I will wait for an updated Builder-Pro, maybe then its more usable for me.

No problems here too.

Seems something on your code or latency issues.

The code is pretty straight forward as it is, I don't see how can be more updated. Actually this script uses less tracking than the Combat Pro one.

Scripts do not reprogram the game, is more like having a robot doing keystrokes and manage events for you, as precise as possible. Less keystrokes always be better, faster and less prone to network issues.
User avatar
alanmcgregor
Major
Major
 
Posts: 981
Joined: Tue Mar 27, 2018 8:38 am

Re: KB + XIM + Titan2 - Fortnite Combos

Postby Silktouch » Thu Apr 19, 2018 8:22 pm

alanmcgregor wrote:
Silktouch wrote:Edit: Ok, all work now. Had some problems with "mouse_set, key_set". But I must say, I like the old building with Combat-Pro more. With the new building I have so many tracking errors and sometime I want to shoot my weapon but nothing happens. But the old script is perfect for now, I think I will wait for an updated Builder-Pro, maybe then its more usable for me.

No problems here too.

Seems something on your code or latency issues.

The code is pretty straight forward as it is, I don't see how can be more updated. Actually this script uses less tracking than the Combat Pro one.

Scripts do not reprogram the game, is more like having a robot doing keystrokes and manage events for you, as precise as possible. Less keystrokes always be better, faster and less prone to network issues.


Will try it out again, I think to its something with my code.
With updated I meant the "Builder-Pro" Config, maybe with only one button press after entering building mode, many people requested that. :joia:
User avatar
Silktouch
Sergeant Major
Sergeant Major
 
Posts: 70
Joined: Sat Mar 03, 2018 2:57 pm

Re: KB + XIM + Titan2 - Fortnite Combos

Postby Umby18 » Fri Apr 20, 2018 12:20 pm

HI Mark

I've been working hours on this and read thru all the posts numerous times and think I am real close but just cant get it to work.
Xbox1 + Nav Controller + G502 Mouse
I saved this following script into slot 1 on the Titan 2.
I saved the IT into slot 1 on Titan 2
I compiled it with no errors.

Code: Select all
#pragma METAINFO("<Mark>", 1, 0, "Fortnite Builder")
 
#ifndef PS3NAV_GPH_
#define PS3NAV_GPH_
 
#include <keyboard.gph>
#include <display.gph>
#include "light_k.gph"
#include <mouse.gph>
#include <ps3.gph>
#define Reset BUTTON_14 //manual reset of tracking (pickaxe)
#define Wall (KEY_B)
#define Floor (KEY_N)
#define Stair (KEY_J)
#define RB (MOUSE_WHEEL)
#define Build (KEY_END)
#define Fire (MBUTTON_1)
#define ADS (KEY_SPACEBAR)
#define InitailEnd_Wait 30
#define SameButton_Wait 60
#define GenericBetweenButton_Wait 60
 
fix32 minv2 = 23.00*23.00 ; //  adjust so resting position never register.
 
//mode and tracker
int mode;
int NavState;
 
//building hotkeys and tracker
int LastPieceBuild; // 0 = NULL | 1 = Wall | 2 = Floor | 3 = Stair |
 
main {
 
    mouse_passthru();
    key_passthru();
 
//------------------------------------------------------------------------------
//NAV MAPPING
 
    if (get_actual(PS3_UP)) { key_set(KEY_UPARROW,1);}
    if (get_actual(PS3_L1)) { key_set(KEY_P,1); }
    if (get_actual(PS3_L2)) { key_set(KEY_SPACEBAR,1); }
    if (get_actual(PS3_L3)) { key_set(KEY_LEFTSHIFT,1); }
    if (get_actual(PS3_PS)) { key_set(KEY_ESCAPE,1); }
    if (get_actual(PS3_DOWN)) { key_set(KEY_DOWNARROW  ,1); }
    if (get_actual(PS3_LEFT)) { key_set(KEY_LEFTARROW  ,1); }
    if (get_actual(PS3_RIGHT)) { key_set(KEY_RIGHTARROW  ,1); }
    if (get_actual(PS3_UP)) { key_set(KEY_UPARROW,1);}
    if (get_actual(PS3_CIRCLE)) { key_set(KEY_H,1);}
    if (get_actual(PS3_CROSS)) { key_set(KEY_G,1);}
    if (get_actual(PS3_SELECT)) { key_set(KEY_V,1);}
    if (get_actual(PS3_TRIANGLE)) { key_set(KEY_Y,1);}
 
    if (get_actual(STICK_2_X)||get_actual(STICK_2_Y)) {
            set_val(STICK_2_X,0);
            set_val(STICK_2_Y,0);
            WASD(STICK_2_X,STICK_2_Y);
            }
 
//------------------------------------------------------------------------------
//MODE TRACKING
 
    if (mode == 0) {
        set_light('G');
        }
 
    if (mode == 1) {
        set_light('R');
        }
 
    if (mode > 1) {
        mode = 0;}
 
    if ((event_release(BUTTON_15)) && (mode == 0)){
            mode = 1; //building mode
            }
 
    else if (event_release(BUTTON_15) && (mode == 1)) {
            mode = 0; //combat mode
            }
 
    if ((event_release(BUTTON_14)) && (mode == 1)) {
        mode = 0; //building mode to axe
        }
 
//------------------------------------------------------------------------------
//TRACKER RESETS
 
    //manual tracker reset to pickaxe
    if (event_active(Reset)) {
        mode = 0;
    }
 
    //Since B is cancel as well as enter building mode, need to reset tracker if using to cancel out of xbox menu, inventory, game menu, emotes
    if (event_release (BUTTON_1) || event_release (BUTTON_3) || event_release (BUTTON_10) || event_release (BUTTON_11) || event_release (BUTTON_13)) {
        NavState = 1;}
 
    // Pressing B to cancel resets
    if (event_release (BUTTON_15) && NavState) {
        mode = mode + 1;
        NavState = 0;}
 
///------------------------------------------------------------------------------
// LOAD-OUTS
 
    if(key_status(Wall)){
        if(mode == 0){ //is on Combat Mode
            combo_run(BuildWall); //build the first new wall       
        }
        else
            if((mode == 1) && (LastPieceBuild != 1)){ //if last piece is not a Wall, double tap RT
                combo_run(RT2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 1)){ // if last piece as wall, turbo mode on
                    combo_run(RT1);
                }
    }
 
    if(key_status(Floor)){
        if(mode == 0){
            combo_run(BuildFloor);         
        }
        else
            if((mode == 1) && (LastPieceBuild != 2)){
                combo_run(RB2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 2)){
                    combo_run(RB1);
                }
    }
 
    if(key_status(Stair)){
        if(mode == 0){
            combo_run(BuildStair);     
        }
        else
            if((mode == 1) && (LastPieceBuild != 3)){
                combo_run(ADS2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 3)){
                    combo_run(ADS1);
                }
    }
 
    //turbo build using Fire
    if((mode == 1) && (LastPieceBuild > 0 ) && mouse_status(Fire)){
        mouse_set(Fire, 0);
        if (LastPieceBuild == 1) combo_run (RT1);
            else if (LastPieceBuild == 2) combo_run(RB1);
                else combo_run(ADS1);
    }
 
//------------------------------------------------------------------------------
//LED                   
        if (mode == 1){           
        switch(LastPieceBuild) {
              //  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;
            }
        }
 
        if (mode == 0) {
            display_overlay(_0_, 2000); }   
} // main
 
combo BuildWall {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 1;
}
 
combo BuildFloor {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 2;
}
 
combo BuildStair {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 3;
}
 
combo RT2 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB2 {
    wait(InitailEnd_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS2 {
    wait(InitailEnd_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo ADS3 {
    wait(InitailEnd_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo RT1 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB1 {
    wait(InitailEnd_Wait);
    mouse_set(RB, -1);
    wait(SameButton_Wait);
    mouse_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS1 {
    wait(InitailEnd_Wait);
    key_set(ADS, 1);
    wait(SameButton_Wait);
    key_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
void WASD(uint8 io_x, uint8 io_y){
    fix32 rx = get_actual(io_x) ;
    fix32 ry = get_actual(io_y) ;
    fix32 ovl = 10.00;   // 20 degrees overlap so diagonals movement also register
 
    fix32 angle = atan2(ry,rx) * 180.00 / PI;
    fix32 radius2 = rx*rx + ry*ry ;
 
    if ( radius2 >= minv2 ) {
 
        //W
        if ( angle < (-45.00+ovl)  && angle > (-135.00-ovl) ) { key_set(KEY_W,1);}
 
        //A
        if ( abs(angle) > (135.00-ovl) ) { key_set(KEY_A,1);}
 
        //S
        if ( angle > (45.00-ovl)  && angle < (135.00+ovl) ) { key_set(KEY_S,1);}
 
        //D
        if (abs(angle) < (45.00+ovl) ) { key_set(KEY_D,1);}
    }
 
 
    return;
}
 
#endif



I then plug Nav and G502 into T2. T2 into slot 2 on Apex Hub. XBox controller into slot 1 on Apex Hub. Apex Hub into Apex. Apex into Console.

When I push the side buttons on the mouse that I have assigned to build pieces, the display on the TItan2 does change b/t 1, 2 and 3 and red light comes on.

The output light on Titan 2 does not light up, and Apex Manager does not recognize Titan 2. No Nav or Mouse actions make it through to the Apex.

Any thoughts would be appreciated.
Thanks!
Last edited by Umby18 on Fri Apr 20, 2018 12:50 pm, edited 1 time in total.
User avatar
Umby18
Sergeant
Sergeant
 
Posts: 7
Joined: Sat Apr 14, 2018 8:52 pm

Re: KB + XIM + Titan2 - Fortnite Combos

Postby Silktouch » Fri Apr 20, 2018 12:21 pm

So I tried more today and now I know the big problems that I have with this new "builder-pro" setup:

1. In nearly 90% I cant edit my buildings, rarely, I dont know why, I can easily select my pieces (the blue pieces in edit mode), but in most of the time nothing happens when I click the blue boxes. One time I was able to edit my wall, but stairs its just not possible, its same I dont click the boxes.

2. Editing is one big point for me too that leads to tracking errors, sometimes I left editing mode and after quit building mode but my T2 thinks im still in BM.

I know Alan dont play that much, maybe it never happens to him. But MAL, I think you play more then him, this ever happened to you? I hope no, because then its only a code thing, but I dont know what, because I changed nothing.

Here is my code:
Code: Select all
#pragma METAINFO("<MAL APEX + T2", 1, 0, "")
 
#include <keyboard.gph>
#include <display.gph>
#include "light_k.gph"
#include <mouse.gph>
 
#define Reset BUTTON_14 //manual reset of tracking (pickaxe)
#define Wall (KEY_Y)
#define Floor (KEY_U)
#define Stair (KEY_I)
#define RB (KEY_E)
#define Build (KEY_F)
#define Fire (MBUTTON_1)
#define ADS (MBUTTON_2)
#define InitailEnd_Wait 40
#define SameButton_Wait 80
#define GenericBetweenButton_Wait 80
 
 
fix32 minv2 = 23.00*23.00 ; //  adjust so resting position never register.
 
//mode and tracker
int mode;
int NavState;
 
//building hotkeys and tracker
int LastPieceBuild; // 0 = NULL | 1 = Wall | 2 = Floor | 3 = Stair |
 
 init {
 
 
//------------------------------------------------------------------------------
// KEYBOARD BINDINGS
      const uint8 map[] = {
 
        MOUSE_X,            STICK_1_X,
        MOUSE_Y,            STICK_1_Y,
 
      };
 
       const uint8 map2[] = {
 
        KEY_W,                STICK_2_Y | KEYMAP_NEGATIVE,
        KEY_A,                STICK_2_X | KEYMAP_NEGATIVE,
        KEY_S,                STICK_2_Y,
        KEY_D,                STICK_2_X,
        KEY_ESCAPE,           BUTTON_3, // XBOX
        KEY_TAB,              BUTTON_10, // VIEW
        KEY_F12,              BUTTON_1,
        KEY_PAUSE,              BUTTON_11,
 
//                            BUTTON_3, // MENU
//                            BUTTON_4, // RB
//                            BUTTON_5, // RT
//        KEY_C,                BUTTON_6, // RS
//                            BUTTON_7, // LB
//                                BUTTON_8, // LT
        KEY_LEFTSHIFT,        BUTTON_9, // LS
//        KEY_CAPSLOCK,         BUTTON_10, // UP
        KEY_DOWNARROW,          BUTTON_11, // DOWN
        KEY_UPARROW,          BUTTON_2,
        KEY_LEFTARROW,          BUTTON_12,
        KEY_RIGHTARROW,          BUTTON_13,
//                              BUTTON_12, // LEFT
//                             BUTTON_13, // RIGHT
        KEY_R,                     BUTTON_17,
      KEY_K,                     BUTTON_14,
     KEY_F,                     BUTTON_15,
      KEY_Q,                     BUTTON_7,
        KEY_E,                     BUTTON_4,
      // Y
 
//                              BUTTON_15, // B
        KEY_SPACEBAR,         BUTTON_16, // A
        KEY_LEFTCONTROL,      BUTTON_6, // X
 
 
 
 
       };
 
    keymapping(map2);
    mousemapping(map);
 
}   
 
 
main {
 
    mouse_passthru();
    key_passthru();
 
 if(key_status(KEY_1)) {
        combo_run(dance1);
    }
    if(key_status(KEY_2)) {
        combo_run(dance2);
    }
    if(key_status(KEY_3)) {
        combo_run(dance3);
    }
    if(key_status(KEY_4)) {
        combo_run(dance4);
    }   
    if(key_status(KEY_5)) {
        combo_run(dance5);
    }
    if(key_status(KEY_6)) {
        combo_run(dance6);
    }
 
//------------------------------------------------------------------------------
//MODE TRACKING
 
    if (mode == 0) {
        set_light('G');
        }
 
    if (mode == 1) {
        set_light('R');
        }
 
    if (mode > 1) {
        mode = 0;}
 
    if ((event_release(BUTTON_15)) && (mode == 0)){
            mode = 1; //building mode
            }
 
    else if (event_release(BUTTON_15) && (mode == 1)) {
            mode = 0; //combat mode
            }
 
    if ((event_release(BUTTON_14)) && (mode == 1)) {
        mode = 0; //building mode to axe
        }
 
//------------------------------------------------------------------------------
//TRACKER RESETS
 
    //manual tracker reset to pickaxe
    if (event_active(Reset)) {
        mode = 0;
    }
 
    //Since B is cancel as well as enter building mode, need to reset tracker if using to cancel out of xbox menu, inventory, game menu, emotes
    if (event_release (BUTTON_1) || event_release (BUTTON_3) || event_release (BUTTON_10) || event_release (BUTTON_11) || event_release (BUTTON_13)) {
        NavState = 1;}
 
    // Pressing B to cancel resets
    if (event_release (BUTTON_15) && NavState) {
        mode = mode + 1;
        NavState = 0;}
 
///------------------------------------------------------------------------------
// LOAD-OUTS
 
    if(key_status(Wall)){
        if(mode == 0){ //is on Combat Mode
            combo_run(BuildWall); //build the first new wall       
        }
        else
            if((mode == 1) && (LastPieceBuild != 1)){ //if last piece is not a Wall, double tap RT
                combo_run(RT2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 1)){ // if last piece as wall, turbo mode on
                    combo_run(RT1);
                }
    }
 
    if(key_status(Floor)){
        if(mode == 0){
            combo_run(BuildFloor);         
        }
        else
            if((mode == 1) && (LastPieceBuild != 2)){
                combo_run(RB2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 2)){
                    combo_run(RB1);
                }
    }
 
    if(key_status(Stair)){
        if(mode == 0){
            combo_run(BuildStair);     
        }
        else
            if((mode == 1) && (LastPieceBuild != 3)){
                combo_run(ADS2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 3)){
                    combo_run(ADS1);
                }
    }
 
    //turbo build using Fire
    if((mode == 1) && (LastPieceBuild > 0 ) && mouse_status(Fire)){
        mouse_set(Fire, 0);
        if (LastPieceBuild == 1) combo_run (RT1);
            else if (LastPieceBuild == 2) combo_run(RB1);
                else combo_run(ADS1);
    }
 
//------------------------------------------------------------------------------
//LED                   
        if (mode == 1){           
        switch(LastPieceBuild) {
              //  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;
            }
        }
 
        if (mode == 0) {
            display_overlay(_0_, 2000); }   
} // main
 
combo BuildWall {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 1;
}
 
combo BuildFloor {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 2;
}
 
combo BuildStair {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 3;
}
 
combo RT2 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB2 {
    wait(InitailEnd_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS2 {
    wait(InitailEnd_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo ADS3 {
    wait(InitailEnd_Wait);
   mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo RT1 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB1 {
    wait(InitailEnd_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS1 {
    wait(InitailEnd_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
 combo dance1 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(160);
 
    mouse_set(MOUSE_Y, -100);
    wait(120);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_Y, 100);
}
 
combo dance2 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_Y, 100);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_Y, -100);
}
 
combo dance3 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, 40);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, -40);
}
 
combo dance4 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, -50);
 
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, 50);
}
 
combo dance5 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, 50);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, -50);
}
 
combo dance6 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, -40);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, 40);
}
 
void WASD(uint8 io_x, uint8 io_y){
    fix32 rx = get_actual(io_x) ;
    fix32 ry = get_actual(io_y) ;
    fix32 ovl = 10.00;   // 20 degrees overlap so diagonals movement also register
 
    fix32 angle = atan2(ry,rx) * 180.00 / PI;
    fix32 radius2 = rx*rx + ry*ry ;
 
    if ( radius2 >= minv2 ) {
 
        //W
        if ( angle < (-45.00+ovl)  && angle > (-135.00-ovl) ) { key_set(KEY_W,1);}
 
        //A
        if ( abs(angle) > (135.00-ovl) ) { key_set(KEY_A,1);}
 
        //S
        if ( angle > (45.00-ovl)  && angle < (135.00+ovl) ) { key_set(KEY_S,1);}
 
        //D
        if (abs(angle) < (45.00+ovl) ) { key_set(KEY_D,1);}
    }
 
 
    return;
}
 
 
 
 
 
 
 


I hope somebody can help me with this, because it feels smoother with building, but with this "bugs" I cant use it (must destroy all my walls, because I cant edit :D)
Cheers
User avatar
Silktouch
Sergeant Major
Sergeant Major
 
Posts: 70
Joined: Sat Mar 03, 2018 2:57 pm

Re: KB + XIM + Titan2 - Fortnite Combos

Postby MAL8010 » Fri Apr 20, 2018 1:00 pm

Silktouch wrote:So I tried more today and now I know the big problems that I have with this new "builder-pro" setup:

1. In nearly 90% I cant edit my buildings, rarely, I dont know why, I can easily select my pieces (the blue pieces in edit mode), but in most of the time nothing happens when I click the blue boxes. One time I was able to edit my wall, but stairs its just not possible, its same I dont click the boxes.

2. Editing is one big point for me too that leads to tracking errors, sometimes I left editing mode and after quit building mode but my T2 thinks im still in BM.

I know Alan dont play that much, maybe it never happens to him. But MAL, I think you play more then him, this ever happened to you? I hope no, because then its only a code thing, but I dont know what, because I changed nothing.

Here is my code:
Code: Select all
#pragma METAINFO("<MAL APEX + T2", 1, 0, "")
 
#include <keyboard.gph>
#include <display.gph>
#include "light_k.gph"
#include <mouse.gph>
 
#define Reset BUTTON_14 //manual reset of tracking (pickaxe)
#define Wall (KEY_Y)
#define Floor (KEY_U)
#define Stair (KEY_I)
#define RB (KEY_E)
#define Build (KEY_F)
#define Fire (MBUTTON_1)
#define ADS (MBUTTON_2)
#define InitailEnd_Wait 40
#define SameButton_Wait 80
#define GenericBetweenButton_Wait 80
 
 
fix32 minv2 = 23.00*23.00 ; //  adjust so resting position never register.
 
//mode and tracker
int mode;
int NavState;
 
//building hotkeys and tracker
int LastPieceBuild; // 0 = NULL | 1 = Wall | 2 = Floor | 3 = Stair |
 
 init {
 
 
//------------------------------------------------------------------------------
// KEYBOARD BINDINGS
      const uint8 map[] = {
 
        MOUSE_X,            STICK_1_X,
        MOUSE_Y,            STICK_1_Y,
 
      };
 
       const uint8 map2[] = {
 
        KEY_W,                STICK_2_Y | KEYMAP_NEGATIVE,
        KEY_A,                STICK_2_X | KEYMAP_NEGATIVE,
        KEY_S,                STICK_2_Y,
        KEY_D,                STICK_2_X,
        KEY_ESCAPE,           BUTTON_3, // XBOX
        KEY_TAB,              BUTTON_10, // VIEW
        KEY_F12,              BUTTON_1,
        KEY_PAUSE,              BUTTON_11,
 
//                            BUTTON_3, // MENU
//                            BUTTON_4, // RB
//                            BUTTON_5, // RT
//        KEY_C,                BUTTON_6, // RS
//                            BUTTON_7, // LB
//                                BUTTON_8, // LT
        KEY_LEFTSHIFT,        BUTTON_9, // LS
//        KEY_CAPSLOCK,         BUTTON_10, // UP
        KEY_DOWNARROW,          BUTTON_11, // DOWN
        KEY_UPARROW,          BUTTON_2,
        KEY_LEFTARROW,          BUTTON_12,
        KEY_RIGHTARROW,          BUTTON_13,
//                              BUTTON_12, // LEFT
//                             BUTTON_13, // RIGHT
        KEY_R,                     BUTTON_17,
      KEY_K,                     BUTTON_14,
     KEY_F,                     BUTTON_15,
      KEY_Q,                     BUTTON_7,
        KEY_E,                     BUTTON_4,
      // Y
 
//                              BUTTON_15, // B
        KEY_SPACEBAR,         BUTTON_16, // A
        KEY_LEFTCONTROL,      BUTTON_6, // X
 
 
 
 
       };
 
    keymapping(map2);
    mousemapping(map);
 
}   
 
 
main {
 
    mouse_passthru();
    key_passthru();
 
 if(key_status(KEY_1)) {
        combo_run(dance1);
    }
    if(key_status(KEY_2)) {
        combo_run(dance2);
    }
    if(key_status(KEY_3)) {
        combo_run(dance3);
    }
    if(key_status(KEY_4)) {
        combo_run(dance4);
    }   
    if(key_status(KEY_5)) {
        combo_run(dance5);
    }
    if(key_status(KEY_6)) {
        combo_run(dance6);
    }
 
//------------------------------------------------------------------------------
//MODE TRACKING
 
    if (mode == 0) {
        set_light('G');
        }
 
    if (mode == 1) {
        set_light('R');
        }
 
    if (mode > 1) {
        mode = 0;}
 
    if ((event_release(BUTTON_15)) && (mode == 0)){
            mode = 1; //building mode
            }
 
    else if (event_release(BUTTON_15) && (mode == 1)) {
            mode = 0; //combat mode
            }
 
    if ((event_release(BUTTON_14)) && (mode == 1)) {
        mode = 0; //building mode to axe
        }
 
//------------------------------------------------------------------------------
//TRACKER RESETS
 
    //manual tracker reset to pickaxe
    if (event_active(Reset)) {
        mode = 0;
    }
 
    //Since B is cancel as well as enter building mode, need to reset tracker if using to cancel out of xbox menu, inventory, game menu, emotes
    if (event_release (BUTTON_1) || event_release (BUTTON_3) || event_release (BUTTON_10) || event_release (BUTTON_11) || event_release (BUTTON_13)) {
        NavState = 1;}
 
    // Pressing B to cancel resets
    if (event_release (BUTTON_15) && NavState) {
        mode = mode + 1;
        NavState = 0;}
 
///------------------------------------------------------------------------------
// LOAD-OUTS
 
    if(key_status(Wall)){
        if(mode == 0){ //is on Combat Mode
            combo_run(BuildWall); //build the first new wall       
        }
        else
            if((mode == 1) && (LastPieceBuild != 1)){ //if last piece is not a Wall, double tap RT
                combo_run(RT2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 1)){ // if last piece as wall, turbo mode on
                    combo_run(RT1);
                }
    }
 
    if(key_status(Floor)){
        if(mode == 0){
            combo_run(BuildFloor);         
        }
        else
            if((mode == 1) && (LastPieceBuild != 2)){
                combo_run(RB2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 2)){
                    combo_run(RB1);
                }
    }
 
    if(key_status(Stair)){
        if(mode == 0){
            combo_run(BuildStair);     
        }
        else
            if((mode == 1) && (LastPieceBuild != 3)){
                combo_run(ADS2);
            }
            else
                if((mode == 1) && (LastPieceBuild == 3)){
                    combo_run(ADS1);
                }
    }
 
    //turbo build using Fire
    if((mode == 1) && (LastPieceBuild > 0 ) && mouse_status(Fire)){
        mouse_set(Fire, 0);
        if (LastPieceBuild == 1) combo_run (RT1);
            else if (LastPieceBuild == 2) combo_run(RB1);
                else combo_run(ADS1);
    }
 
//------------------------------------------------------------------------------
//LED                   
        if (mode == 1){           
        switch(LastPieceBuild) {
              //  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;
            }
        }
 
        if (mode == 0) {
            display_overlay(_0_, 2000); }   
} // main
 
combo BuildWall {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 1;
}
 
combo BuildFloor {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 2;
}
 
combo BuildStair {
    wait(InitailEnd_Wait);
    key_set(Build, 1);
    wait(SameButton_Wait);
    key_set(Build, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    mode = 1;
    LastPieceBuild = 3;
}
 
combo RT2 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB2 {
    wait(InitailEnd_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(GenericBetweenButton_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS2 {
    wait(InitailEnd_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo ADS3 {
    wait(InitailEnd_Wait);
   mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(GenericBetweenButton_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
combo RT1 {
    wait(InitailEnd_Wait);
    mouse_set(Fire, 1);
    wait(SameButton_Wait);
    mouse_set(Fire, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 1;
}
 
combo RB1 {
    wait(InitailEnd_Wait);
    key_set(RB, 1);
    wait(SameButton_Wait);
    key_set(RB, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 2;
}
 
combo ADS1 {
    wait(InitailEnd_Wait);
    mouse_set(ADS, 1);
    wait(SameButton_Wait);
    mouse_set(ADS, 0);
    wait(InitailEnd_Wait);
    LastPieceBuild = 3;
}
 
 combo dance1 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(160);
 
    mouse_set(MOUSE_Y, -100);
    wait(120);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_Y, 100);
}
 
combo dance2 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_Y, 100);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_Y, -100);
}
 
combo dance3 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, 40);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, -40);
}
 
combo dance4 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, -50);
 
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, 50);
}
 
combo dance5 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, 50);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, -50);
}
 
combo dance6 {
    key_set(KEY_DOWNARROW, 1);
    wait(100);
    key_set(KEY_DOWNARROW, 0);
    wait(120);
 
    mouse_set(MOUSE_X, 100);
    mouse_set(MOUSE_Y, -40);
    wait(180);
 
    key_set(KEY_SPACEBAR, 1);
    wait(200);
 
    key_set(KEY_SPACEBAR, 0);
    mouse_set(MOUSE_X, -100);
    mouse_set(MOUSE_Y, 40);
}
 
void WASD(uint8 io_x, uint8 io_y){
    fix32 rx = get_actual(io_x) ;
    fix32 ry = get_actual(io_y) ;
    fix32 ovl = 10.00;   // 20 degrees overlap so diagonals movement also register
 
    fix32 angle = atan2(ry,rx) * 180.00 / PI;
    fix32 radius2 = rx*rx + ry*ry ;
 
    if ( radius2 >= minv2 ) {
 
        //W
        if ( angle < (-45.00+ovl)  && angle > (-135.00-ovl) ) { key_set(KEY_W,1);}
 
        //A
        if ( abs(angle) > (135.00-ovl) ) { key_set(KEY_A,1);}
 
        //S
        if ( angle > (45.00-ovl)  && angle < (135.00+ovl) ) { key_set(KEY_S,1);}
 
        //D
        if (abs(angle) < (45.00+ovl) ) { key_set(KEY_D,1);}
    }
 
 
    return;
}
 
 
 
 
 
 
 


I hope somebody can help me with this, because it feels smoother with building, but with this "bugs" I cant use it (must destroy all my walls, because I cant edit :D)
Cheers


I do recall having issues with editing too but forgot about it.

Thinking about it, it will be because of the turbo building code

Code: Select all
//turbo build using Fire
    if((mode == 1) && (LastPieceBuild > 0 ) && mouse_status(Fire)){
        mouse_set(Fire, 0);
        if (LastPieceBuild == 1) combo_run (RT1);
            else if (LastPieceBuild == 2) combo_run(RB1);
                else combo_run(ADS1);
    }


When you edit a structure you press the build button and then RT to highlight - which is triggering the turbo build code above. I think the workaround is to reset LastPieceBuild whenever you exit build mode and thus when you press edit it won't trigger the above. I can't implement and test until later tonight.
User avatar
MAL8010
Sergeant Major of the Army
Sergeant Major of the Army
 
Posts: 263
Joined: Sun Feb 05, 2017 3:12 pm

PreviousNext

Return to GPC2 Script Programming

Who is online

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