Error on map: "Client missing DT class CTeamTrainWatcher"
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.