Logitech G13 startup guide

Gtuner IV general support. Operation, questions, updates, feature request.

Re: Logitech G13 startup guide

Postby [redacted] » Thu Mar 01, 2018 8:57 am

Ok fellas, I've made some headway on the coding after several hours of headaches. So far, I've taken the G13 header file and mapped the buttons to a layout of my liking for the PS4. The real problem was getting the mouse set up correctly, however I did manage to alt-export (finally) and got the mouse working the way I want it to. That part took me the longest thus far, bear in mind I'm new to all of this.

Here's my current G13.gph:
Code: Select all
#ifndef G13
#define G13
#define init                    init
#define main                    main
#include <remapper.gph>
#include <keyboard.gph>
#include <mouse.gph>
const uint8 mapG13[] = {
    RMP_USB_D,
//     RMP_USB_A, // For test uncomment this line and comment previous
    BUTTON_1ACCEL_2_ZBUTTON_12, BUTTON_10BUTTON_13ACCEL_2_ZBUTTON_3,
    BUTTON_2BUTTON_14BUTTON_7, BUTTON_4, BUTTON_15, BUTTON_17, ACCEL_2_Z,
    BUTTON_9, ACCEL_2_Z, ACCEL_2_Z, BUTTON_16, BUTTON_6, ACCEL_2_Z, ACCEL_2_Z,
    POINT_1_Y, ACCEL_2_Z, STICK_2_X, STICK_2_Y,
    POINT_1_X, ACCEL_2_Z, BUTTON_9, POINT_2_Y,
    ACCEL_2_Z, ACCEL_2_Z, ACCEL_2_Z, ACCEL_2_Z, ACCEL_2_Z, ACCEL_2_Z,
    BUTTON_2BUTTON_1BUTTON_4
//     original line
//     RMP_USB_A,
//     BUTTON_1,  BUTTON_2,  BUTTON_3,  BUTTON_4,  BUTTON_5,  BUTTON_6,  BUTTON_7,
//     BUTTON_8,  BUTTON_9,  BUTTON_10, BUTTON_11, BUTTON_12, BUTTON_13, BUTTON_14,
//     BUTTON_15, BUTTON_16, BUTTON_17, BUTTON_18, BUTTON_19, BUTTON_20, BUTTON_21,
//     STICK_1_X, STICK_1_Y, STICK_2_X, STICK_2_Y,
//     POINT_1_X, POINT_1_Y, POINT_2_X, POINT_2_Y,
//     ACCEL_1_X, ACCEL_1_Y, ACCEL_1_Z, ACCEL_2_X, ACCEL_2_Y, ACCEL_2_Z,
//     GYRO_1_X,  GYRO_1_Y,  GYRO_1_Z
};
// !!!!!!! Remapper don't support and can't be used with input translator
// So This:
// Needed for support mouse (G-502 example with mapped keys on it buttons)
const uint8 mmap[] = {
    MOUSE_X,            STICK_1_X,
    MOUSE_Y,            STICK_1_Y,
    MWHEEL_FORWARD,     BUTTON_10,
    MWHEEL_BACKWARD,    BUTTON_11,
    MBUTTON_1,          BUTTON_5,
    MBUTTON_2,          BUTTON_8,
    MBUTTON_3,          BUTTON_6,
    };
const uint8 map[] = {
    KEY_R,             BUTTON_3,
    KEY_L,             BUTTON_14,
    KEY_O,             BUTTON_17,
    KEY_K,             BUTTON_15,
    KEY_P,             BUTTON_16,
    };
 
