So I was toying around with a new combat system earlier and I've ran into a snag with the event system. I've simplified it the best I can to narrow down the issue but I'm just not sure what the problem is. Basically, identical events with the same delay are enqueued on seperate players at the same time. When the event is executed, a basic client trigger reissues the command to enqueue the event again. The expected outcome is that for both players the event will fire at roughly the same time and the same number of times. In actuality, the event will stop firing on one player but continue on the other for 7 or 8 times before it fires on the first player again. I'm not sure what would cause that or how exactly to fix it in the event system. Any ideas Tyche or anyone else familiar with rocketmud (or socketmud if this exists in it as well)?
So I modified my approach and instead of enqueueing an event on each player to determine when they regained their balance after each attack I instead created a global event that updated each player that was out of balance by decreasing a ticker on each player. Probably isnt nearly as efficient but it worked much more consistently up until another global event fired. When an actual game tick event fired, the global balance updated for players stopped firing for 6-7 seconds. Whatever the problem is, it clearly has to do with event scheduling. I just can't figure out what is causing it =(
Yeah. I'm going to mess around with it later, for the time being i just drastically increased the pulses per second and that speeds up the delay to where it isn't noticeable. I can't find the problem yet so I figured I'd just use a workaround for now.