Zandronum Chat on our Discord Server Get the latest version: 3.2
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001198Zandronum[All Projects] Bugpublic2012-12-02 13:512014-07-08 10:33
ReporterZzZombo 
Assigned ToTorr Samaho 
PrioritynormalSeveritymajorReproducibilityalways
StatusfeedbackResolutionreopened 
PlatformMicrosoftOSWindowsOS VersionXP/Vista/7
Product Version 
Target VersionFixed in Version 
Summary0001198: Player_SetTeam() leaves a ghost player body when the player is morphed
DescriptionAs I've described in my mod's thread, when using this function along with morphing the player leaves the a ghost body of the morphed form. It causes the server to crash when it unloads map. I've shrunk my mod but players leave ghosts bodies now when switched between teams without making the server to crash anymore.
Steps To ReproduceLoad attached WAD on D2ST1 in teamgame mode. You can add some bots. Puke script 0000821 player_idx, where player_idx number of the player you wish to infect. At location where he was in time of being infected you will find the ghost body. It can be invisible but it becomes visible when attacked.
Additional InformationPossibly related to an old bug there morphed players with no weapons at the time of map unloading caused the server to crash.

Also an unrelated issue: if you run the file in any other gamemodes the script will try to restart the map in teamgame mode, but as you can see it will fail because the line str s=StrParam(s:"map ",n:PRINTNAME_LEVEL); will produce just "map " and then ConsoleCommand(s); won't work.

When you join the game with the join command you bypass the script that checks joining players' team to move them to humans if necessary.
Attached Files? file icon skulltag_bug_example9.pk3 [^] (92,933 bytes) 2012-12-02 13:51
zip file icon CrashReport.zip [^] (42,397 bytes) 2012-12-09 11:24
? file icon ghostactortestmap.wad [^] (1,583 bytes) 2013-07-02 20:14
? file icon skulltag_bug_example10.pk3 [^] (2,775 bytes) 2014-07-08 10:33

- Relationships

-  Notes
User avatar (0005489)
Torr Samaho (administrator)
2012-12-09 09:47

The problem here is that you are creating an illegal state: The player class Human has "LimitedToTeam 0". When you use Player_SetTeam to change the team of a "Human" player to 1, you create a player on team 1 with a class that is limited to team 0. This is forbidden and the engine resolves this by respawning said player with a class allowed to team 1 (this is also why RESPAWN scripts are triggered by Player_SetTeam here). The respawning internally wasn't done properly though which led to the ghost player. This should hopefully prevent ghost players from appearing.
User avatar (0005492)
ZzZombo (reporter)
2012-12-09 10:59

Hm. Is where some way around to change player class without morphing? Morphing AFAIK is used only to temporary change it while I need the effect to be permanent. Maybe introduce a new function to change the player class on the fly?

BRB testing.
User avatar (0005493)
Torr Samaho (administrator)
2012-12-09 11:07
edited on: 2012-12-09 11:09

Zandronum will automatically change the player class when you change the team and the current class is not allowed to the new team. In your case, if you change the team to infected, the player should automatically be respawned with the infected class.

EDIT: Did the new binary fix the problems with the ghost player?

User avatar (0005494)
ZzZombo (reporter)
2012-12-09 11:23
edited on: 2012-12-09 11:24

Quote from Torr Samaho
EDIT: Did the new binary fix the problems with the ghost player?
No, although I couldn't find the ghost bodies anywhere, but the server crashed once when I invoked changemap. Crash report attached.

Quote from Torr Samaho
Zandronum will automatically change the player class when you change the team and the current class is not allowed to the new team.
The reason I ask for s separate function is that I don't what the player to respawn. It causes the server to move the player to his team spawn spot, but I need him to stay where he was at time of infection.

Quote from Torr Samaho
In your case, if you change the team to infected, the player should automatically be respawned with the infected class.
After changemap some of infected players could get into the Humans team.

User avatar (0005496)
Torr Samaho (administrator)
2012-12-09 11:33

Quote from ZzZombo
No, although I couldn't find the ghost bodies anywhere, but the server crashed once when I invoked changemap. Crash report attached.
Doesn't crash for me and your crash log doesn't show what's going wrong. Can you tell me exactly how to reproduce the crash?

Quote from ZzZombo
The reason I ask for s separate function is that I don't what the player to respawn. It causes the server to move the player to his team spawn spot, but I need him to stay where he was at time of infection.
Changing the player class technically requires the player to be respawned. We can think about letting Player_SetTeam respawn the player at the position he was though.

Quote from ZzZombo
After changemap some of infected players could get into the Humans team.

Please tell me exactly how to reproduce this.
User avatar (0005497)
ZzZombo (reporter)
2012-12-09 12:22
edited on: 2012-12-09 12:27