init{
    remapper(mapG13);
    mousemapping(mmap);
    keymapping(map);
 
/* ORIGINAL MOUSE CONFIG
// Mouse XY Converter
const uint8 mxyconfig[] = {
    0x07, 0x01, 0x4C, 0x01, 0x0C, 0x00, 0x26, 0x15, 0x00, 0x15, 0x00, 0x00,
    0xFC, 0x00, 0x1B, 0x27, 0x2E, 0x34, 0x38, 0x3C, 0x3E, 0x40, 0x42, 0x44,
    0x46, 0x47, 0x48, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x4F, 0x01, 0x00,
    0x01, 0x0C, 0x00, 0x33, 0x14, 0x00, 0x14, 0x00, 0x00, 0xFC, 0x00, 0x18,
    0x23, 0x2B, 0x31, 0x35, 0x38, 0x3B, 0x3D, 0x40, 0x41, 0x43, 0x44, 0x46,
    0x47, 0x48, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E
    };
    mxyconverter(mxyconfig);
// End Mouse XY Converter
}
*/

// Mouse XY Converter
const uint8 mxyconfig[] = {
    0x07, 0x01, 0x85, 0x01, 0x94, 0x00, 0x00, 0x0F, 0x80, 0x10, 0x80, 0x00,
    0xE8, 0x00, 0x0E, 0x16, 0x1B, 0x20, 0x25, 0x29, 0x2D, 0x31, 0x34, 0x38,
    0x3B, 0x3E, 0x41, 0x44, 0x47, 0x4A, 0x4D, 0x50, 0x53, 0x55, 0x01, 0x00,
    0x01, 0x94, 0x00, 0x00, 0x0F, 0x80, 0x10, 0x80, 0x00, 0xE8, 0x00, 0x0E,
    0x16, 0x1B, 0x20, 0x25, 0x29, 0x2D, 0x31, 0x34, 0x38, 0x3B, 0x3E, 0x41,
    0x44, 0x47, 0x4A, 0x4D, 0x50, 0x53, 0x55
    };
    mxyconverter(mxyconfig);
// End Mouse XY Converter
}
 
main{
    if (get_val(BUTTON_20)){
        set_val(BUTTON_20,0);set_val(STICK_2_X,-100);
    }
    if (get_val(ACCEL_2_X)){
        set_val(ACCEL_2_X,0);set_val(STICK_2_X,100);
    }
//     if (vechicle == 0){
    if (get_val(BUTTON_21)){
        set_val(BUTTON_21,0);set_val(STICK_2_Y,-100);
    }
    if (get_val(ACCEL_2_Y)){
        set_val(ACCEL_2_Y,0);set_val(STICK_2_Y,100);
    }
}
 
#endif /* G13 */


So now in it's current configuration I have it working with Fortnite PS4 pretty smoothly, however I'm still lost and hoping someone could help shed some light on my problems. The issue I'm having is, when I play on PC, this is the button layout I currently use on my G13:
Image

This obviously doesn't directly correspond to my current configuration of the G13 header file mappings as those are for PS4 buttons and not actual keys. The script I'm trying to use is the one created by MAL8010 for Fortnite:
Code: Select all
#pragma METAINFO("<Mark>", 1, 0, "FORTNITE KEYBOARD COMBO 2.0") 
 
#include <keyboard.gph>
#include <display.gph>
#include "light_k.gph"
#include "G13.gph"
#define Reset BUTTON_13 //manual reset of tracking (right arrow)
#define Double_Pump BUTTON_12 //Double Pump activate (left arrow)
 
//mode and tracker
int mode;
int bldvalue;
int wpnvalue;
int NavState;
bool event_active_b;
bool event_active_n;
bool event_active_f;
bool event_active_x;
 
//building hotkeys and tracker
int bldslottrack=1;
int wpnslottrack=1;
int tempWST;
int tempAxe;
int wpndirectslottrack=1;
 
init {
/*
//------------------------------------------------------------------------------
// KEYBOARD BINDINGS
 
    // Load Keyboard Mapping
    const uint8 map[] = {
        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_1, // XBOX
        KEY_TAB,              BUTTON_2, // VIEW
//                            BUTTON_3, // MENU
//                            BUTTON_4, // RB
//                            BUTTON_5, // RT
//                            BUTTON_6, // RS
//                            BUTTON_7, // LB
//                                BUTTON_8, // LT
        KEY_LEFTSHIFT,        BUTTON_9, // LS
        KEY_CAPSLOCK,         BUTTON_10, // UP
        KEY_DOWNARROW,          BUTTON_11, // DOWN
//                              BUTTON_12, // LEFT
//                                BUTTON_13, // RIGHT
//                            BUTTON_14, // Y
//                            BUTTON_15, // B
        KEY_SPACEBAR,         BUTTON_16, // A
//                              BUTTON_17, // X
    };
 */

    keymapping(map);
}   
 
