This is a multi-part message in MIME format. -- The following text applies to the H-L 1 engine! If s.o. by accident can forward this mail to Martin O. (since I guess he coded the DemoPlayer plugin), that would be great.
There are several bugs with the demoplayer and I understand what "Back Catalog" means (ok may be I don't), but may be there is s.o. that care's a bit 'bout H-L 1 in his or her (probably non existent) spare time: 1. dem_forcehltv doesn't set the player that recorded the demo to be visible That is not a problem, this can be fixed with "DrawMe" or the "Mirv Demo Tool" 2. The viewdemo plugin's build in demo fix for bogeous Demo Headers (i.e. when the game crashed during recording) doesn't work anymore, probably because the network protocol version is hard-coded and it got incremented one or two years ago. This is not a problem, this can be fixed with "Half-Life Demo Fix" (included in the MDT X-Mas 07 edition). If you want to program your own fix for rebuilding demo headers please stick to http://web.archive.org/web/20050308173439/http://www.planetquake.com/demospecs/dem or I can give you the code of the "Half-Life Demo Fix" (which is pretty ugly, so you probably don't want it). With the information from this link and a _lot_ of spare time you should also be able to program a tool that converts in-eye demos to HLTV demos, with the hints given bellow (also use the HLSDK-p3 from metamod.org and the Q1 Id-Software source for hints). 3. dem_forcehtlv fake spectator slot bug: There is no 3rd party fix for it yet (although possible) and due to the nature of the problem a fix in the viewdemo source would be the most efficient solution form my point of view. Of course we'll try to work on a fix, but currently most of the MDT team's resources (if present) are dedicated towards the GUI. But may be the author of the DemoPlayer plugin can fix it with acceptable effort earlier or s.o. else has a good idea. Therefor I'll try to give a short description of the problem and it's cause bellow: DemoPlayer Bug with dem_forcehtlv 1 I am not sure if it will happen always when the demo has more than 10 players, however this is why it happens for several of those: For HLTV Demos there is a Hidden entity (Index 1) used as the "local player" which allows you to move the camera around etc.. When dem_forcehltv is 1, then Valve's DemoEditor will add such an entity too (index varies). However all demo events marked as local will be skippend in that case since the local player index does not match. This is why you won't hear any sounds when dem_focehltv is enabled (this can be theoretically fixed, however the efforts needed might be too much at the moment compared to the benefits), While it seems to work fine with many demos containing less than 10 players, for some reason the entity gets overwritten by a player entity in some demos (>10 players?). This causes that the event's recorded for that player can conflict with your inputs (depends on the mod code), in our case the spec_mode setting is one of the problems it causes (will happen in most mods, since the HL-SDK probably picks those up in HUD_ProcessPlayerState). Annways here are some images showing some debug data to explain the problem: (the local player is determined by GetLocalPlayer() from the cl_enginefunc_t struct) HLTV Demo: http://img297.imageshack.us/my.php?image=0hltvwf4.gif A in-eye demo with 10 players listed that doesn't have the problem: dem_focehltv 0: http://img442.imageshack.us/my.php?image=1eyeoknoforcetg9.gif dem_forcehltv 1: http://img248.imageshack.us/my.php?image=2eyeokforceqv4.gif A in-eye demo that has more than 10 players listed that has the problem (also the original local player index is not 1, which might be a problem too, but I don't know): dem_forcehltv 0: http://img180.imageshack.us/my.php?image=3eyebugnoforcenr4.gif dem_forcehltv 1: http://img101.imageshack.us/my.php?image=4eyebugforcequ5.gif demo download: http://www.badongo.com/file/7822066 If for whatever reason you need that __mirv_listplayers command, you can either add s.th. similiar to your mod with the stub code bellow (that is neither efficient nor safe) or you can use the 1.1.3.160 mdt dev edition: http://hhg-clan.de/hlae/files/mdt_1_1_3_160_dev.cab The MIRV Demo Tool is technically a hack, therefore you should use it for making movies / watching demos only. Epilepsy warning: This software will cause fast changing images and colors on your screen. With kind regards Dominik PS: I bet the mail distribution server breaks digitally signed mails : P PPS: I hope I didn't forget anything, heh. Stub code: void PrintDebugPlayerInfo(cl_entity_s *pl) { static hud_player_info_t m_hpinfo; memset(&m_hpinfo,0,sizeof(hud_player_info_t)); pEngfuncs->pfnGetPlayerInfo(pl->index,&m_hpinfo); pEngfuncs->Con_Printf("%i (%s): %s, %s, %i, %i, %i, %i, %i, %i\n",pl->index,(pl->curstate.effects & EF_NODRAW) ? "y" : "n",m_hpinfo.name,m_hpinfo.model,m_hpinfo.ping,m_hpinfo.packetloss,m_hpinfo.topcolor,m_hpinfo.bottomcolor,m_hpinfo.spectator,m_hpinfo.thisplayer); } REGISTER_DEBUGCMD_FUNC(listplayers) { bool bLocalListed=false; int iLocalIndex; cl_entity_s *plocal = pEngfuncs->GetLocalPlayer(); pEngfuncs->Con_Printf("Listing Players:\nindex (EF_NODRAW): name, model, ping, packetloss, topcolor, bottomcolor, spectator, thisplayer\n"); for (int i = 0; i <= pEngfuncs->GetMaxClients(); i++) { cl_entity_t *e = pEngfuncs->GetEntityByIndex(i); if (e && e->player) { PrintDebugPlayerInfo(e); if (e->index==plocal->index) { bLocalListed=true; iLocalIndex=e->index; } } } if (bLocalListed) { pEngfuncs->Con_Printf("The local player is index %i.\n",iLocalIndex); } else { pEngfuncs->Con_Printf("The local player is hidden (not flagged as player):\n"); PrintDebugPlayerInfo(plocal); } } -- [ smime.p7s of type application/x-pkcs7-signature deleted ] -- _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders