Skip to content
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

Recent demos cannot be processed anymore: CL_ParseServerMessage: Unknown cmd type #1

Closed
tcsabina opened this issue Mar 22, 2020 · 11 comments

Comments

@tcsabina
Copy link
Collaborator

tcsabina commented Mar 22, 2020

I saw some discussion on Discord about this. Something to do with BigCoords, whatever that should mean...

Would be nice to bring this tool back to life.

@clayg
Copy link

clayg commented Apr 9, 2020

Does anyone have an example of a .mvd demo that failures with error?

@deurk
Copy link
Member

deurk commented Apr 9, 2020

Did you get one @clayg ?

@fzwoch
Copy link
Contributor

fzwoch commented Apr 9, 2020

I think any server with sv_bigcoords 1 should create such demos.

E.g. https://www.quakeservers.net/quakeworld/server_status/3593/ it seems to be listed in the status aswell.

@bleader
Copy link

bleader commented Apr 13, 2020

I'm afraid that there are other things, for testing I hardcoded some things:

  • replaced the return on unknown cmd by a break so we keep processing
  • hardcoded MSG_ReadCoord() and MSG_ReadAngle() to work like msg_coordsize = 4 and msg_anglesize = 2

It does process the whole demo, and info logged seem to be accurate, but there still are a lot of CL_ParseServerMessage: Unknown cmd type. error messages. I guess there are other format that may be different.

@fzwoch
Copy link
Contributor

fzwoch commented Apr 13, 2020

@bleader
Copy link

bleader commented Apr 13, 2020

Perhaps it is worth checking out:

https://github.com/jogi1/mvd_parser_lib

As far as I can tell, the functions MVD_MSG_ReadCoord() and MVD_MSG_ReadAngle() are the same as in mvdparser, aka: the old version not handling bigcoords.

@clayg
Copy link

clayg commented Apr 19, 2020

@fzwoch I used the server you suggested and created a demo, it's available here:

https://drive.google.com/file/d/1wY_TKulS8cOJaAwAPGYqxVg7hYUMEgpS/view?usp=sharing

@bleader for me when I tried to process this demo I got this error:

clayg@banana:~/quake/mvdparser$ ./mvdparser test.mvd
CL_ParseServerMessage: Unknown cmd type.
MVD_Parser_StartParse: Failed to parse server message.

@fzwoch
Copy link
Contributor

fzwoch commented Apr 19, 2020

Jogi's parser in Go seems to handle is just fine. So if there is extra code required one should be able to find it there.

Here is the sample output for that test.mvd:

{
	"hostname": "KTX #1 @ nicotinelounge.com",
	"map_name": "Smile, It Gets Worse",
	"map_file": "maps/ztndm1.bsp",
	"players": [
		{
			"name_sanatized": "OldDevel",
			"name_int": "79 108 100 68 101 118 101 108",
			"team_sanatized": "",
			"team_int": "",
			"frags": "2",
			"deaths": "24",
			"Suicides": "0",
			"itemstats": {"Axe":{"Damage":0,"Drop":0,"Pickup":0},"GreenArmor":{"Damage_Absorbed":0,"Pickup":7},"GrenadeLauncher":{"Damage":0,"Drop":8,"Pickup":8},"LightningGun":{"Damage":0,"Drop":13,"Pickup":13},"MegaHealth":{"Drop":0,"Pickup":2},"NailGun":{"Damage":0,"Drop":1,"Pickup":1},"Pentagram":{"Drop":0,"Pickup":0},"Quad":{"Drop":0,"Pickup":0},"RedArmor":{"Damage_Absorbed":0,"Pickup":12},"Ring":{"Drop":0,"Pickup":0},"RocketLauncher":{"Damage":0,"Drop":12,"Pickup":13},"Shotgun":{"Damage":0,"Drop":0,"Pickup":0},"SuperNailGun":{"Damage":0,"Drop":11,"Pickup":11},"SuperShotgun":{"Damage":0,"Drop":13,"Pickup":14},"YellowArmor":{"Damage_Absorbed":0,"Pickup":0}}
		},
		{
			"name_sanatized": "/ bro",
			"name_int": "47 32 98 114 111",
			"team_sanatized": "blue",
			"team_int": "98 108 117 101",
			"frags": "24",
			"deaths": "2",
			"Suicides": "0",
			"itemstats": {"Axe":{"Damage":0,"Drop":0,"Pickup":0},"GreenArmor":{"Damage_Absorbed":0,"Pickup":4},"GrenadeLauncher":{"Damage":0,"Drop":3,"Pickup":4},"LightningGun":{"Damage":0,"Drop":3,"Pickup":4},"MegaHealth":{"Drop":0,"Pickup":9},"NailGun":{"Damage":0,"Drop":2,"Pickup":3},"Pentagram":{"Drop":0,"Pickup":0},"Quad":{"Drop":0,"Pickup":0},"RedArmor":{"Damage_Absorbed":0,"Pickup":0},"Ring":{"Drop":0,"Pickup":0},"RocketLauncher":{"Damage":0,"Drop":3,"Pickup":4},"Shotgun":{"Damage":0,"Drop":0,"Pickup":0},"SuperNailGun":{"Damage":0,"Drop":3,"Pickup":4},"SuperShotgun":{"Damage":0,"Drop":3,"Pickup":3},"YellowArmor":{"Damage_Absorbed":0,"Pickup":6}}
		}
	]
}

@d2-d2
Copy link

d2-d2 commented May 28, 2020

Jogi's version is also buggy. It's not counting frags/deaths properly. I have reported this via discord. Waiting for response :P

@meag
Copy link
Contributor

meag commented Sep 19, 2020

Fix should be included in #4

@tcsabina
Copy link
Collaborator Author

Closing, as it has been fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants