Nyyrazzilyss / NyyLIB

Mudlet client script for Torilmud
http://www.torilmud.com/phpBB3/viewtopic.php?f=4&t=27194
GNU General Public License v2.0
7 stars 4 forks source link

Autoroller no longer working due to queued up y commands #365

Open byzanthia opened 2 weeks ago

byzanthia commented 2 weeks ago

Something seems to have changed. It worked for me for months, but the last week, I cannot get it to roll anything past @roll 6. Even @roll 5 sometimes has the issue.

When I do @roll 6 (or higher, or sometimes even @roll 5), it will start rolling.

Then, it will eventually find a match and I'll hear the sound effect.

However: it will keep rolling.

I believe the problem is that over time it starts to queue up extra "y" commands which cause it to keep rolling. If it finds a match quickly enough, it will correctly stop. But in almost every case, it take a while to get a match for @roll 6 or @roll 7 and by then it has the extra "y" characters in the buffer already.

The best way to test / confirm this, is to do @roll 6 or @roll 7, let it roll for a few minutes, and then type e.g. @roll 2. This causes it to find a match very quickly and it should stop. However, it does not, and it will play the sound effect several times before stopping. For every extra "y" it has queued up, it will play the sound effect. Then after several rolls where it should have stopped, and several sound effects, it will stop.

This isn't a big deal when doing @roll 2 but when you do @roll 6 or @roll 7, those take a long time to match, and it not stopping because of queued up "y" makes it impossible to roll those. You can see the same behavior by just doing @roll 2 and then quickly manually sending like 5 "y" chars... it will beep 5 times before stopping the roll. That's exactly what is happening, I think. I'm not sure how the extra "y" chars get queued up over time during rolling. I tried adding a delay using the temptimer function to send the "y" but it makes no difference.

I asked Hibbidy and he seems to have the same issue now when using your package to roll.