You read the numbers from that line like this: client number, rounds in session, (for stopwatch games) weaponmask, (this is a bitmask of the weapons that are presented in the string) n * [hits, attempts, kills, deaths, headshots], (the n is defined in the weapon mask and the weapons are in the smallest set bit to the highest set bit order) damage given, damage received, team damage given, team damage received, skillpointmask, (this is a bitmask of the skills that are presented in the string) n * skillpoints The weapon mask values, I've put the hexadecimal bitmask for single weapon as a comment:
WS_KNIFE, // 0x01
WS_LUGER, // 0x02
WS_COLT, // 0x04
WS_MP40, // 0x08
WS_THOMPSON, // 0x10
WS_STEN, // 0x20
WS_FG42, // 0x40 -- Also includes WS_BAR (allies version of fg42)
WS_PANZERFAUST, // 0x80
WS_FLAMETHROWER, // 0x100
WS_GRENADE, // 0x200 -- Includes axis and allies grenade types
WS_MORTAR, // 0x400
WS_DYNAMITE, // 0x800
WS_AIRSTRIKE, // 0x1000 -- Lt. smoke grenade attack
WS_ARTILLERY, // 0x2000 -- Lt. binocular attack
WS_SYRINGE, // 0x4000 -- Medic syringe uses/successes
WS_SMOKE, // 0x8000
WS_SATCHEL, // 0x10000
WS_GRENADELAUNCHER, // 0x20000
WS_LANDMINE, // 0x40000
WS_MG42, // 0x80000
WS_GARAND, // 0x100000 // Gordon: (carbine and garand)
WS_K43, // 0x200000 // Gordon: (kar98 and k43)
WS_PPSH, // 0x400000
WS_TRIPMINE, // 0x800000
The above is read so that the if the value is for example 12 , then there is weapon statistics for colt and mp40. First colt, then mp40. The skill bit mask values are:
SK_BATTLE_SENSE, // 0x01
SK_EXPLOSIVES_AND_CONSTRUCTION, // 0x02
SK_FIRST_AID, // 0x04
SK_SIGNALS, // 0x08
SK_LIGHT_WEAPONS, // 0x10
SK_HEAVY_WEAPONS, // 0x20
SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS, // 0x40
This works exactly the same way as the weapon mask.