main {
 
//------------------------------------------------------------------------------
//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) && (tempAxe == 0) && (wpnslottrack > 0)){
            mode = 1; //building mode
            tempWST = 1;
            }
 
    else if ((event_release(BUTTON_15)) && (mode == 1)&& (tempAxe == 0)) {
            mode = 0; //combat mode
            bldslottrack = 1; //building always resets to slot 1, weapons to last occupied slot
            }
 
    if (event_release(BUTTON_15) && (mode == 0) && (tempAxe == 1) && (tempWST == 0)) {
        mode = 1;
        bldslottrack = 1;
        tempWST = 1;
        tempAxe = 1;
        }
 
    else if (event_release(BUTTON_15) && (mode == 1) && (tempWST == 1) && (tempAxe == 1)) {
        mode = 0;
        wpnslottrack = 0;
        bldslottrack = 1;
        tempWST = 0;
        tempAxe = 0;
        }
 
//------------------------------------------------------------------------------
//BUILDING AND WEAPON SLOT TRACKING
 
    //Weapon to axe back to weapon via Y
    if ((event_release(BUTTON_14)) && (mode == 0) && (tempWST == 1) && (wpnslottrack > 0)) {
        tempWST = 0;
        wpnslottrack = wpnslottrack;
        wpndirectslottrack = 0;
        }
 
    else if ((event_release(BUTTON_14)) && (mode == 0) && (tempWST == 0) && (wpnslottrack > 0)) {
        tempWST = 1;
        wpnslottrack = wpnslottrack;
        wpndirectslottrack = wpnslottrack;
    }
 
    //Axe back to weapon via RB
    if ((event_release(BUTTON_4)) && (mode == 0) && (tempWST == 0) && (wpnslottrack > 0)) {
          wpnslottrack = wpnslottrack;
          tempWST = 1;
        }
 
        //normal RB weapon slot tracking
        else if ((event_release(BUTTON_4)) && (mode == 0) && (tempWST == 1) && (wpnslottrack > 0)) {
            wpnslottrack = wpnslottrack + 1;
            if (wpnslottrack > 5) {
                wpnslottrack = 1;
            }
        }
 
    //Axe back to weapon via LB   
    if ((event_release(BUTTON_7)) && (mode == 0) && (tempWST == 0) && (wpnslottrack > 0)) {
          wpnslottrack = wpnslottrack;
          tempWST = 1;    `
        }   
 
        //normal LB weapon slot tracking
        else if ((event_release(BUTTON_7)) && (mode == 0) && (tempWST == 1) && (wpnslottrack > 0)) {
            wpnslottrack = wpnslottrack - 1;
            if (wpnslottrack < 1) {
            wpnslottrack = 5;
            }
        }
 
    //Building to axe - has to return to slot 1
    if ((event_release(BUTTON_14)) && (mode == 1) && tempWST == 1) {
        tempWST = 0;
        mode = 0;
        tempAxe = 1;
        wpnslottrack = wpnslottrack;
        bldslottrack = 1;
        wpndirectslottrack = 0;
        }
 
    if ((event_release(BUTTON_4)) && (mode == 1)) {
        bldslottrack = bldslottrack + 1;
            if (bldslottrack > 4) {
                bldslottrack = 1;
            }
        }
 
    if ((event_release(BUTTON_7)) && (mode == 1)) {
        bldslottrack = bldslottrack - 1;
            if (bldslottrack < 1) {
                bldslottrack = 4;
            }
        }
 
    //Unique scenario when B to Axe to B to W combination which goes back to Axe state   
    if ((event_release(BUTTON_7)) && (mode == 0) && (tempWST == 0) && (wpnslottrack == 0)) {
          wpnslottrack = 5;
          tempWST = 1;    `
        }   
 
    if ((event_release(BUTTON_4)) && (mode == 0) && (tempWST == 0) && (wpnslottrack == 0)) {
          wpnslottrack = 1;
          tempWST = 1;    `
        }   
 
    if ((event_release(BUTTON_14)) && (mode == 0) && (tempWST == 0) && (wpnslottrack == 0)) {
          wpnslottrack = 1;
          tempWST = 1;    `
        }   
 
