Error on map: "Client missing DT class CTeamTrainWatcher"

From Valve Developer Community
Revision as of 03:46, 14 August 2008 by X6herbius (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Orange Box code

Date: 14th August 2008. This problem may be fixed soon. :)


Problem: You are unable to run maps after just having compiled a Half-Life 2: Multiplayer mod with the Orange box code. No source code files have been changed. NB: I don't know if this happend with EP1 code; if it does, the principle should be the same.


Symptoms: Errors in the console such as:

DataTable warning: No matching RecvTable for SendTable 'DT_TeamTrainWatcher'.
Client missing DT class CTeamTrainWatcher
Host_EndGame: CL_ParseClassInfo_EndClasses: CreateDecoders failed.

Followed by the user being dropped from the server.


Cause: For some reason (an oversight?) Valve's default "Game_HL2MP-2005.sln" does not include all of the files for the TeamTrainWatcher entity. To be honest, I'm not quite sure what this does, as I don't have a thorough knowledge of C++ and the Source engine, but since the Orange Box mods must be based on Team Fortress 2 (usually), it is required.


Solution: Easy. Just find team_train_watcher.h in the src\game\server folder of your code, and c_team_train_watcher.cpp and c_team_train_watcher.h in the src\game\client folder.

Add these to the relevant sections in VS (ie. Client -> Source Files and Server -> Source files; "c_team_train_watcher" etc should go into the Client, "team_train_watcher" etc into the Server).

You should already have "team_train_watcher.cpp" in your Server's source files. If not, find it in the src\game\server folder and add it to the Server's source files as above.