The online racing simulator
fz5, bf1 - traction control [packet]
Dev, you fix\add a code to send the packet of the TC on a master-server.
This will allow monitoring the race without a TC. (hard-core)
Not sure if it's a good idea,as BF1 originally was designed to have traction control,meaning that it has pretty horrible controllability without it.
Anyway,don't see a reason to not have info about it via packets.
There are people who do not use it. We one time was a race no TC, but it is not possible to trace.
Isn't it in the NPL packet?


<?php 
struct IS_NPL 
// New PLayer joining race (if PLID already exists, then leaving pits)
{
    
byte    Size;        // 76
    
byte    Type;        // ISP_NPL
    
byte    ReqI;        // 0 unless this is a reply to an TINY_NPL request
    
byte    PLID;        // player's newly assigned unique id

    
byte    UCID;        // connection's unique id
    
byte    PType;        // bit 0 : female / bit 1 : AI / bit 2 : remote
    
word    Flags;        // player flags

    
char    PName[24];    // nickname
    
char    Plate[8];    // number plate - NO ZERO AT END!

    
char    CName[4];    // car name
    
char    SName[16];    // skin name - MAX_CAR_TEX_NAME
    
byte    Tyres[4];    // compounds

    
byte    H_Mass;        // added mass (kg)
    
byte    H_TRes;        // intake restriction
    
byte    Model;        // driver model
    
byte    Pass;        // passengers byte

    
int        Spare;

    
byte    SetF;        // setup flags (see below)
    
byte    NumP;        // number in race (same when leaving pits, 1 more if new)
    
byte    Sp2;
    
byte    Sp3;
};

// NOTE : PType bit 0 (female) is not reported on dedicated host as humans are not loaded
// You can use the driver model byte instead if required (and to force the use of helmets)

// Setup flags (for SetF byte)

#define SETF_SYMM_WHEELS    1
#define SETF_TC_ENABLE        2
#define SETF_ABS_ENABLE        4
?>

Quote from Flame CZE :Isn't it in the NPL packet?


This is messy.
Airio can block the pilots who visits to the track with TC on. But not kicked if you enabled TC during the race.
Oh, true.
Could this be used? (maybe only from replay?)

struct OutGaugePack
{
...
unsigned DashLights; // Dash lights available (see DL_x below)

// DL_x - bits for OutGaugePack DashLights and ShowLights
enum
{
DL_TC, // bit 4 - TC active or switched off


I do not know. I'm not a programmer
OutGauge is only sent by user's instance to the app connected to it, so you need to connect to every user so that he can create a proxy which changes this packet
Quote from vitaly_m :OutGauge is only sent by user's instance to the app connected to it, so you need to connect to every user so that he can create a proxy which changes this packet

Or just spec every person in turn with OG mode set to 2. The currently selected car's data is output when spectating in OG 2. Don't know if that is much help though.
OutGauge is only for local information. You'd have to have every client on the server route their OutGauge packet information to your OG / InSim client. This _can_ be done, however, it most cases setting up OutGuage is not a part of the expected setup for a race. The best bet would be a IS_CSC packet for CarStateChange, where it could notify the server of a change to the car such as break bias or traction control turning on / off.

Something along the lines of the OutGuage Packet into a InSim Packet.

struct IS_CSC
{
byte Size; // ?
byte Type; // ISP_CSC
byte ReqI; // 0
byte PLID; // player's unique id

word Flags; // Info (see OG_x below)
byte Gear; // Reverse:0, Neutral:1, First:2...
float Speed; // M/S
float RPM; // RPM
float Turbo; // BAR
float EngTemp; // C
float Fuel; // 0 to 1
float OilPressure; // BAR
float OilTemp; // C
unsigned DashLights; // Dash lights available (see DL_x below)
unsigned ShowLights; // Dash lights currently switched on
};


FGED GREDG RDFGDR GSFDG