//------------------------------------------------------------------------------
//TRACKER RESETS
 
    //manual tracker reset to weapon mode slot1
    if (event_active(Reset)) {
        mode = 0;
        bldslottrack = 1;
        wpnslottrack = 1;
        tempWST = 1;
        tempAxe = 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)) {
        NavState = 1;}
 
    // Pressing B to cancel resets
    if (event_release (BUTTON_15) && NavState) {
        mode = mode + 1;
        NavState = 0;}
 
//------------------------------------------------------------------------------
//DOUBLE PUMP
 
    if (event_release(Double_Pump)){
        combo_run (DoublePumpShotguns);
        set_val(Double_Pump, 0.0);
    }
 
//------------------------------------------------------------------------------
// KEYCODE
 
    // Output the key code of pressed keys
    output_keycode();   
 
//------------------------------------------------------------------------------
// LOAD-OUTS
 
   // B = WALL, F = FLOOR, N = STAIRS, X = DIAMOND
   // Weapon Slots are 1-5
   // T = Change Mats
 
       if(key_status(KEY_B)) {
            bldvalue = 1 -  bldslottrack;
            if(!event_active_b) {
                event_active_b = TRUE;
                if (mode == 0){ //weapons or pickaxe to wall
                    combo_run (BuildWall);
                }     else if ((mode == 1) && (bldvalue == 0)) { //already have wall selected
                        combo_run (RT);}
                    else { //moving from building slots 2,3,4 to wall
                        if (bldvalue == -1) {
                            combo_run (QLB1);
                            bldslottrack = 1;}
                        if (bldvalue == -2) {
                            combo_run (QLB2);
                            bldslottrack = 1;}
                        if (bldvalue == -3) {
                            combo_run (QRB1);
                            bldslottrack = 1;}
                    }
                }
        } else event_active_b = FALSE;
 
        if(key_status(KEY_F))  {
                bldvalue = 2 -  bldslottrack;
                if(!event_active_f) {
                    event_active_f = TRUE;
                    if (mode == 0){
                        combo_run (BuildFloor);
                    }    else if    ((mode == 1) && (bldvalue == 0)) {
                            combo_run (RT);}
                        else {   
                            if (bldvalue == 1) {
                                combo_run (QRB1);
                                bldslottrack = 2;}
                            if (bldvalue == -1) {
                                combo_run (QLB1);
                                bldslottrack = 2;}
                            if (bldvalue == -2) {
                                combo_run (QLB2);
                                bldslottrack = 2;}
                    }
                }
        } else event_active_f = FALSE;   
 
        if(key_status(KEY_N))    { 
                bldvalue = 3 -  bldslottrack;
                if(!event_active_n) {
                    event_active_n = TRUE;
                    if (mode == 0){
                        combo_run (BuildStair);
                    } else if ((mode == 1) && (bldvalue == 0)) {
                        combo_run (RT);}
                      else {
                          if (bldvalue == 2) {
                              combo_run (QLB2);
                              bldslottrack = 3;}
                          if (bldvalue == 1) {
                              combo_run (QRB1);
                              bldslottrack = 3;}
                          if (bldvalue == -1) {
                              combo_run (QLB1);
                              bldslottrack = 3;}
                    }
                }
        } else event_active_n = FALSE;   
 
         if(key_status(KEY_X)) {
                bldvalue = 4 -  bldslottrack;
                if(!event_active_x) {
                    event_active_x = TRUE;
                    if (mode == 0){
                        combo_run (BuildDiamond);
                    } else if ((mode == 1) && (bldvalue == 0)) {   
                        combo_run (RT);}
                      else {
                          if (bldvalue == 3) {
                              combo_run (QLB1);
                              bldslottrack = 4;}
                          if (bldvalue == 1) {
                              combo_run (QRB1);
                              bldslottrack = 4;}
                          if (bldvalue == 2) {
                              combo_run (QRB2);
                              bldslottrack = 4;}
                    }
                }
        } else event_active_x = FALSE;   
 
        if(key_status(KEY_T))    {
                if(mode == 0){
                    combo_run (ChangeMat);}
                else if (mode == 1){
                    combo_run (ChangeMat2);}
                }
 
        if(key_status(KEY_Q))    {
                if((mode == 0) && (wpndirectslottrack > 0)) {
                    wpnvalue = 1 - wpnslottrack;
                    if (wpnvalue == -1) {
                        combo_run (LB1);
                        wpnslottrack = 1;}
                    if (wpnvalue == -2) {
                        combo_run (LB2);
                        wpnslottrack = 1;}
                    if (wpnvalue == -3) {
                        combo_run (RB2);
                        wpnslottrack = 1;}
                    if (wpnvalue == -4) {
                        combo_run (RB1);
                        wpnslottrack = 1;}
                    }
 
                else if ((mode == 0) && (wpndirectslottrack == 0)) {   
                    wpnvalue = wpnslottrack;
                    tempWST = 1;
                    wpndirectslottrack = 1;
                        if (wpnvalue == 1) {
                        combo_run (RB1);
                        wpnslottrack = 1;}
                        if (wpnvalue == 2) {
                        combo_run (LB2);
                        wpnslottrack = 1;}
                        if (wpnvalue == 3) {
                        combo_run (LB3);
                        wpnslottrack = 1;}
                        if (wpnvalue == 4) {
                        combo_run (RB3);
                        wpnslottrack = 1;}
                        if (wpnvalue == 5) {
                        combo_run (RB2);
                        wpnslottrack = 1;}
                    }
 
                else if (mode == 1){
                    mode = 0;
                    wpnvalue = 1 - wpnslottrack;
                    if (wpnvalue == -1) {
                        combo_run (W_LB1);
                        wpnslottrack = 1;}
                    if (wpnvalue == -2) {
                        combo_run (W_LB2);
                        wpnslottrack = 1;}
                    if (wpnvalue == -3) {
                        combo_run (W_RB2);
                        wpnslottrack = 1;}
                    if (wpnvalue == -4) {
                        combo_run (W_RB1);
                        wpnslottrack = 1;}
                    if (wpnvalue == 0) {
                        combo_run (Mode_Change);
                        wpnslottrack = 1;}
                    }
                }
 
        if(key_status(KEY_R))    {
                if((mode == 0) && (wpndirectslottrack > 0)) {
                    wpnvalue = 2 - wpnslottrack;
                    if (wpnvalue == -1) {
                        combo_run (LB1);
                        wpnslottrack = 2;}
                    if (wpnvalue == -2) {
                        combo_run (LB2);
                        wpnslottrack = 2;}
                    if (wpnvalue == -3) {
                        combo_run (RB2);
                        wpnslottrack = 2;}
                    if (wpnvalue == 1) {
                        combo_run (RB1);
                        wpnslottrack = 2;}
                    }
 
                else if ((mode == 0) && (wpndirectslottrack == 0)) {   
                    wpnvalue = wpnslottrack;
                    tempWST = 1;
                    wpndirectslottrack = 1;
                        if (wpnvalue == 1) {
                        combo_run (RB2);
                        wpnslottrack = 2;}
                        if (wpnvalue == 2) {
                        combo_run (RB1);
                        wpnslottrack = 2;}
                        if (wpnvalue == 3) {
                        combo_run (LB2);
                        wpnslottrack = 2;}
                        if (wpnvalue == 4) {
                        combo_run (LB3);
                        wpnslottrack = 2;}
                        if (wpnvalue == 5) {
                        combo_run (RB3);
                        wpnslottrack = 2;}
                        }
 
                else if (mode == 1){
                    mode = 0;
                    wpnvalue = 2 - wpnslottrack;
                    if (wpnvalue == -1) {
                        combo_run (W_LB1);
                        wpnslottrack = 2;}
                    if (wpnvalue == -2) {
                        combo_run (W_LB2);
                        wpnslottrack = 2;}
                    if (wpnvalue == -3) {
                        combo_run (W_RB2);
                        wpnslottrack = 2;}
                    if (wpnvalue == 1) {
                        combo_run (W_RB1);
                        wpnslottrack = 2;}
                    if (wpnvalue == 0) {
                        combo_run (Mode_Change);
                        wpnslottrack = 2;}
                    }
                }
 
        if(key_status(KEY_3))    {
                if((mode == 0) && (wpndirectslottrack > 0)){
                    wpnvalue = 3 - wpnslottrack;
                    if (wpnvalue == -1) {
                        combo_run (LB1);
                        wpnslottrack = 3;}
                    if (wpnvalue == -2) {
                        combo_run (LB2);
                        wpnslottrack = 3;}
                    if (wpnvalue == 2) {
                        combo_run (RB2);
                        wpnslottrack = 3;}
                    if (wpnvalue == 1) {
                        combo_run (RB1);
                        wpnslottrack = 3;}
                    }
 
                else if ((mode == 0) && (wpndirectslottrack == 0)) {   
                    wpnvalue = wpnslottrack;
                    tempWST = 1;
                    wpndirectslottrack = 1;
                        if (wpnvalue == 1) {
                        combo_run (RB3);
                        wpnslottrack = 3;}
                        if (wpnvalue == 2) {
                        combo_run (RB2);
                        wpnslottrack = 3;}
                        if (wpnvalue == 3) {
                        combo_run (RB1);
                        wpnslottrack = 3;}
                        if (wpnvalue == 4) {
                        combo_run (LB2);
                        wpnslottrack = 3;}
                        if (wpnvalue == 5) {
                        combo_run (LB3);
                        wpnslottrack = 3;}
                        }
                else if (mode == 1){
                    mode = 0;
                    wpnvalue = 3 - wpnslottrack;
                    if (wpnvalue == -1) {
                        combo_run (W_LB1);
                        wpnslottrack = 3;}
                    if (wpnvalue == -2) {
                        combo_run (W_LB2);
                        wpnslottrack = 3;}
                    if (wpnvalue == 2) {
                        combo_run (W_RB2);
                        wpnslottrack = 3;}
                    if (wpnvalue == 1) {
                        combo_run (W_RB1);
                        wpnslottrack = 3;}
                    if (wpnvalue == 0) {
                        combo_run (Mode_Change);
                        wpnslottrack = 3;}
                    }
                }
 
        if(key_status(KEY_4))    {
                if((mode == 0) && (wpndirectslottrack > 0)){
                    wpnvalue = 4 - wpnslottrack;
                    if (wpnvalue == -1) {
                        combo_run (LB1);
                        wpnslottrack = 4;}
                    if (wpnvalue == 3) {
                        combo_run (LB2);
                        wpnslottrack = 4;}
                    if (wpnvalue == 2) {
                        combo_run (RB2);
                        wpnslottrack = 4;}
                    if (wpnvalue == 1) {
                        combo_run (RB1);
                        wpnslottrack = 4;}
                    }
 
                else if ((mode == 0) && (wpndirectslottrack == 0)) {   
                    wpnvalue = wpnslottrack;
                    tempWST = 1;
                    wpndirectslottrack = 1;
                        if (wpnvalue == 1) {
                        combo_run (LB3);
                        wpnslottrack = 4;}
                        if (wpnvalue == 2) {
                        combo_run (RB3);
                        wpnslottrack = 4;}
                        if (wpnvalue == 3) {
                        combo_run (RB2);
                        wpnslottrack = 4;}
                        if (wpnvalue == 4) {
                        combo_run (RB1);
                        wpnslottrack =4;}
                        if (wpnvalue == 5) {
                        combo_run (LB2);
                        wpnslottrack = 4;}
                        }
 
                else if (mode == 1){
                    mode = 0;
                    wpnvalue = 4 - wpnslottrack;
                    if (wpnvalue == -1) {
                        combo_run (W_LB1);
                        wpnslottrack = 4;}
                    if (wpnvalue == 3) {
                        combo_run (W_LB2);
                        wpnslottrack = 4;}
                    if (wpnvalue == 2) {
                        combo_run (W_RB2);
                        wpnslottrack = 4;}
                    if (wpnvalue == 1) {
                        combo_run (W_RB1);
                        wpnslottrack = 4;}
                    if (wpnvalue == 0) {
                        combo_run (Mode_Change);
                        wpnslottrack = 4;}
                    }
                }
 
        if(key_status(KEY_5))    {
                if((mode == 0) && (wpndirectslottrack > 0)){
                    wpnvalue = 5 - wpnslottrack;
                    if (wpnvalue == 4) {
                        combo_run (LB1);
                        wpnslottrack = 5;}
                    if (wpnvalue == 3) {
                        combo_run (LB2);
                        wpnslottrack = 5;}
                    if (wpnvalue == 2) {
                        combo_run (RB2);
                        wpnslottrack = 5;}
                    if (wpnvalue == 1) {
                        combo_run (RB1);
                        wpnslottrack = 5;}
                    }
 
                else if ((mode == 0) && (wpndirectslottrack == 0)) {   
                    wpnvalue = wpnslottrack;
                    tempWST = 1;
                    wpndirectslottrack = 1;
                        if (wpnvalue == 1) {
                        combo_run (LB2);
                        wpnslottrack = 5;}
                        if (wpnvalue == 2) {
                        combo_run (LB3);
                        wpnslottrack = 5;}
                        if (wpnvalue == 3) {
                        combo_run (RB3);
                        wpnslottrack = 5;}
                        if (wpnvalue == 4) {
                        combo_run (RB2);
                        wpnslottrack = 5;}
                        if (wpnvalue == 5) {
                        combo_run (RB1);
                        wpnslottrack = 5;}
                        }
 
                else if (mode == 1){
                    mode = 0;
                    wpnvalue = 5 - wpnslottrack;
                    if (wpnvalue == 4) {
                        combo_run (W_LB1);
                        wpnslottrack = 5;}
                    if (wpnvalue == 3) {
                        combo_run (W_LB2);
                        wpnslottrack = 5;}
                    if (wpnvalue == 2) {
                        combo_run (W_RB2);
                        wpnslottrack = 5;}
                    if (wpnvalue == 1) {
                        combo_run (W_RB1);
                        wpnslottrack = 5;}
                    if (wpnvalue == 0) {
                        combo_run (Mode_Change);
                        wpnslottrack = 5;}
                    }
                }
 