Hm, it didn't crash with the "light" version of the WAD, but crashed with the unstripped version.

It's very strange but I can't run the executable you've given me as client anymore, because it hangs after level authentication. It suddenly timeouts from the server. No skins or other autoloaded files are present.

But what I did is just running the game with a few bots, infecting some of them and then invoking changemap. In the light version it should changemap successfully but with some bots as Infected in the human team. In the actual version it'll crash. The download link of the full version are here:'http://zandronum.com/forum/showthread.php?tid=1628. [^]' UPD: Best-Ever servers are down for a while so the files can't be downloaded right now and I can't reupload from this connection :/.

EDIT: forgot to mention that some of bots were dead at the time of changemap.

User avatar (0005500)
Torr Samaho (administrator)
2012-12-09 20:15
edited on: 2012-12-09 20:19

Please let me know when the files are available for download again.

Quote from ZzZombo
In the light version it should changemap successfully but with some bots as Infected in the human team.
Can't reproduce this. Please list all steps necessary to get an infected on the human team.

User avatar (0006026)
Qent (updater)
2013-02-14 20:50
edited on: 2013-02-14 21:53

The files are available again:

'http://static.best-ever.org/wads/zzz_infectedhorde-alpha-27-11-2012.pk3 [^]'
'http://static.best-ever.org/wads/zzz_infectedhorde_acs-alpha-27-11-2012.pk3 [^]'
'http://static.best-ever.org/wads/zzz_infectedhorde_music-alpha-27-11-2012.pk3 [^]'
'http://static.best-ever.org/wads/infected_horde-test-27-11-2012.wad [^]'

I have not been able to get infected on the human team either.

To clarify: the script that forces all joining players to start on the human team seems to break, but all those who do end up on the human team are human, and all on the infected team are infected.

User avatar (0006064)
Torr Samaho (administrator)
2013-02-23 16:26

Quote from Qent
To clarify: the script that forces all joining players to start on the human team seems to break, but all those who do end up on the human team are human, and all on the infected team are infected.
Do you know whether it breaks due to a bug in the script or in Zandronum's ACS handling? If it's the latter, can somebody create a minimal example wad that demonstrates the problem?
User avatar (0006263)
Dusk (developer)
2013-04-07 00:04

From what I gathered on IRC, consensus is that the example given is too sloppily coded to demonstrate anything. A proper example wad is necessary here.
User avatar (0006283)
Arco (updater)
2013-04-11 21:42
edited on: 2013-06-11 04:26

I managed to get the dummy actor to spawn on V1.1 by simply adding one bot on my server. I'm not thoroughly convinced that Zand is committing this, and the bot that was forced onto a team had been a zombie prior to joining the human team. It spawns the corpses of the morphed bots while ACS mandates that only humans can spawn, and not zombies.

Edit: This still happens in 130512-1932.

User avatar (0006549)
ForrestMarkX (reporter)
2013-07-02 04:42
edited on: 2013-07-02 04:53

Here is my example of this issue, I tried to make it as simple as possible

'http://static.best-ever.org/wads/ghostactortestmap.wad [^]'

The map and gametype to use is map01 and teamdeathmatch. Join in as team Ghost and you'll be automatically changed to the Normal team, this is where the ghost actor will be spawned. My solution to fix this problem is to kill the actor first then change his team

User avatar (0006557)
Torr Samaho (administrator)
2013-07-02 20:13
edited on: 2013-07-02 20:14

ghostactortestmap.wad works started with
zandronum.exe -file ghostactortestmap.wad -host +teamdm 1

works fine for me in the latest 1.1 testing binary. Did you really manage to reproduce the error in 1.1 or did you only test 1.0?

User avatar (0006559)
ForrestMarkX (reporter)
2013-07-03 02:17

I did the test in 1.0 and 1.1 but I could of been using a older version of 1.1
User avatar (0006564)
Torr Samaho (administrator)
2013-07-03 19:59

Can you confirm that the problem is fixed for you in the latest 1.1 beta build?
User avatar (0006566)
Torr Samaho (administrator)
2013-07-04 18:11

ForrestMarkX told me that the latest 1.1 build indeed fixes the problem for him.
User avatar (0006567)
Dusk (developer)
2013-07-04 18:15

Does this mean we can consider this resolved?
User avatar (0006568)
Torr Samaho (administrator)
2013-07-04 18:24

0001198:0005494 claims that there are problems left after the fix, I wasn't able to reproduce any of these problems though. Since ZzZombo didn't give anymore feedback, I don't see anything we can do about this though.

Furthermore, 0001198:0006283 talks about bot related problems. There is no detailed instruction on how to reproduce those though either.
User avatar (0006631)
Arco (updater)
2013-07-14 19:02
edited on: 2013-07-14 19:06

