While I know GZDoom's netcode isn't the best and replacements are far off, I found myself with a side project a need for team-based player starts and I simply couldn't code it, even in ZScript. I kept respawning on deathmatch spots in testing.
I tried seeing if I could write some Pull Request for it but the code is very messy and I have no idea where to start.
So I wanted to see about talking about the concepts of this and see if it can gain enough traction and ideas to be warranted.
Team Player Starts
Moderator: GZDoom Developers
-
- Posts: 805
- Joined: Thu Apr 25, 2013 12:21 pm
- Preferred Pronouns: They/Them
- Operating System Version (Optional): Windows 11 for the Motorola Powerstack II
- Graphics Processor: nVidia with Vulkan support
- Location: The Corn Fields
- Contact:
- Matt
- Posts: 9696
- Joined: Sun Jan 04, 2004 5:37 pm
- Preferred Pronouns: They/Them
- Operating System Version (Optional): Debian Bullseye
- Location: Gotham City SAR, Wyld-Lands of the Lotus People, Dominionist PetroConfederacy of Saudi Canadia
- Contact:
Re: Team Player Starts
If you don't mind a rather involved hack here's a PlayerRespawned handler that checks some settings and then sets the player's position and orientation accordingly.
In this particular case the "teamspawns" array is determined by another event (player typing a command to set a spawn point for their team) but of course this can be adapted to refer to an actor on the map or whatever.
Some kind of check will be necessary to ensure:
(a) the respawning player doesn't telefrag anything at the original respawn location
(b) the original respawn location no longer shows the respawn teleport fog
I've done this in HD by directly altering the playerpawn's properties and have no idea how to prevent the telefrag otherwise, but some iterator use should be able to address (b).
In this particular case the "teamspawns" array is determined by another event (player typing a command to set a spawn point for their team) but of course this can be adapted to refer to an actor on the map or whatever.
Some kind of check will be necessary to ensure:
(a) the respawning player doesn't telefrag anything at the original respawn location
(b) the original respawn location no longer shows the respawn teleport fog
I've done this in HD by directly altering the playerpawn's properties and have no idea how to prevent the telefrag otherwise, but some iterator use should be able to address (b).
- TDRR
- Posts: 815
- Joined: Sun Mar 11, 2018 4:15 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): Debian 12/ Manjaro
- Graphics Processor: nVidia with Vulkan support
- Location: Venezuela
Re: Team Player Starts
I also tried this out in a GZDoom 1.8.6-compatible way in my Skulltag Emulation and my base for CTF here
It's quite simplistic but does the job if you don't need ZScript. It may also help when Skulltag's gamemodes get removed from Zandronum (which has been said a couple times).
It's quite simplistic but does the job if you don't need ZScript. It may also help when Skulltag's gamemodes get removed from Zandronum (which has been said a couple times).