//------------------------------------------------------------------------------
//LED                   
        if (mode == 1){           
        switch(bldslottrack) {
                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;
            }
        }
        else if ((mode == 1) && (tempWST == 0)) {
            display_overlay(_0_, 2000); }   
 
        if ((mode == 0) && (tempWST == 1)){   
        switch(wpnslottrack) {
                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;
            }
        }
        else if ((mode == 0) && (tempWST == 0)) {
            display_overlay(_0_, 2000); }   
 
} // main
 
combo ChangeMat {
    wait(40);
    set_val(BUTTON_15, 100.0);
    wait(120);
    set_val(BUTTON_15, 0.0);
    wait(320);
    set_val(BUTTON_8, 100.0);
    wait(40);
    set_val(BUTTON_8, 0.0);
    wait(40);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
}
 
combo ChangeMat2 {
    wait(40);
    set_val(BUTTON_8, 100.0);
    wait(40);
    set_val(BUTTON_8, 0.0);
    wait(80);
}
 
combo BuildWall {
    wait(20);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
    wait(40);
    wait(160);
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
    bldslottrack = 1;
    mode = 1;
    tempWST = 1;
}
 
combo BuildFloor {
    wait(20);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0.0);
    wait(100);
    bldslottrack = 2;
    mode = 1;
    tempWST = 1;
}
 
