MantisBT - Zandronum
View Issue Details
0000632Zandronum[All Projects] Bugpublic2011-12-12 22:382018-09-30 19:52
Borg 
Torr Samaho 
normalminoralways
closedfixed 
98d 
1.0 
0000632: A_Chase does not properly inform client about jump to Idle state
A_Chase checks whatever monster is friendly (or have master)
If yes, then it just wander for player/master and seeks anyone who
attack him.
If not, then jump to Idle (if exists) or Spawn state should occour.

On offline play (ZDoom and Skulltag) everything works properly.
But on network play strange things happen.
When we raise dead monster, Raise state is called and then we jump to See.
See state does all checks and we should land on Idle (because it exists),
but client thinks we land at Spawn (instead of Idle)
After that, A_Jump(256,"Idle") is not properly executed again
go we land in A_Die and later goto Spawn.Death

After that.. moster is alive but in -1 death frame.

PS: guess why I have goto Death.Spawn after A_Die()
yeah, this is another bug.. heh. too lazy to report it.
actor MDeadZombieMan : MZombieMan replaces DeadZombieMan
{
DropItem "Clip"
DropItem "SummonMana1"
states
  {
  Spawn:
    TNT1 A 0 A_Jump(256,"Idle")
    TNT1 A 0 A_Die("Spawn")
    goto Death.Spawn
  Idle:
    POSS AB 10 A_Look
    loop
  Death.Spawn:
    POSS L 5 A_UnsetSolid
    POSS L -1
    stop
  }
}
No tags attached.
? A_ChaseDesynchTest.wad (607) 2012-01-15 19:19
/tracker/file_download.php?file_id=446&type=bug
Issue History
2011-12-12 22:38BorgNew Issue
2012-01-12 03:05Torr SamahoNote Added: 0002356
2012-01-12 03:05Torr SamahoAssigned To => Torr Samaho
2012-01-12 03:05Torr SamahoStatusnew => feedback
2012-01-12 03:05Torr SamahoNote Edited: 0002356bug_revision_view_page.php?bugnote_id=2356#r1212
2012-01-15 19:18DuskNote Added: 0002437
2012-01-15 19:19DuskFile Added: A_ChaseDesynchTest.wad
2012-01-15 19:20DuskNote Edited: 0002437bug_revision_view_page.php?bugnote_id=2437#r1232
2012-01-15 19:24DuskNote Edited: 0002437bug_revision_view_page.php?bugnote_id=2437#r1233
2012-01-15 19:55Torr SamahoNote Added: 0002439
2012-01-15 20:25BorgNote Added: 0002444
2012-01-15 20:25BorgStatusfeedback => assigned
2012-01-15 20:29Torr SamahoNote Added: 0002446
2012-01-15 20:30Torr SamahoStatusassigned => feedback
2012-02-01 10:20BorgNote Added: 0002559
2012-02-01 10:20BorgStatusfeedback => assigned
2012-02-02 02:08Torr SamahoNote Added: 0002560
2012-02-02 02:08Torr SamahoAssigned ToTorr Samaho =>
2012-02-02 02:08Torr SamahoStatusassigned => feedback
2012-02-02 02:08Torr SamahoNote Edited: 0002560bug_revision_view_page.php?bugnote_id=2560#r1279
2012-02-02 02:08Torr SamahoNote Revision Dropped: 2560: 0001278
2012-02-02 10:59BorgNote Added: 0002561
2012-02-02 10:59BorgStatusfeedback => new
2012-02-05 23:01Torr SamahoNote Added: 0002576
2012-02-05 23:01Torr SamahoAssigned To => Torr Samaho
2012-02-05 23:01Torr SamahoStatusnew => feedback
2012-06-09 13:22Torr SamahoCategoryGeneral => Bug
2012-10-23 03:56unknownnaNote Added: 0005178
2012-10-23 23:28unknownnaStatusfeedback => resolved
2012-10-23 23:28unknownnaFixed in Version => 1.0
2012-10-23 23:28unknownnaResolutionopen => fixed
2018-09-30 19:52Blzut3Statusresolved => closed

Notes
(0002356)
Torr Samaho   
2012-01-12 03:05   
Please check if this fixes the problem. Since you didn't include a complete example wad I couldn't test this myself.

(0002437)
Dusk   
2012-01-15 19:18   
(edited on: 2012-01-15 19:24)
Can't reproduce, even without the fixed binary (98e-3299). Uploaded test wad used.

What I could understand, it's supposed to go to Idle state after being revived but apparently is going to Spawn instead.

Test wad has zombieman altered in a way that if it tries to go to Spawn state after being raised, it'd go translucent and spawn an Unknown. In Idle state it would behave correctly. Archvile's Missile state was edited out as well.

In online testing, the zombie would remain normal even after being revived. Both of us (me and Wartorn) had notarget cheat on so it went to Idle state, even when clientside.

I wouldn't be surprised I did this incorrectly but I've got trouble grasping the concept of this entire bug. Need a clearer explanation before getting a more proper test wad done...

(0002439)
Torr Samaho   
2012-01-15 19:55   
Without the fix, the actor should never go into the idle state on the client, the server simply instructs the client to enter the spawn state (I can clearly see this in the code). I guess your example wad seems to behave properly because most of the commands you use are completely server side. For instance, a client never jumps on A_JumpIfInventory on its own. It only jumps if the server instructs it to.

Try using different sprites for the Spawn and the Idle state. This way you should see in which state the actor actually is on the client.
(0002444)
Borg   
2012-01-15 20:25   
'ftp://node.ovh.uu3.net/home/borg/wads/pclasses-r3.zip [^]'
'ftp://node.ovh.uu3.net/home/borg/wads/pclasses-v0.73.zip [^]'
'ftp://borg.uu3.net/home/borg/temp/empty.wad [^]'

skulltag -host -file empty.wad -file pclasses-r3.wad -file pclasses-v0.73.wad
skulltag -file empty.wad -file pclasses-r3.wad -file pclasses-v0.73.wad -connect localhost

Now select Diabolist and revive dead zombieman.
You will see.

Start non networked game to see correct behavior.
(0002446)
Torr Samaho   
2012-01-15 20:29   
Borg, did you try if the binary I posted fixes the problems you experienced?
(0002559)
Borg   
2012-02-01 10:20   
Well, your build does NOT work on my Win2003. It just hangs.
v0.98d works without any problems on my box.
(0002560)
Torr Samaho   
2012-02-02 02:08   
Did you try deleting your ini file? Does any of the 98e beta builds work for you?

(0002561)
Borg   
2012-02-02 10:59   
I am unable to run any 98e builds on Win2003.
I tried two different boxes, always same results.
It hangs, using 100% CPU
(0002576)
Torr Samaho   
2012-02-05 23:01   
> I am unable to run any 98e builds on Win2003.

Did you try all official 98e builds (http://www.skulltag.com/forum/viewforum.php?f=77)?
(0005178)
unknownna   
2012-10-23 03:56   
Borg's example works in 1.0. It was broken in 98d. But I noticed this bug in his mod.