I tested this ticket with ghostactortestmap.wad and with human and bot clients . It appears to be working perfectly. I'm assuming ZzZombo's example gave me a false flag due to his coding. Also, there are no issues on my part regarding ZzZombo's previous posts.

User avatar (0006639)
Dusk (developer)
2013-07-14 20:41

I think we can just close this at this point. Re-open if the issue crops up again.
User avatar (0009902)
ZzZombo (reporter)
2014-07-08 10:31

I again got this to happen. Load the newly attached file w/ server (teamgame, any stock map w/ team starts will do, I used D2CTF3), connect to it and add a bunch of bots (I used 7). After the game chooses a player to become the Hunter inspect the world (you might wanna to use the god cheat to prevent dying in the process) and eventually you'll notice a ghost body of the Hunter. Some of them can't be attacked and killing them kills the actual player, pretty much like a voodoo doll. Some of them just stay there, they don't block path or anything.

Issue Community Support
Only registered users can voice their support. Click here to register, or here to log in.
Supporters: No one explicitly supports this issue yet.
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2012-12-02 13:51 ZzZombo New Issue
2012-12-02 13:51 ZzZombo File Added: skulltag_bug_example9.pk3
2012-12-09 08:26 Torr Samaho Assigned To => Torr Samaho
2012-12-09 08:26 Torr Samaho Status new => assigned
2012-12-09 09:47 Torr Samaho Note Added: 0005489
2012-12-09 09:47 Torr Samaho Status assigned => needs testing
2012-12-09 10:59 ZzZombo Note Added: 0005492
2012-12-09 11:07 Torr Samaho Note Added: 0005493
2012-12-09 11:09 Torr Samaho Note Edited: 0005493 View Revisions
2012-12-09 11:23 ZzZombo Note Added: 0005494
2012-12-09 11:24 ZzZombo File Added: CrashReport.zip
2012-12-09 11:24 ZzZombo Note Edited: 0005494 View Revisions
2012-12-09 11:33 Torr Samaho Note Added: 0005496
2012-12-09 12:22 ZzZombo Note Added: 0005497
2012-12-09 12:23 ZzZombo Note Edited: 0005497 View Revisions
2012-12-09 12:27 ZzZombo Note Edited: 0005497 View Revisions
2012-12-09 20:15 Torr Samaho Note Added: 0005500
2012-12-09 20:19 Torr Samaho Note Edited: 0005500 View Revisions
2012-12-18 20:41 Dusk Target Version => 1.1
2013-02-14 20:50 Qent Note Added: 0006026
2013-02-14 21:53 Qent Note Edited: 0006026 View Revisions
2013-02-23 16:26 Torr Samaho Note Added: 0006064
2013-04-07 00:04 Dusk Note Added: 0006263
2013-04-07 00:04 Dusk Status needs testing => feedback
2013-04-11 21:42 Arco Note Added: 0006283
2013-06-11 04:26 Arco Note Edited: 0006283 View Revisions
2013-07-02 04:42 ForrestMarkX Note Added: 0006549
2013-07-02 04:52 ForrestMarkX Note Edited: 0006549 View Revisions
2013-07-02 04:53 ForrestMarkX Note Edited: 0006549 View Revisions
2013-07-02 20:13 Torr Samaho Note Added: 0006557
2013-07-02 20:14 Torr Samaho Note Edited: 0006557 View Revisions
2013-07-02 20:14 Torr Samaho Note Revision Dropped: 6557: 0003636
2013-07-02 20:14 Torr Samaho File Added: ghostactortestmap.wad
2013-07-03 02:17 ForrestMarkX Note Added: 0006559
2013-07-03 19:59 Torr Samaho Note Added: 0006564
2013-07-04 18:11 Torr Samaho Note Added: 0006566
2013-07-04 18:15 Dusk Note Added: 0006567
2013-07-04 18:24 Torr Samaho Note Added: 0006568
2013-07-14 19:02 Arco Note Added: 0006631
2013-07-14 19:06 Arco Note Edited: 0006631 View Revisions
2013-07-14 20:30 Dusk Target Version 1.1 =>
2013-07-14 20:41 Dusk Note Added: 0006639
2013-07-14 20:41 Dusk Status feedback => closed
2013-07-14 20:41 Dusk Resolution open => unable to reproduce
2014-07-08 10:31 ZzZombo Note Added: 0009902
2014-07-08 10:31 ZzZombo Status closed => feedback
2014-07-08 10:31 ZzZombo Resolution unable to reproduce => reopened
2014-07-08 10:33 ZzZombo File Added: skulltag_bug_example10.pk3






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2025 MantisBT Team
Powered by Mantis Bugtracker