Jump to content

end of map stats


BECK

Recommended Posts

  • Subscriber

I'd like to be able to analyze and catalog end of map stats from the logs. Problem is, I'm not sure what each of these numbers correspond to and it could take a considerable amount of trial and error to determine what they are for.

 

Can anyone with their hands in the code perhaps define what each of these columns are tied to? Eg. - column 1 is "Thompson" column 2 is "MP-40" etc....

 

 

17:08:21 WeaponStats: 0 0 2589 1 8 1 0 0 40 88 7 0 5 0 1 0 8 0 5 14 1 0 0 3 4 1 0 0 0 1 0 1 0 1168 1247 0 0 119 2400 1300 563 5047 17 142

 

......or am I completely missing what this line of information provides?

 

The reason I'm wanting this is to be able to write some utilities that can parse logs and create some player history for people - how their accuracy changes over time, overall k/d and things like that. I suspect that information is all contained in this string which is output for each player slot per map.

 

Ideally, I'd love to see silEnT as an enhancement provide more stats like this in a readable and usable format, but I'm holding off on making that as an offiical enhancement request because I'd like to see if this data is useable or not. I like the kind or rating informatoin that sites like trackbase provide - but I'd like to take it a step further specifically analyzing weapons, headshots and accuracy per map.

 

Thanks!

Link to comment
Share on other sites

  • Management

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.

Link to comment
Share on other sites

  • Subscriber

Yeah, I sorta just ignored that number, it is always 0 as far as I can see. Round counter, does that just apply to stopwatch or something then?

 

Also - do you know what happens if one person starts the map in slot 7, then disconnects and another person joins into slot 7 to finish the map. Are those stats somehow seperated, or do the first set of stats get dropped and recreated when the next person joins into that slot?

 

Thanks.

Link to comment
Share on other sites

  • Management

Unless you parse stopwatch you can ignore the round counter. Or maybe you can ignore anyway.

 

The "WeaponStats" string is printed every time the player disconnects. You need to track the client numbers from the ClientConnect to ClientDisconnect. After ClientDisconnect if something is printed for the client number it is different client unless the player reconnects to the same slot.

Link to comment
Share on other sites

  • Management
One more thing you might want to know. If the player plays until the intermission and then disconnects, the WeaponStats string will be printed twice with same values. Just in case you are planning to do some sort of += arithmetics with the data.
Link to comment
Share on other sites

  • Subscriber

This has been helpful, I've been able to parse all of this successfully.

 

Now I wonder if you could help with one more set of obscure values --- the ClientUserInfoChangedGUID ---- I'm assuming this holds team information somewhere (\t\ ?) I think I know what some of this is, but maybe you could just save me from guessing? Obviously, I've replaced personal information with {} placeholders. Thanks.

 

 

18:37:36 ClientUserinfoChangedGUID: 1 {SILENTGUID} n\{PLAYERNAME}\t\1\c\2\r\10\m\0000000\s\4444444\df\0\dn\\dr\0\w\23\lw\5\sw\3\mu\0\ref\0\uci\225\lc\0\tv\0\sc\0

 

Specifically, I'd like to be able to determine what team a player is on - I have sorta guessed that the number after \t\ corresponds to the team (1 = axis, 2 = allies, 3 = spec)?

Link to comment
Share on other sites

Specifically, I'd like to be able to determine what team a player is on - I have sorta guessed that the number after \t\ corresponds to the team (1 = axis, 2 = allies, 3 = spec)?

Its waste of time, better to get it from ( sess.sessionTeam ent ) a lot of faster and easier.

Edited by Sol
Link to comment
Share on other sites

  • Management
18:37:36 ClientUserinfoChangedGUID: 1 {SILENTGUID} n\{PLAYERNAME}\t\1\c\2\r\10\m\0000000\s\4444444\df\0\dn\\dr\0\w\23\lw\5\sw\3\mu\0\ref\0\uci\225\lc\0\tv\0\sc\0

 

n = name

t = session team (0- FREE, 1 - AXIS, 2 - ALLIES, 3 - SPECTATOR)

c = class (player type) (soldier, medic, engineer, fieldops, covertops = 0,1,2,3,4)

r = rank 0..10

m = medals string in the order of: batle sense, explosives and construction, first aid, signals, light weapons, heavy weapons, military intelligence and scoped weapons

s = skill string (stars) in the same order as the medals

df = disguised flag

dn = disguised name

dr = disguised rank

w = weapon

lw = latched weapon

sw = latched secondary weapon

mu = muted (1=yes, 0=no)

ref = referee status

uci = player flag number, for the GeoIP

lc = latched class (class after spawning)

tv = ETTV status

sc = shoutcaster status

 

Here are the weapon numbers:

