TF2stats G15 plugin

Suchen

v0.486 beta - active development stopped until further notice

Intro

Your help is needed!

{spoiler title=Click here to read why... opened=0}

As you may have noticed there are some events that
wont show up on the display, like capturing the intel for example.

This is due to the fact, that TF2's console.log is not
as detailed as I wish it to be.

Examples:

- capturing the intelligence is not logged at all
- assistant kills wont count:

Situation: Player1 and Player2 kill Player3 with weapon_x
console.log: Player1 killed Player3 with weapon_x

That is the reason why the medic wont get any kills q
when assisting somebody (healing) shown up on the LCD.

- destroying engineers objects:

Situation: whether you kill the engineer or destroy any of his objects
console.log: Player1 killed engineer with weapon_x

NO differentiation between objects or kills at all!
This means that anybody who destroys engineers objects gets
kills+1 on the LCD
(e.g. spy sapper or any regular kill with any player class's weapon)

- no logging of the players chosen class

This is why I can determine your class after a kill

- no logging of the team colour

...and no way of getting that info from console.log

That's the incomplete list of the situations TF2stats cannot
handle as long as Valve decides to implement more (and more
differentiated) events into the console.log.

So please use the in-game bug report form to inform Valve
about your wish to implement the following:

console.log event for:
- destroying dispenser, sentry, teleport
- assistant kills
- team colour
- player class
- player points
- capture of map points, preferred form:
player_x captured point x of y

Please copy and paste this list and send it to Valves support.
Maybe we get an open ear and I can continue developing. {/spoiler}


Info

tf2stats_explanation.gif

- player class (I)
- server ip (II)
- map name (III)
- kills/frags (IV)
- point captures (V)
- suicides (VI)
- deaths caused by others (VII)
- kill/death ratio (VIII)
- deaths (like dieing from fall damage) (IX)
- number of kills in a row (X)
(suicides or other deaths wont reset this, only getting killed by somebody does)
- current time and time spent on current map (XI)
- number of times you've been killed the last time and its name (XII)
- button 4: reset statistics (manual reset, automatic reset is made on every map change) (XIII)
- button 3: (not shown in the image above yet) switch between main and stats graphs screen
- button 1: save current LCD output to tf2stats.png

Compatible with: Logitech G15 Gaming Keyboard (1st and 2nd edition) and Logitech G10 2.0 Speakers!

---
Version 0.486 - hotfix for a situation where the "awaiting stats" screen won't disappear when "Bypass TF2 process" was set to true.

Version 0.485 contains a huge -and I am saying this again- HUGE performance upgrade. TF2stats will use about 85% less CPU time now, because I have spent some time at optimizing functions, timings and so on. I did not have the time to test every situation you may come across but it should work quite stable (well, disabling TF2stats by clicking the systray icon became some kind of obsolete now, but I won't remove that option, of course).

Version 0.48 may include old bugs, because I have lost my current source code and had to switch to an older backup.
I have re-implemented the systemtray function "Temporarily disable TF2stats" so it won't eat up CPU when not used (it is at about 1% on my X2 4400 but some people (esp. Vista users) may want to use this feature).
There is a check for the function "Insert TF2stats events into player class config files" so you won't add the commands twice. Also, if TF2stats wont find your TF2 directory, it won't crash anymore but giving you hints what to do next.
Furthermore I have moved the TF2stats version info into the "Awaiting stats" screen and removed it from the LCD Manager title, so you won't end up in having several TF2stats entries there.

Version 0.47 includes a better exception handling when starting TF2stats but not configuring it before. Furthermore I have added the main configuration variables from the INI file to the tray icon menu, so you are not forced to edit the INI file by hand for the most cases.
There is a "Temporarily disable TF2stats" mode in there now, too. No CPU usage without the need to exit and restart TF2stats.

If an error about LogLCD.dll is showing up or if you get a message about Visual Basic - install the DLL package, too.

If you get an error about a wrong path please edit the TF2stats.ini file (same path as TF2stats.exe) according the information given there. This should work for Vista, too!

If something is still going wrong, please post a screenshot and reconstructable description of your problem at the "Support, Bugs" section in the board/forum at smashd.de

You might want to try setting Bypass_TF2_Check=true in the TF2stats.ini file. This will bypass the checkup if the TF2 process is running.

Furthermore you might disable the Screenshot functionality by setting Bypass_Screenshot=true (this is a must if you get a GDI+ error!).

From 0.43 and above you might want to disable the animations by setting Disable_Animations to true in the tf2stats.ini file.

From 0.42 and above you may want to execute the tray menu command "Insert Choose Class events to player class config files. This will show your chosen class on your LCD instantly after selecting it rather than after the first kill. This will NOT overwrite your current config's! The information will be appended, so none of your configurations get lost.
In other words: It is safe! (Note: you have to run this function only once, if the appropriate strings are present in the cfg files there is no need to add them again)

As being reported by user Corhen this includes the need of running TF2stats in Administrator Mode.


If there is a major demand reverting this back to the state of 0.4's behaviour (although it is not approved that this version ran fine in user mode and dividing one tool into seperate modules is not my intention actually).

From 0.39 and above there is an option in the INI for disabling button 4 (reset stats).

From 0.397 and above there is an INI setting to completely bypass registry reading and configure the nickname and TF2 path only by INI settings. Helpful especially
for people with 64bit OS and/or with 2 or more Steam accounts.

You might want to disable the rather CPU load intensive transitions between screens by setting Disable_FX=true.

If you don't want the tray icon visible set the corresponding INI value (although it is quite useful to exit tf2stats.exe without using the taskmanager, e.g. when updating to a newer version).

Almost half of the images got cleaned up by Serge, who (thanks alot!) also donated some money by using the paypal form on the left.

If you keep ketting the error "path not found" and are using 2 or more Steam accounts:
Either change your "modinstallpath" registry entry to point to your Steam path where TF2 is on or wait for the next release of TF2stats - there will be an option to disable registry parsing and using only INI settings. This won't be automatically in this case, of course. (Done!)

I have included a startup command "debug". It will tell you every important step when tf2stats is starting. Usage:

tf2stats.exe debug

Usage

Press the appropriate button near your G15 LCD to show up the TF2stats plugin.
Start TF2 with the -condebug flag (e.g. edit your desktop shortcut to start
steam.exe -applaunch 440 -novid -console).

Start the game and join or start a server.

From 0.42 and above you may want to execute the tray menu command "Insert Choose Class events to player class config files. This will show your chosen class on your LCD instantly after selecting it rather than after the first kill. This will NOT overwrite your current config's!
The information will be appended, so none of your configurations get lost.
In other words: It is safe! (Note: you have to run this function only once, if the appropriate strings are present in the cfg files there is no need to add them again)
Furthermore this required the usage of one more system file called comdlg32.ocx. If you get an error about this, please install the new DLL package v1.1. Furthermore this includes the need to run tf2stats.exe in administrator mode, because it (who guessed it? ;) ) needs file access to the .cfg files of the player classes.

HowTo


Important: this ONLY will work when your console.log saves ENGLISH logs like "x killed y with z" and so on.

Image
Click the image for a quick How-To.

Vista Tips

Thanks to Arcdeo, who posted this into the comments.

Hey guys,
After much trial and error, I have combined bits of info from other posts to finally solve the problem with my Vista 64bit install. Maybe this will help others:
Append "-applaunch 440 -novid -condebug" to desktop shortcut
Add "-condebug" to Steam additional launch options
Place TF2stat.exe and
TF2stat.ini (my need change file/folder viewing options to see file)
into "C:\Program Files\Logitech\GamePanel Software\LCD Manager\Applets"

Most important:
Change props of both TF2stat files in previous post to "Run as Administrator"
Change props of TF2stat.exe to compat mode for windows xp sp2.
Change props for TF2 desktop shortcut to "Run as Admin" and
Change props for TF2 desktop shortcut to Compat Mode : "Windows XP SP2"
After doing this Lauch TF2 from desktop and play a game.
Oh disable Registry lookup and install dll kit. this is also a must (Note by SmashD: Registry Lookup uses a Win XP SP2 DLL hook to determine if TF2 is running, but this DLL call is terribly slow when using it in Vista and I don't know a compatible Vista alternative)


Another step-by-step-guide by Farenheit (thanks alot!):

Complete *Working* Vista 64bit Instructions

These instructions assume you've installed Steam, Team Fortress 2, and Logitech GamePanel Software in their default paths. These are the exact steps I did to get TFStats working for me.

1. Download TF2Stats plugin zip file.

2. Download TF2Stats DLL package exe file and run it.

3. Extract TF2Stats plugin zip file to:
C:\Program Files\Logitech\GamePanel Software\LCD Manager\Applets

4. Edit the TF2stats.ini file to have the following information:
Steam_TF2_Path=C:\Program Files (x86)\Steam\steamapps\\team fortress 2\tf\
Steam_Nick_Name=xxxxx
Bypass_TF2_Check=true
(replace the xxxxx with your information)
**NOTE: you may have to make a copy of TFstats.ini on your desktop to make the changes, then copy the edited file to the Applets folder, since Vista doesn't let you edit files there most times.

5. Change "Steam.exe" to run as Administrator (right-click "C:\Program Files (x86)\Steam\Steam.exe" and click Properties. Click the "Compatibility" tab. Check "Run this program as an administrator." Then click OK.)

6. Change Team Fortress 2 "hl.exe" to run as administrator (right-click "C:\Program Files (x86)\Steam\steamapps\\team fortress 2\hl.exe" and click Properties. Click the "Compatibility" tab. Check "Run this program as an administrator." Then click OK.)

7. Run Steam.

8. Click the "My games" tab.

9. Right-click Team Fortress 2 and click Properties.

10. Click the "Set launch options" button.

11. Paste in this line: -condebug -novid

12. Create a shortcut on your desktop for Team Fortress 2. Make sure the path looks like this:
"C:\Program Files (x86)\Steam\Steam.exe" -applaunch 440 -condebug -novid

13. Right-click the Team Fortress 2 shortcut on your desktop, and click Properties.

14. Click the "Compatibility" tab. Check "Run this program as an administrator." Then click OK.

15. Create a shortcut on your desktop for TF2 Stats. Make sure the path looks like this:
"C:\Program Files\Logitech\GamePanel Software\LCD Manager\Applets\TF2stats.exe"

16. Right-click the TF2 Stats shortcut on your desktop, and click Properties.

17. Click the "Compatibility" tab. Check "Run this program as an administrator" and run the program in Windows XP compatibility mode. Then click OK.

18. Run the Team Fortress 2 icon on your desktop, load the game, then quit.

19. Verify that it created a "console.log" file here:
C:\Program Files (x86)\Steam\steamapps\farenhe1t\team fortress 2\tf\

20. If that file exists, run your TF2 Stats shortcut.

21. Run the Logitech GamePanel Manager program, and click the "Programs" button on the left.

22. You should see "TF2stats (c) smashd.de" as one of the programs. Make sure both of it's checkmarks are checked. (Note by SmashD: that would be "allow program to show up on LCD" and "autostart this program at windows startup" which would male 25. obsolete)

23. Close the GamePanel Manager program.

24. Now if TF2 Stats is running, launch TF2 from your shortcut on the desktop, and you should see animations on your LCD. Once you kill someone, you should see stats show up.

25. From now on, run TF2 Stats from the shortcut on your desktop, then launch TF2.

 

Please note that the only reason why you have to mess around with "run as admin" settings in Vista is, that no other user right than the said admin is allowed to write files.

All contributions by the named tf2stats users are highly appreciated! Thanks very much.

Q&A


Does that show your stats for just that life? Or the whole time your in the server?
It shows the stats for the current map. If you wish to you might press the most
right button (4) on your G15 to instantly reset the shown stats, so they show
the stats from the moment you've pressed the button until the map changes.


Could you re-paint some images? They are ugly!
Get yourself a try doing neat images in black and white only at a 39x43 pixel space.
If yours looks better I'll include it in the next release...maybe.

Why do I have to run TF2stats in "Administrator Mode"?
TF2stats needs file access to inject some echo commands into the player class's config files that TF2 runs if you select a specific player in-game. This enables TF2stats to show you the chosen player class instantly rather than after the first kill.

Why is TF2stats eating up so much CPU power (>3% when being idle)?
This happens on Vista systems sometimes, because I am using a direct DLL call to determine if TF2stats is running or not. Please set Bypass_TF2_check to TRUE in the tf2stats.ini.

In very rare situations TF2stats exits with "Zugriff verweigert" (german error message, never being reported by any other user though). Why?
This happens if TF2stats tries to read the console.log and TF2 denies to allow it. Of course TF2stats tries it several times, but if unsuccessful it just throws an critical error and stops running. At the moment I am unable to fix that.

Is TF2stats VAC-proof?
In my opinion it is 100% safe, no case is known yet. In addition TF2stats only parses console.log messages - no (RAM) memory reading/saving or any manipulation to game files at all.

The G15 LCD is crambled, all pixels wobble around in a strange way and/or I cannot see a clear image!
The so-called wrapper needs your desktop colour bit depth to be at 32bit and your resolution set to 96dpi (default).


Suggestions are, as well as a donation, very welcome:
please drop a message in the "Suggestions, New Features" section at the
board/forum at smashd.de


Notes


Please bear in mind that this is in early development. To reduce CPU usage
(parsing the file every x seconds is not that fast as I would like it to be)
this plugin will clear out the log's information every time it exceeds 50kb of size.
This is not necessary for any game function, but if you would like to keep your
console.log file you might consider if you want to use my plugin.

Downloads

If you keep getting a message about "Session not validated" and are not allowed to download, please try again in some minutes. Thanks!

Stand-Alone-Version

{jd_file file==11}

 

TF2stats DLL package (install if you are getting runtime errors)

This DLL package should fix any DLL and/or ActiveX error you might get.
Please press "Ignore" if any error comes up during the installation.
Why? Because I don't want to overwrite existing or appropriate installed
files, the copy process will fail at those. :)

This package only contains the DLLs needed to run TF2stats.
To install TF2stats itself please obtain the newest copy from above.

{jd_file file==8}

Opinions

  • Outstanding job and great app!
  • Once again great work and thanks for your efforts.
  • Damn it. I was going to buy a G15 but figured I wouldn't have any real use for the screen. Then I see this thread after buying a different keyboard. Grr.
  • SmashD... you've done a smashing job if you ask me
  • keep up the great work
  • Many thanks for making and sharing this app. Have a cookie
  • Works perfectly

    That is extremely cool, awesome job. Now if only I had one of these keyboards so I could use this (although that would require money...).
  • I'm just happy to get this working. I love the plugin. I had posted it over in the clan forums where I belong (...) Thanks for all your hard work on the plugin, it's awesome.
  • Awesome plugin! This one alone makes my G15 worth every penny I spent!

Repository

This location is being prepared for the 2 volunteers, who want to continue the work on TF2stats. You may download published files (by them) in the following directory listing:

currently disabled, formerly interested coders seem to have dropped the project as well :/

(c) 2008 smashd.de

Names and other trademarks are the property of the respective trademark holders.
None of the trademark holders are affiliated with smashd.de.

Comments:

blog comments powered by Disqus