• Create Account

# end of map stats

20 replies to this topic

### #1 OFFLINE   BECK Posted 18 September 2012 - 10:49 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO
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!

### #2 OFFLINE   gaoesa Posted 18 September 2012 - 11:34 PM

gaoesa

• Management
• 4391 posts
341
Will become famous
• LocationFinland
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,
team damage given,
skillpointmask, (this is a bitmask of the skills that are presented in the string)
n * skillpoints

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_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_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.

### #3 OFFLINE   BECK Posted 19 September 2012 - 03:40 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO
Thanks very much, this is exactly what I was looking for.

### #4 OFFLINE   gaoesa Posted 19 September 2012 - 04:10 PM

gaoesa

• Management
• 4391 posts
341
Will become famous
• LocationFinland
Recheck the post. I forgot one of the values from it. The round counter between the client number and the weapon bitmask.

### #5 OFFLINE   BECK Posted 19 September 2012 - 05:15 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO
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.

### #6 OFFLINE   gaoesa Posted 19 September 2012 - 05:22 PM

gaoesa

• Management
• 4391 posts
341
Will become famous
• LocationFinland
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.

### #7 OFFLINE   BECK Posted 19 September 2012 - 05:26 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO
Okay, that makes sense. I can see that in the logs now, thank you.

### #8 OFFLINE   gaoesa Posted 19 September 2012 - 05:33 PM

gaoesa

• Management
• 4391 posts
341
Will become famous
• LocationFinland
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.

### #9 OFFLINE   BECK Posted 25 September 2012 - 05:35 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO
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)?

### #10 OFFLINE   Sol Posted 25 September 2012 - 06:21 PM

Sol

Regular Member

• Coders
• 113 posts
28
• LocationPoland
You have to add silent's weapons def, didn't test it but believe that it will work.

### #11 OFFLINE   BECK Posted 25 September 2012 - 06:24 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO
THanks, I've got all that stuff from the previous posts. At this point I'm more interested in the ClientUserinfoChangedGUID string But that LUA script might be useful for someone else.

### #12 OFFLINE   Sol Posted 25 September 2012 - 06:30 PM

Sol

Regular Member

• Coders
• 113 posts
28
• LocationPoland

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, 25 September 2012 - 06:31 PM.

### #13 OFFLINE   gaoesa Posted 25 September 2012 - 07:14 PM

gaoesa

• Management
• 4391 posts
341
Will become famous
• LocationFinland

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_PANZERFAUST,   // 5
WP_FLAMETHROWER,  // 6
WP_COLT,    // 7 // equivalent american weapon to german luger
WP_THOMPSON,   // 8 // equivalent american weapon to german mp40
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_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.

### #14 OFFLINE   BECK Posted 25 September 2012 - 08:10 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO
Awesome, there is a lot more information in there than I thought Thanks again!

### #15 OFFLINE   BECK Posted 28 September 2012 - 09:19 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO

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, 28 September 2012 - 09:30 PM.

### #16 OFFLINE   gaoesa Posted 28 September 2012 - 09:37 PM

gaoesa

• Management
• 4391 posts
341
Will become famous
• LocationFinland
Some weapons can hit several people with one shot. Such weapons are for example grenades. Hits do not equal kills, but they do equal players get hit.

### #17 OFFLINE   BECK Posted 28 September 2012 - 09:51 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO
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!

### #18 OFFLINE   gaoesa Posted 28 September 2012 - 10:26 PM

gaoesa

• Management
• 4391 posts
341
Will become famous
• LocationFinland
syringe counts all, revive and poison
landmine attempts is ones armed, i think

### #19 OFFLINE   BECK Posted 10 October 2013 - 08:13 PM

BECK

• Subscriber
• 226 posts
61
Getting Better
• LocationDenver, CO

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!

### #20 OFFLINE   gaoesa Posted 10 October 2013 - 08:40 PM

gaoesa

• Management
• 4391 posts
341
Will become famous
• LocationFinland

WP_DEMOLITION , 40

WS_DEMOLITION , 24

Both values in decimal.

EDIT:

Former values higher then 40 increase by one, if there was no empty space before.

#### 0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users