-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add: ET protocol 84 and 284 (ETTV) #2
base: develop
Are you sure you want to change the base?
Conversation
- only really tested chat and obituaries which seem to work fine as of now - very little actual changes made just spent most of the time adding data tables - protocol 284 doesn't work since it needs additional parsing
add demo conversion from protocol 284 to 84 add configstring processing for ET protocols add chat processing for ETPro mod add obituaries processing for ETPro mod add scores processing for ET (excluding ETPro since it's commands are encoded) add demo conversion from protocol 284 to 84 to GUI Conversion should be working fine for both ETPro tv demos and ETL tv. There could be some bugs (I know of one in ETL but it's Legacy mod issue that needs fixing).
got SIGSEGV when cutting this file:
using -s=10 -e=20 outputs empty dm_84 is there a way to specify POV for tv_84 demo ? |
Only from
|
In etpro also fireteam and scoreboard are broken both related to hp missing (both show as if players are dead always), never tried figuring out why though. IIRC in legacy it works. Another thing similiar to entitystate not being removed now is that commands not meant for a client are also not removed, for legacy it is just boring work of going through a list of commands that exist and adding to the already existing removal ( |
I just realised why I didn't add the above entity removal before, because it doesn't remove it but makes another entity 0 essentially empty, so a player with clientnum 0 is a ghost. I don't think there is a way in UDT to actually remove entity tho, or at least I couldn't figure it out last time. I think technically entity either should be never written (skip the write call) or set to null (in |
isn't this uberdemotools/UDT_DLL/src/message.cpp Lines 2305 to 2315 in f9eddde
also if ((s32)ConversionInfo->ClientNum == inEntityState.number)
{
outEntityState.eFlags |= 0x00000040; // ETPro and ET:legacy NODRAW flag
} does the job too 😄 |
Yes, I think it removes it, so 1. it might break parsing or cause other unwanted consequences 2. It still writes something to demo, which doesn't make it perfect solution anyway. That's a nice idea with the nodraw flag. I guess indeed the easiest solution would be to convert the entity to something that will not get processed in I wonder if the entity being present in dm84 with just nodraw flag could interfere with some UDT analyzers, Im not familiar with them at all really. |
This would be a really wonderful addition to this project and offer support for a large user base. Would love to see it make it into UDT! |
just tested what happens with tv_84 conversion if players reconnect and converted demo playback stopped after disconnect. |
I looked at it briefly on the included etpro tv demo in the PR and it might feel like it stopped because when there is no valid tv player playerstate then snapshot is not written (snapshot contains playerstate and entities), but for example server commands are still written and will be read in game, it's just fast because there is nothing to render I guess. Easy way to test is to just look at demo file size after cut, when going beyond possible times (starting too soon or ending too late causes the file to be bigger than doing correct start and end times). Imo this is not acceptable not even from file size reasons but because you save a lot of server commands that are not relevant (it might be irrelevant for playing back the demo, but not really if you want to analyze it again with UDT as it will show commands from beyond when player existed). It seems it also "breaks" UDT parsing of such cut demo, a lot of warnings about |
Just wanted to say I can't wait to use this scanner for about 3 years worth of ET Legacy demos :) Scanning for headshots would be a nice feature as well, as a 6 headshot double kill is much better than a triple kill with bodyshots. |
Hello,
Some time ago I've added ET protocol support 84 and 284 (ETTV also known as tv 84) but I don't think it's 100% finished or would be up to your standard (for example I've changed some stuff where according to your comments it is an issue (API stuff)). And so I thought about opening PR as draft only (if it's not an issue) in case maybe you/someone would be interested in it and finishing it (I don't think I will unless you have interest in looking into it and letting me know what I should do, but I can't promise I would do it anyway) or just using it.
What I added more specifically:
UDT_PLAYER_STATS_MASK_BYTE_COUNT
from40
to50
, also see this https://github.com/mightycow/uberdemotools/pull/2/files#diff-24ee4628e8f257ce90821ffd08be109419d57ecdb6e23cd87fb4b5ab92655326R72