MantisBT - Zandronum |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0004283 | Zandronum | [All Projects] Bug | public | 2024-05-14 07:06 | 2024-08-18 11:27 |
|
Reporter | unknownna | |
Assigned To | Kaminsky | |
Priority | urgent | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | |
Platform | | OS | | OS Version | |
Product Version | 3.2 | |
Target Version | 3.2 | Fixed in Version | 3.2 | |
|
Summary | 0004283: [3.2] Players can cheat and refill lost lives by dying during win sequences in survival invasion |
Description | If you deliberately die during a win sequence after a wave has ended and stay dead, you're automatically resurrected with full replenished lives that you lost during regular gameplay. |
Steps To Reproduce | 1. zandronum -file invasion_livesbug_01.wad +sv_maxlives 3 +map map01
2. Pick up the rocket launcher and wait for the countdown to finish.
3. When the monsters spawn, kill yourself first to lose 1 life.
4. Then kill the monsters, and then kill yourself again during the win sequence.
5. You will automatically respawn with all lives replenished. |
Additional Information | After testing this between 3.1 and 3.2, it seems to be a 3.2 regression. |
Tags | No tags attached. |
Relationships | related to | 0004284 | resolved | Kaminsky | Player loses life in survival invasion if staying dead during countdown to wave | related to | 0004313 | resolved | Kaminsky | [3.2] Lives counter not updated properly in survival invasion intermission screen. |
|
Attached Files | invasion_livesbug_01.wad (1,915) 2024-05-14 07:06 https://zandronum.com/tracker/file_download.php?file_id=3015&type=bug |
|
Issue History |
Date Modified | Username | Field | Change |
2024-05-14 07:06 | unknownna | New Issue | |
2024-05-14 07:06 | unknownna | File Added: invasion_livesbug_01.wad | |
2024-05-14 10:56 | unknownna | Relationship added | related to 0004284 |
2024-05-14 10:56 | unknownna | Status | new => confirmed |
2024-05-19 20:14 | Ru5tK1ng | Note Added: 0023706 | |
2024-06-08 08:37 | unknownna | Relationship added | related to 0004313 |
2024-07-26 15:03 | Kaminsky | Note Added: 0023821 | |
2024-07-26 15:03 | Kaminsky | Assigned To | => Kaminsky |
2024-07-26 15:03 | Kaminsky | Status | confirmed => needs review |
2024-07-26 15:03 | Kaminsky | Product Version | 3.1 => 3.2 |
2024-07-26 15:03 | Kaminsky | Target Version | => 3.2 |
2024-07-27 22:11 | unknownna | Note Added: 0023836 | |
2024-07-27 22:11 | unknownna | Status | needs review => feedback |
2024-07-29 14:20 | Kaminsky | Note Added: 0023844 | |
2024-07-29 14:20 | Kaminsky | Note Edited: 0023844 | bug_revision_view_page.php?bugnote_id=23844#r14318 |
2024-07-30 01:36 | unknownna | Note Added: 0023855 | |
2024-07-30 01:36 | unknownna | Status | feedback => assigned |
2024-07-30 01:36 | unknownna | Note Edited: 0023855 | bug_revision_view_page.php?bugnote_id=23855#r14324 |
2024-07-30 01:36 | unknownna | Note Edited: 0023855 | bug_revision_view_page.php?bugnote_id=23855#r14325 |
2024-07-30 15:58 | Kaminsky | Note Added: 0023864 | |
2024-07-31 14:36 | unknownna | Note Added: 0023869 | |
2024-08-13 14:35 | Kaminsky | Note Added: 0023932 | |
2024-08-13 14:35 | Kaminsky | Status | assigned => needs testing |
2024-08-14 22:19 | unknownna | Note Added: 0023939 | |
2024-08-14 22:19 | unknownna | Status | needs testing => feedback |
2024-08-15 03:53 | Kaminsky | Note Added: 0023945 | |
2024-08-15 03:53 | Kaminsky | Status | feedback => needs review |
2024-08-18 11:27 | unknownna | Note Added: 0023962 | |
2024-08-18 11:27 | unknownna | Status | needs review => resolved |
2024-08-18 11:27 | unknownna | Fixed in Version | => 3.2 |
2024-08-18 11:27 | unknownna | Resolution | open => fixed |
Notes |
|
|
|
|
|
|
|
|
This works as intended, but I'm wondering one thing: Is it intentional that dead spectators are allowed to enter the game again every wave? I thought you had to survive with all your lives only once in survival invasion. Comparing to 2.0 after a quick test, you are not respawned with full lives in every wave in 2.0. If you lose all your lives, you're out until the map is finished or the other players lose.
With the recent change in behavior, survival invasion is a lot easier now than it used to be. |
|
|
|
Quote from "unknownna" Is it intentional that dead spectators are allowed to enter the game again every wave? I thought you had to survive with all your lives only once in survival invasion.
For a long, it's been possible for true spectators to join the game in-between waves during countdowns. Admittedly, when I committed'https://foss.heptapod.net/zandronum/zandronum-stable/-/commit/f440159546536a64860054e95a8f7bfb4d22d7d9 [^]' I thought this behaviour was intended, judging from the code, and that dead spectators not being revived or the join queue being emptied was a bug. Now that I'm looking deeper into the repository's history, I see that this wasn't always the case. Originally, spectators were unable to join the game after the first wave's countdown, but this regressed at some point (i.e.'https://foss.heptapod.net/zandronum/zandronum-stable/-/commit/64e27f21da8c76442f7fb2b2fe7bf1de644ab175 [^]').
Even though this is a regression, I do think the current behaviour of reviving dead spectators and allowing true spectators to join the game at the end of a wave adds a new kind of dynamic to survival invasion. This can be useful for maps or mods where even a single wave can be extremely difficult or last for a long time, and it keeps players engaged since they don't have to wait a long time just to re-join, which really isn't fun, especially when there's no wave limit. It reminds me of other invasion-styled games like Zombies in Call of Duty where dead players are revived at the end of a wave. Though, I wouldn't mind adding something like a compatflag to restore the old behaviour of not allowing anyone to re-join after the first wave has started.
Now that I think about it, if we want to keep the current behaviour, then I think it's fair to replenish the lives of everyone that was already alive too.
|
|
|
|
Quote from Kaminsky For a long, it's been possible for true spectators to join the game in-between waves during countdowns.
I had no idea this was even possible, and had I known, I would've reported it as a bug ASAP. Seems like the first version this new behavior appears in is 3.1. It doesn't happen in 2.1.2 and 3.0.
Quote from Kaminsky Now that I think about it, if we want to keep the current behaviour, then I think it's fair to replenish the lives of everyone that was already alive too.
It would be consistent with the new behavior, but now we're talking about changing up the mode a lot though. It feels more like a mutator/DMFlag than a compatflag to me, e.g. "let players join every wave". The new behavior is made on top of some regression with the join code, which in turn changed up the mode considerably.
|
|
|
|
Quote from "unknownna" I had no idea this was even possible, and had I known, I would've reported it as a bug ASAP. Seems like the first version this new behavior appears in is 3.1. It doesn't happen in 2.1.2 and 3.0.
Ah, I was wrong then (admittedly, I didn't check 3.0 or earlier when I posted my other comment). Sorry about that. This regression started much sooner and likely as a result of:'https://foss.heptapod.net/zandronum/zandronum-stable/-/commit/689fe48904f39000b32d02f20e7eb88ef8c6595d [^]' then. If that's the case, then this whole approach seems wrong. It's still a question if the current "regressed" behaviour is worth keeping as an option, or if I should revert some of the changes along with fixing the regression. |
|
|
|
Quote from Kaminsky It's still a question if the current "regressed" behaviour is worth keeping as an option, or if I should revert some of the changes along with fixing the regression.
I think the changes should perhaps be reverted, with the new behavior added as a DMFlag or something. Since the other FPS games allow you to join after every wave, it would be nice to support it in Zandronum as well. Like you said, some waves and map packs can take quite long indeed and it's not fun to wait.
You end up with 2 styles of survival invasion:
* Regular survival invasion where you have to survive from start to finish. This works well with sv_maxlives 2+.
* Alternate modern survival invasion where you can join the game every wave. It would probably be most fun when sv_maxlives is only 1.
If you support the new behavior, you should probably replenish surviving players' lives every wave too, as said earlier. |
|
|
|
|
|
|
Ok, initial testing seems to indicate that it's working well. Dead spectators and players in the join queue can't join the game at every wave start anymore unless sv_respawninsurvivalinvasion is 1.
And lives are replenished every wave when it's set to 1 as expected.
But the sv_respawninsurvivalinvasion variable doesn't have a server notification message when it's changed.
Quote from Kaminsky I also fixed players potentially "cheating" by dying in the middle of a wave, then waiting to respawn until the wave's complete to avoid losing a life.
Good catch. |
|
|
|
Quote from "unknownna" But the sv_respawninsurvivalinvasion variable doesn't have a server notification message when it's changed.
This merge request should take care of the missing server notification message (which only appears in online survival invasion games):'https://foss.heptapod.net/zandronum/zandronum-stable/-/merge_requests/168 [^]'
Thanks for testing everything else thoroughly, as always. |
|
|
|
Tested the latest fix and it works. Great job! |
|