combo BuildStair {
    wait(20);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0.0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0.0);
    wait(40);
    wait(160);
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
    bldslottrack = 3;
    mode = 1;
    tempWST = 1;
}
 
combo BuildDiamond {
    wait(20);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
    wait(40);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0.0);
    wait(100);
    bldslottrack = 4;
    mode = 1;
    tempWST = 1;
}
 
combo LB1 {
    wait(20);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(40);
}
 
combo LB2 {
    wait(20);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(40);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(80);
}
 
combo QLB1 {
    wait(20);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(40);
    wait(160);
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
}
 
combo QLB2 {
    wait(20);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(40);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(40);
    wait(160);
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
}
 
combo LB3 {
    wait(20);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(40);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(40);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(80);
}
 
combo RB1 {
    wait(20);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(80);
}   
 
combo QRB1 {
    wait(20);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(40);
    wait(160);
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
}   
 
combo RB2 {
    wait(20);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(40);
    wait(160);
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
}
 
combo QRB2 {
    wait(20);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(80);
}
 
combo RB3 {
    wait(20);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(80);
}
 
combo W_LB1 {
    wait(20);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
    wait(40);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(80);
}
 
combo W_LB2 {
    wait(20);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
    wait(40);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(40);
    set_val(BUTTON_7, 100.0);
    wait(40);
    set_val(BUTTON_7, 0);
    wait(80);
}
 
