MantisBT - Zandronum
View Issue Details
0002682Zandronum[All Projects] Bugpublic2016-03-29 03:212024-03-01 20:53
DaWrecka 
 
normalminoralways
newopen 
MicrosoftWindowsXP/Vista/7
2.1 
 
0002682: Enemy set translucent never becomes opaque again, but only in netplay
An enemy called the Overlord in (among other mods) Project Brutality has a teleport ability in which it fades out, teleports, then fades back in. The actor SHOULD become transparent briefly, then return to full opacity. In singleplayer mode, this is exactly what happens. However, in coop netplay, the Overlord never fades back in, instead attacking while transparent. The player is forced to simply spam weapons at whereever projectiles are spawning from and hope for the best.
1) Load the attached file in Zandronum in singleplayer, and load any map.
2) Open the console, and use the command Summon Overlord
2a) Optional: Use god mode; the Overlord is extremely powerful and will likely kill you in moments otherwise.
3) Hang back away from the Overlord and let it do its thing; it won't use the teleport from close range. It shouldn't take too long before it does its teleporting thing. It will fade out, move, (probably closer, perhaps behind the player) and fade back in.
4) Next, start any map, this time in coop mode. You must be connected to a server for this to work. Cheats should be enabled for convenience.
5) Summon the Overlord as before, and again hang back and observe. Its teleport should fade out as normal, but it will never fade back in, instead attacking while entirely invisible.
I've not been able to test with GZDoom coop, as I can't get GZDoom netplay to work. However, in GZDoom singleplayer it works as expected, like with Zandronum.
Multiplayer emulation with bots acts as singleplayer; only in actual network mode does the problem occur.
The PK3 will not load on version 2.1.2 of Zandronum; version 3.0-alpha or later is REQUIRED.

The DECORATE code for the Overlord has been uploaded to'http://pastebin.com/hW6fvVaS; [^]' The code for the teleport starts around line 240 of the paste. Unfortunately I'm not familiar-enough with ACS to know how to pare the code down to JUST the teleport.
No tags attached.
child of 0002840assigned Torr Samaho A_Jump(256, ...) misprediction 
? OverlordTest.pk3 (1,021,574) 2016-03-29 03:21
https://zandronum.com/tracker/file_download.php?file_id=1763&type=bug
txt decorate.txt (1,671) 2016-03-29 11:09
https://zandronum.com/tracker/file_download.php?file_id=1764&type=bug
Issue History
2016-03-29 03:21DaWreckaNew Issue
2016-03-29 03:21DaWreckaFile Added: OverlordTest.pk3
2016-03-29 11:07Edward-sanNote Added: 0014615
2016-03-29 11:09Edward-sanFile Added: decorate.txt
2016-03-29 11:13Edward-sanNote Edited: 0014615bug_revision_view_page.php?bugnote_id=14615#r8852
2016-03-29 11:32Edward-sanNote Edited: 0014615bug_revision_view_page.php?bugnote_id=14615#r8853
2016-03-29 11:32Edward-sanNote Edited: 0014615bug_revision_view_page.php?bugnote_id=14615#r8854
2016-03-29 13:40arkoreNote Added: 0014616
2016-11-27 17:03Torr SamahoNote Added: 0016361
2016-11-27 17:03Torr SamahoProduct Version3.0-beta => 2.1
2024-03-01 20:53Ru5tK1ngRelationship addedchild of 0002840

Notes
(0014615)
Edward-san   
2016-03-29 11:07   
(edited on: 2016-03-29 11:32)
The problem is not caused by the translucent code. I verified this by using this modified overlord decorate file, attached here.

If in the original overlord test pk3 the 'Teleport' state is reduced to 'goto See', the real problem is more clear and is caused by the actor being destroyed by the client when processing the 'Missile' state, which has this:


OVER D 0 A_Jump(256,"Missile1","Missile2","Missile3")


(0014616)
arkore   
2016-03-29 13:40   
Off-topic:
While I'm here (viewing this Issue), I'll mention something about timefreeze.

Timefreeze can mess up an actor's state and throw the actor back into See state before the previous state completed. So, you may want to have A_SetTranslucent(1) and A_UnSetInvulnerable always running (placed as your first lines in See: state).
(0016361)
Torr Samaho   
2016-11-27 17:03   
Yeah, 0002682:0014615 is correct.

    OVER D 0 A_Jump(256,"Missile1","Missile2","Missile3")
    stop

is the culprit. Our current jump handling can't cope with this. This is not 3.0 specific, it never worked online.