MantisBT - Zandronum
View Issue Details
0000256Zandronum[All Projects] Bugpublic2011-01-08 21:142018-09-30 20:10
Borg 
Torr Samaho 
normalminorsometimes
closedfixed 
98d 
1.0 
0000256: RandomSpawner class doesnt always spawn monsters
I noticed that on multiplayer games RandomSpawner doesnt always spawn
a monster.

This was noticed playing Ultimate DOOM Survival with:
- doom2_th.wad (doom2 monsters for archvile)
- pclasses-v0.294.wad

Not sure if its only BaronOfHell is affected, but since on doom.wad
they are quite rare, we were able to stop this.
Following code should always spawn a one monster:

actor YBaronOfHell : RandomSpawner replaces BaronOfHell
{
+ISMONSTER
DropItem "MBaronOfHell"
DropItem "Afrit"
DropItem "CyberBaron"
DropItem "BruiserDemon"
DropItem "WarlordOfHell"
}
No tags attached.
? randomspawner_test.wad (9,073) 2011-01-19 04:27
/tracker/file_download.php?file_id=134&type=bug
Issue History
2011-01-08 21:14BorgNew Issue
2011-01-09 20:39user35Note Added: 0000797
2011-01-09 20:41user35Note Edited: 0000797bug_revision_view_page.php?bugnote_id=797#r370
2011-01-09 21:23BorgNote Added: 0000798
2011-01-10 18:27user35Note Added: 0000800
2011-01-10 20:21BorgNote Added: 0000805
2011-01-12 19:15user35Note Added: 0000808
2011-01-19 02:59Torr SamahoNote Added: 0000833
2011-01-19 02:59Torr SamahoStatusnew => feedback
2011-01-19 04:27unknownnaFile Added: randomspawner_test.wad
2011-01-19 04:41unknownnaNote Added: 0000834
2011-01-19 13:08Torr SamahoNote Added: 0000839
2011-01-19 20:35unknownnaNote Added: 0000840
2011-01-23 23:57Torr SamahoNote Added: 0000858
2011-01-27 04:17unknownnaNote Added: 0000881
2011-01-29 23:21Torr SamahoStatusfeedback => resolved
2011-01-29 23:21Torr SamahoFixed in Version => 1.0
2011-01-29 23:21Torr SamahoResolutionopen => fixed
2011-01-29 23:21Torr SamahoAssigned To => Torr Samaho
2012-06-09 13:22Torr SamahoCategoryGeneral => Bug
2018-09-30 20:10Blzut3Statusresolved => closed

Notes
(0000797)
user35   
2011-01-09 20:39   
(edited on: 2011-01-09 20:41)
I think thats not a bug, you need to enter something like this:
e.g:
Actor BaronOfHell0 : BaronOfHell
{
}

Actor BaronOfHellSpawner : RandomSpawner replaces BaronOfHell
{
DropItem "BaronOfHell0"
DropItem "Afrit"
DropItem "CyberBaron"
}
EDIT: what I said is we made another actor named BaronOfHell0 that gets the code from original Baron because in our case, baron is now a randomspawner that will spawn Baron0, afrit or cyberbaron, all of them have the same chance of being spawned!
I hope this helps

(0000798)
Borg   
2011-01-09 21:23   
As you can see, there is DropItem "MBaronOfHell" line. So yes, I have
modified version of BaronOfHell..
The problem is that this works pefectly on single player,
both ZDOOM and SKULLTAG.
Ive done a lot of tests on E2M9 od Ultimate Doom, when you start in room
w/ four barons. On single player always 4 barons appears
(randomized of course), but on NetGames of Survival when we died few times
I noticed that it was quite random, we had 2 or 3 barons or even 1 once,
sometimes of course 4. SO I think this does not apply :)
(0000800)
user35   
2011-01-10 18:27   
ok, sorry
but then, I don't see the problem you mention, I think this is the way that RandomSpawner works
sometimes happen but very rarely to EVEN spawn ALL BARONS to be Barons of hell and not other classes
it happens but very rarely
(0000805)
Borg   
2011-01-10 20:21   
well. its no problem if it spawns ALL barons... but sometimes
it just doesnt spawn anything.. and this is wrong.
(0000808)
user35   
2011-01-12 19:15   
ah ok, I understand what you meant:
sometimes online, the spawner doesn't spawn anything
I have never tried to play online some of these wads though I have created a monsters.wad that had randomspawner
(0000833)
Torr Samaho   
2011-01-19 02:59   
Can anybody confirm this behavior? If so, can somebody create a minimal example wad?
(0000834)
unknownna   
2011-01-19 04:41   
Confirmed online and offline. It occurs after the survival countdown timer has ended.

Steps to reproduce quickly:

1) "survival 1; sv_survivalcountdowntime 1" in the console.
2) "map MAP01" in the console.
3) Once the warm-up countdown ends, some monsters are unable to spawn.
4) Turn into a spectator.
5) Join the game.

Repeat step 3, 4 and 5.
(0000839)
Torr Samaho   
2011-01-19 13:08   
Thanks to your nice example wad, I think I managed to figure out what's going on. Please test if this fixes the problem.
(0000840)
unknownna   
2011-01-19 20:35   
It fixed it from what I can tell. All of the 16 random spawners successfully spawn a monster when the warm-up countdown ends, online and offline.

If the game is on a server, the DMFlags2 are updated whenever the last player in a survival game turns into a spectator/disconnects. Is this intentional?

And also, is there a way to bypass the 10-second threshold for joining a game online? It'd be nice to have something like that when you're doing online testing. I know that you can bypass the vote limit by setting "sv_limitnumvotes" to false.

ACS scripts are unloaded twice offline (both in normal and multiplayer emulation games). When the map starts, and when the warm-up countdown ends. It's not like this online.
(0000858)
Torr Samaho   
2011-01-23 23:57   
> If the game is on a server, the DMFlags2 are updated whenever the last player in a survival game turns into a spectator/disconnects. Is this intentional?

The dmflags2 are reapplied intentionally when survival switches to the SURVS_WAITINGFORPLAYERS state. Since the flags are not actually changed, the message itself is superfluous though (but not trivial to suppress).

> And also, is there a way to bypass the 10-second threshold for joining a game online? It'd be nice to have something like that when you're doing online testing.

Currently there is not CVAR for this, one could add one though. If you think this is necessary, please make a request for this. This makes it easier to keep track of things.

> ACS scripts are unloaded twice offline (both in normal and multiplayer emulation games). When the map starts, and when the warm-up countdown ends. It's not like this online.

It's also like this online on the server, you just don't see it on the clients. Since ACS is completely reloaded after a map reset, this message naturally appears upon a map reset.
(0000881)
unknownna   
2011-01-27 04:17   
Ok, good.

> Currently there is not CVAR for this, one could add one though. If you think this is necessary, please make a request for this. This makes it easier to keep track of things.

I'll keep that in mind, thanks.