combo W_RB1 {
    wait(20);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(80);
}   
 
combo RT {
    wait(40);
    set_val(BUTTON_5, 100.0);
    wait(40);
    set_val(BUTTON_5, 0.0);
    wait(40);
}
 
combo W_RB2 {
    wait(20);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(40);
    set_val(BUTTON_4, 100.0);
    wait(40);
    set_val(BUTTON_4, 0);
    wait(80);
}
 
combo Mode_Change {
    wait(20);
    set_val(BUTTON_15, 100.0);
    wait(40);
    set_val(BUTTON_15, 0.0);
}
 
combo DoublePumpShotguns {
    set_val(BUTTON_5, 100.0);
    wait(50);
    set_val(BUTTON_5, 0.0);
    wait(50);
    set_val(BUTTON_4, 100.0);
    wait(50);
    set_val(BUTTON_4, 0.0);
    wait(650);
    set_val(BUTTON_5, 100.0);
    wait(50);
    set_val(BUTTON_5, 0.0);
    wait(50);
    set_val(BUTTON_7, 100.0);
    wait(50);
    set_val(BUTTON_7, 0.0);
    wait(650);
}
 
//------------------------------------------------------------------------------
// KEYBOARD SUPPORT
// view pressed key
void output_keycode() {
    static uint8 previous_keycode;
    uint8 keycode;
 
    keycode = key_check();
    if(keycode != previous_keycode) {
        if(keycode) {
            printf("Key Code: %02X", keycode);
        }
        previous_keycode = keycode;
    }
    return;
}


