MantisBT - Zandronum
View Issue Details
0003272Zandronum[All Projects] Bugpublic2017-09-23 14:142018-09-30 23:24
Pawlacz 
Dusk 
normalminorsometimes
closedno change required 
LinuxLinux Mint18.1
3.0 
 
0003272: Error message appears in Multiplayer due to a looping projectile
During a multiplayer game when a projectile uses a user_x based condition for limiting a looping state a error message appears:
"Warning: Breaking infinite loop in actor LauncherGasGrenade.
Current offset from spawn state is 11"

The error message does not appear all the time so it takes a while for it to show up, also no gameplay breaking bug happens as in the game will continue normally despite the error message. I tried changing the Projectile actor a few times to fix it somehow but all it does is that the number reported is not very large anymore.

Offending actor: LauncherGasGrenade
1. Load the loopingbug.pk3 mod
2. Host a server and connect to it
3. Keep firing till the error message appears
No tags attached.
? loopingbug.pk3 (165,091) 2017-09-23 14:14
/tracker/file_download.php?file_id=2213&type=bug
Issue History
2017-09-23 14:14PawlaczNew Issue
2017-09-23 14:14PawlaczFile Added: loopingbug.pk3
2017-09-23 16:46DuskNote Added: 0018360
2017-09-23 16:46DuskStatusnew => resolved
2017-09-23 16:46DuskResolutionopen => no change required
2017-09-23 16:46DuskAssigned To => Dusk
2018-09-30 23:24Blzut3Statusresolved => closed

Notes
(0018360)
Dusk   
2017-09-23 16:46   
The client doesn't predict the A_JumpIf call so it assumes it to not jump until the server instructs the client otherwise. So the client can get stuck in the loop. This is not a bug but rather an unfortunate limitation of the client-side prediction involved.

Since the GasCloud actor appears to be decorative, I suggest to split the gas-spawning code into a new CLIENTSIDEONLY actor. That way there's no networking involved in the loop and it should work fine.