WP_NONE,    // 0
WP_KNIFE,    // 1
WP_LUGER,    // 2
WP_MP40,    // 3
WP_GRENADE_LAUNCHER, // 4
WP_PANZERFAUST,   // 5
WP_FLAMETHROWER,  // 6
WP_COLT,    // 7 // equivalent american weapon to german luger
WP_THOMPSON,   // 8 // equivalent american weapon to german mp40
WP_GRENADE_PINEAPPLE, // 9
WP_STEN,    // 10 // silenced sten sub-machinegun
WP_MEDIC_SYRINGE,  // 11 // JPW NERVE -- broken out from CLASS_SPECIAL per Id request
WP_AMMO,    // 12 // JPW NERVE likewise
WP_ARTY,    // 13
WP_SILENCER,   // 14 // used to be sp5
WP_DYNAMITE,   // 15
WP_SMOKETRAIL,   // 16
WP_MAPMORTAR,   // 17
VERYBIGEXPLOSION,  // 18 // explosion effect for airplanes
WP_MEDKIT,    // 19
WP_BINOCULARS,   // 20
WP_PLIERS,    // 21
WP_SMOKE_MARKER,  // 22 // Arnout: changed name to cause less confusion
WP_KAR98,    // 23 // WolfXP weapons
WP_CARBINE,    // 24
WP_GARAND,    // 25
WP_LANDMINE,   // 26
WP_SATCHEL,    // 27
WP_SATCHEL_DET,   // 28
WP_TRIPMINE,   // 29
WP_SMOKE_BOMB,   // 30
WP_MOBILE_MG42,   // 31
WP_K43,	 // 32
WP_FG42,    // 33
WP_DUMMY_MG42,		  // 34 // Gordon: for storing heat on mounted mg42s...
WP_MORTAR,    // 35
WP_LOCKPICK,   // 36 // Mad Doc - TDF lockpick
WP_AKIMBO_COLT,   // 37
WP_AKIMBO_LUGER,  // 38
WP_PPSH,	   // 39

WP_GPG40,    // 40
WP_M7,	 // 41
WP_SILENCED_COLT,  // 42
WP_GARAND_SCOPE,  // 43
WP_K43_SCOPE,   // 44
WP_FG42SCOPE,   // 45
WP_MORTAR_SET,   // 46
WP_MEDIC_ADRENALINE, // 47
WP_AKIMBO_SILENCEDCOLT, // 48
WP_AKIMBO_SILENCEDLUGER,// 49
WP_MOBILE_MG42_SET,  // 50

 

Its waste of time, better to get it from ( sess.sessionTeam ent ) a lot of faster and easier.

 

It really depends about what he is doing.

Link to comment
Share on other sites

  • Subscriber

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

 

Okay, given that I'm finding some weird stuff in this string. Maybe you could explain how shots hit could ever higher than attempts?

 

Here is an example Stat string:

 

2 0 2228762 4 16 1 0 0 54 143 4 0 2 0 0 0 6 0 2 3 0 0 0 5 4 0 0 0 0 4 0 0 0 1038 1080 136 0 127 1678 1876 436 220 3238 61 223

 

Breaking apart the string after processing the weapon mask (2228762) yields the following colored sections of the string relating to each weapon:

 

2 0 2228762 4 16 1 0 0 54 143 4 0 2 0 0 0 6 0 2 3 0 0 0 5 4 0 0 0 0 4 0 0 0 1038 1080 136 0 127 1678 1876 436 220 3238 61 223

 

Okay - now it all looks great until we get to this: 5 4 0 0 0 - that is telling me 5 hits on 4 shots, 0 kills, 0 deaths and 0 headshots for weapon 131072 (Rifle-grenade).

 

I'd like to think I'm reading and processing this data correctly, because up to this point everything is looking good. I only noticed this when I start calculating accuracy based on shots and hits and was getting numbers greater than 100.

 

Can you give me any explanation of why this could be, or am I just completely reading this stuff wrong (I don't think I am).

 

 

EDIT:

Could this be related to certain types of weapons - based on limited data, I seem to be seeing this phenomenon with:

panzer, riflenade, artillary, grenade, air strikes, syringe, mortar, landmines ---- but NOT with primary weapons like mp40, thompson, k43 etc.....could be that the items showing this don't have nearly the attempts and hits as a submachine gun, so this isn't really showing up there.

 

--- wait! Maybe I figured this out --- could it be multi-kills doing this? Fire 1 riflenade, get 2 hits! MAYBE that is it!!!?

Edited by BECK
Link to comment
Share on other sites

  • Subscriber

okay - I realized that after I posted :) --- didn't make sense at first until I started looking at which weapons (heavy weapons generally) were doing that.

 

 

If I may (thanks for all your help here:)) -- what do syringe hits/attempts count for -- poison needles or revives on teammates? or both?

 

Landmine attempts - is that one attempt per landmine put down? Thanks again for all your help!

Link to comment
Share on other sites

  • 1 year later...
  • Subscriber

For the new version 0.8.0, can you provide me with the WP_ and WS_ id values for the new improvised explosives?  I presume they are just the next number in sequence, but wanted to be sure.

 

I'm guessing:

 

0x1000000  & 51 respectively.

 

Thanks!

Link to comment
Share on other sites

  • Management

No, it's not just next number:

    WP_PPSH,			    // 39
    WP_DEMOLITION,			// 40
    WP_GPG40,				// 41
    WP_M7,					// 42
    WP_SILENCED_COLT,		// 43
    WP_GARAND_SCOPE,		// 44
    WP_K43_SCOPE,			// 45
    WP_FG42SCOPE,			// 46
    WP_MORTAR_SET,			// 47
    WP_MEDIC_ADRENALINE,	// 48
    WP_AKIMBO_SILENCEDCOLT,	// 49
    WP_AKIMBO_SILENCEDLUGER,// 50
    WP_MOBILE_MG42_SET,		// 51



// stats

    WS_TRIPMINE,            // 23 
    WS_DEMOLITION,	    // 24
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...