H-uru / Plasma

Cyan Worlds's Plasma game engine
http://h-uru.github.io/Plasma/
GNU General Public License v3.0
203 stars 80 forks source link

Teledahn buckets are glitchy/broken if stopped after running #1479

Closed dgelessus closed 10 months ago

dgelessus commented 11 months ago

To reproduce:

  1. Play with a H'uru client on DIRTSAND, e. g. TrollLand. I also tested this with a locally built client and my own DIRTSAND instance. Not sure if this is server-dependent.
  2. Link to a fresh instance of Teledahn.
  3. Turn on the power and start the bucket train, but don't jump into the bucket.
  4. Stop the buckets so that one of them lines up with the "entry point" again. (If you have trouble with the timing: activate the bucket lever shortly after a bucket passes the post before the "entry point".)
  5. Jump into the bucket, possibly after pulling the lever again to restart the bucket train.

After this point, the bucket train glitches out in various ways, often making the puzzle impossible to complete. Glitches I've observed so far:

While debugging this, I also noticed that the bucket train causes a lot of network messages in certain cases. Not sure if these are related to the glitches.

Possibly related: #962

DamnBriggsy commented 10 months ago

I'm not 100% sure if this is connected, but Maurus noticed an issue with Zandi today and dgelessus noticed some similarities. In the cleft, Zandi will no longer speak to you when you approach. If you exit his region, we will start to see a huge flood of messages in network.log. This happens on both dirtsand and MOSS (minkata alpha shard), provided you are using the modern H'uru client. network.0.log attached.

network.0.log

dgelessus commented 10 months ago

@Mirphak reminded me that he has a similar problem with excessive network messages spamming the network log (although that one only occurs in multiplayer). He tracked his problem down to #1429. Reverting that PR also fixes the issues I described here, so it seems that all of these problems have the same cause.

The actual commit that causes it is 4ef380f10fef7523761c73bc4cb2aeec68fac6fd, but even knowing that, this will be difficult to figure out. I'm guessing the removal of the implicit conversion changed something in a way that still compiles, but no longer behaves as it should.