Subscriber BECK Posted September 18, 2012 Subscriber Share Posted September 18, 2012 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! Quote Link to comment Share on other sites More sharing options...
Management gaoesa Posted September 18, 2012 Management Share Posted September 18, 2012 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. BECK 1 Quote Link to comment Share on other sites More sharing options...
Subscriber BECK Posted September 19, 2012 Author Subscriber Share Posted September 19, 2012 Thanks very much, this is exactly what I was looking for. Quote Link to comment Share on other sites More sharing options...
Management gaoesa Posted September 19, 2012 Management Share Posted September 19, 2012 Recheck the post. I forgot one of the values from it. The round counter between the client number and the weapon bitmask. Quote Link to comment Share on other sites More sharing options...
Subscriber BECK Posted September 19, 2012 Author Subscriber Share Posted September 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
Management gaoesa Posted September 19, 2012 Management Share Posted September 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
Subscriber BECK Posted September 19, 2012 Author Subscriber Share Posted September 19, 2012 Okay, that makes sense. I can see that in the logs now, thank you. Quote Link to comment Share on other sites More sharing options...
Management gaoesa Posted September 19, 2012 Management Share Posted September 19, 2012 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. Quote Link to comment Share on other sites More sharing options...
Subscriber BECK Posted September 25, 2012 Author Subscriber Share Posted September 25, 2012 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)? Quote Link to comment Share on other sites More sharing options...
Sol Posted September 25, 2012 Share Posted September 25, 2012 Here you are: http://code.google.com/p/acqu-etsdk-codebase/source/browse/tags/luascripts/wsi.luaYou have to add silent's weapons def, didn't test it but believe that it will work. Quote Link to comment Share on other sites More sharing options...
Subscriber BECK Posted September 25, 2012 Author Subscriber Share Posted September 25, 2012 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. Quote Link to comment Share on other sites More sharing options...
Sol Posted September 25, 2012 Share Posted September 25, 2012 (edited) 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 September 25, 2012 by Sol Quote Link to comment Share on other sites More sharing options...
Management gaoesa Posted September 25, 2012 Management Share Posted September 25, 2012 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 = namet = 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..10m = medals string in the order of: batle sense, explosives and construction, first aid, signals, light weapons, heavy weapons, military intelligence and scoped weaponss = skill string (stars) in the same order as the medalsdf = disguised flagdn = disguised namedr = disguised rankw = weaponlw = latched weaponsw = latched secondary weaponmu = muted (1=yes, 0=no)ref = referee statusuci = player flag number, for the GeoIPlc = latched class (class after spawning)tv = ETTV statussc = 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. Quote Link to comment Share on other sites More sharing options...
Subscriber BECK Posted September 25, 2012 Author Subscriber Share Posted September 25, 2012 Awesome, there is a lot more information in there than I thought Thanks again! Quote Link to comment Share on other sites More sharing options...
Subscriber BECK Posted September 28, 2012 Author Subscriber Share Posted September 28, 2012 (edited) 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 September 28, 2012 by BECK Quote Link to comment Share on other sites More sharing options...
Management gaoesa Posted September 28, 2012 Management Share Posted September 28, 2012 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. Quote Link to comment Share on other sites More sharing options...
Subscriber BECK Posted September 28, 2012 Author Subscriber Share Posted September 28, 2012 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! Quote Link to comment Share on other sites More sharing options...
Management gaoesa Posted September 28, 2012 Management Share Posted September 28, 2012 syringe counts all, revive and poisonlandmine attempts is ones armed, i think Quote Link to comment Share on other sites More sharing options...
Subscriber BECK Posted October 10, 2013 Author Subscriber Share Posted October 10, 2013 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! Quote Link to comment Share on other sites More sharing options...
Management gaoesa Posted October 10, 2013 Management Share Posted October 10, 2013 WP_DEMOLITION , 40WS_DEMOLITION , 24 Both values in decimal. EDIT:Former values higher then 40 increase by one, if there was no empty space before. Quote Link to comment Share on other sites More sharing options...
Management TheSilencerPL Posted October 10, 2013 Management Share Posted October 10, 2013 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.