MantisBT - Zandronum
View Issue Details
0000142Zandronum[All Projects] Bugpublic2010-10-27 04:302015-09-01 17:25
Anonymous 
 
normalminoralways
closednot fixable 
98c 
 
0000142: A_Jump desync in flash state.
A_Jump in the flash state works correctly offline, however online it desyncs and plays the frames incorrectly.

Here is the code it was found with:
Actor PlasmaRifle~ : PlasmaRifle replaces PlasmaRifle
{
  Decal PlasmaScorch
  Weapon.PreferredSkin "Plasma-DoomMarine"
  States
  {
  Fire:
    PLSG A 0 A_JumpIfInventory("RedTeamChecker", 1, 4)
    PLSG A 0 A_FireCustomMissile ("PlasmaBall")
    PLSG A 3 A_GunFlash
    PLSG B 20 A_ReFire
    goto Ready
    PLSG A 0 A_FireCustomMissile ("RedPlasmaBall")
    PLSG A 3 A_GunFlash
    PLSG B 20 A_ReFire
    goto Ready
  Flash:
    PLSF A 0 A_JumpIfInventory("RedTeamChecker", 1, 6)
    PLSF A 0 bright A_Jump (128, 3)
    PLSF A 4 bright A_Light1
    PLSF A 0 bright A_Light0
    stop
    PLSF B 4 bright A_Light1
    PLSF B 0 bright A_Light0
    stop
    RLSF A 0 bright A_Jump (128, 3)
    RLSF A 4 bright A_Light1
    RLSF A 0 bright A_Light0
    stop
    RLSF B 4 bright A_Light1
    RLSF B 0 bright A_Light0
    stop
  }
}
Simply load this wad:'http://wadhost.fathax.com/files/Deathball-V1.1.zip [^]' in an offline match and use the plasma rifle on both red and blue team and it should work perfectly fine. Then load it in an online game and try the plasma rifle on both teams and it will desync and only play one frame of the flash state.
No tags attached.
has duplicate 0000251closed Torr Samaho A_Jump() does NOT work in net games properly on Flash state 
? jumpoffset_behavior_test.wad (803) 2010-10-28 05:48
/tracker/file_download.php?file_id=49&type=bug
? jumpoffset_behavior_test_02.wad (2,362) 2011-01-20 17:42
/tracker/file_download.php?file_id=135&type=bug
Issue History
2010-10-27 04:30AnonymousNew Issue
2010-10-28 05:45unknownnaNote Added: 0000475
2010-10-28 05:48unknownnaFile Added: jumpoffset_behavior_test.wad
2011-01-19 01:12Torr SamahoRelationship addedhas duplicate 0000251
2011-01-20 12:38Torr SamahoNote Added: 0000843
2011-01-20 12:39Torr SamahoAssigned To => Torr Samaho
2011-01-20 12:39Torr SamahoStatusnew => feedback
2011-01-20 17:41unknownnaNote Added: 0000844
2011-01-20 17:42unknownnaFile Added: jumpoffset_behavior_test_02.wad
2011-01-20 21:17unknownnaNote Edited: 0000844bug_revision_view_page.php?bugnote_id=844#r391
2011-01-21 03:04Torr SamahoNote Added: 0000845
2011-01-21 03:29unknownnaNote Added: 0000846
2011-01-21 03:45unknownnaNote Edited: 0000846bug_revision_view_page.php?bugnote_id=846#r393
2011-01-21 03:53unknownnaNote Edited: 0000846bug_revision_view_page.php?bugnote_id=846#r394
2011-01-23 10:21BorgNote Added: 0000856
2011-01-27 03:06Torr SamahoNote Added: 0000879
2012-06-09 13:22Torr SamahoCategoryGeneral => Bug
2015-09-01 17:25DuskNote Added: 0013358
2015-09-01 17:25DuskStatusfeedback => closed
2015-09-01 17:25DuskAssigned ToTorr Samaho =>
2015-09-01 17:25DuskResolutionopen => not fixable

Notes
(0000475)
unknownna   
2010-10-28 05:45   
Confirmed. If the jump offset isn't in it's own state, the jump will fail. Made an example WAD, in which there are two identical plasma rifles, with the only difference being that one of them has a dummy state for the jump offset. Note that "A_Jump" in the second plasma rifle doesn't jump to the dummy state, but to the first frame in it.

The frame pattern also desyncs online. Perhaps because the jumping isn't done client-side.
(0000843)
Torr Samaho   
2011-01-20 12:38   
Thanks, your observation shed some light on the issue. This should work better.
(0000844)
unknownna   
2011-01-20 17:41   
(edited on: 2011-01-20 21:17)
The state jumps are working now, but the frames still visually desync in the flash states. And the custom plasma rifles are considerably louder compared to the standard one. It's not like this offline.

All the plasma rifles behave like the standard one offline.

(0000845)
Torr Samaho   
2011-01-21 03:04   
I think the visual desync is a consequence of the way Skulltag handles A_Jump online: Clients pretend the jumps are not there and the server instructs them to do the jump when the server jumps. Thus, if a jump occurs, the clients are in the wrong state till the message from the server to do the jump arrives.

Do you have any additional information on the volume issue? For instance, does this also appear if no additional jumps are in the custom plasma rifles?
(0000846)
unknownna   
2011-01-21 03:29   
(edited on: 2011-01-21 03:53)
> I think the visual desync is a consequence of the way Skulltag handles A_Jump online: Clients pretend the jumps are not there and the server instructs them to do the jump when the server jumps. Thus, if a jump occurs, the clients are in the wrong state till the message from the server to do the jump arrives.

I see. The frames in the "Flash" and "Fire" states will then remain desynchronized. It's evident when you release, or tap the fire button (the frames overlap). A natural consequence indeed.

> Do you have any additional information on the volume issue? For instance, does this also appear if no additional jumps are in the custom plasma rifles?

Removing the "A_Jump" code pointer from the "Flash" states didn't fix the volume issue.

From:

    "Flash":
        TNT1 A 0 A_Jump (128, 3)
        PLSF A 4 Bright A_Light1
        PLSF A 0 Bright A_Light0
        Stop
        PLSF B 4 Bright A_Light1
        PLSF B 0 Bright A_Light0
        Stop

To:

    "Flash":
// TNT1 A 0 A_Jump (128, 3)
        PLSF A 4 Bright A_Light1
        PLSF A 0 Bright A_Light0
        Stop
        PLSF B 4 Bright A_Light1
        PLSF B 0 Bright A_Light0
        Stop

This is the "Fire" state:

    "Fire":
        PLSG A 0 A_FireCustomMissile ("PlasmaBall")
        PLSG A 3 A_GunFlash
        PLSG B 20 A_ReFire
        Goto "Ready"

(0000856)
Borg   
2011-01-23 10:21   
Then the fix sounds easy to me.
If you are in Flash state, do the jumps ClientSide.
(0000879)
Torr Samaho   
2011-01-27 03:06   
> Removing the "A_Jump" code pointer from the "Flash" states didn't fix the volume issue.

Ok, then this is an entirely different issue.

> If you are in Flash state, do the jumps ClientSide.

No, that's not feasible. Since there are no guarantees that no gameplay relevant things happen in the Flash state, the server has to control the jump.
(0013358)
Dusk   
2015-09-01 17:25   
A result of the way actor state flow is handled online and cannot be feasibly fixed.