Obviously, this script relies on actual keys. Can somebody help me code this so that my G13 keys are mapped similarly to the image above? Any help would be much appreciated. I just want to enjoy this as much as possible.

Also a bit off topic, but with this current script the game doesn't feel like I'm getting much Aim Assist. Is this natural, or did I do something wrong? Thanks in advance!
User avatar
[redacted]
Master Sergeant
Master Sergeant
 
Posts: 32
Joined: Sat Feb 24, 2018 1:23 am

Re: Logitech G13 startup guide

Postby sky418 » Thu Mar 01, 2018 9:12 pm

Very quick, Logitech PC profiles not working thear.
No needs to map Buttons as Buttons in Logitech Profile Map actions on this buttons not (1,2, ..... Q,R)
Each button in
Code: Select all
const uint8 mapG13[] = {
....
}

Is equal to the physical pleasure button on Logitech G13 see
Code: Select all
 
 //     original line
...

Each button Logitech G13 is equal T2 buttons on it please
So by default if you press
On Logitech G13 button G1 it is equal you press BUTTON_1 G13 - BUTTON_13 G14 - BUTTON_14 &.....

Combinate them as you need.
https://www.consoletuner.com/forum/viewtopic.php?f=25&t=7378&p=59172#p59172
User avatar
sky418
Command Sergeant Major
Command Sergeant Major
 
Posts: 124
Joined: Fri Nov 25, 2016 4:28 am

Re: Logitech G13 startup guide

Postby Fami » Tue Jun 12, 2018 10:15 pm

Hello sky418,

lets pretend I do not define any PS4 buttons to the G13's button G2. Or mark G2 with "ACCEL_2_Z". And I want to use this button in my script as a trigger for a run_combo. Whats the name of that button? Could you or somebody else give an example please?
User avatar
Fami
Staff Sergeant
Staff Sergeant
 
Posts: 14
Joined: Tue Sep 05, 2017 8:26 am

Re: Logitech G13 startup guide

Postby sky418 » Wed Jun 13, 2018 5:35 am

G2 is already mark with "ACCEL_2_Z". "ACCEL_2_Z" is not used button at all.
As i correctly understood you want to enable - disable some action by using G2 button, and not using DS4 button at the same time. I'll think what to do, but G13 is seeing by T2 as a HID device not keyboard, so you can't use keyboard layout on it, as a result no external (useful keyboard) keys, and only keys (buttons) that DS4 have.
User avatar
sky418
Command Sergeant Major
Command Sergeant Major
 
Posts: 124
Joined: Fri Nov 25, 2016 4:28 am

Previous

Return to Gtuner IV Support

Who is online

Users browsing this forum: No registered users and 92 guests