opentibia / server

An open source server for the MMORPG Tibia.
GNU General Public License v2.0
414 stars 149 forks source link

Desintegrate rune creates a problem with packetlimit per second #44

Closed Pietia10 closed 9 years ago

Pietia10 commented 9 years ago

When you cast desintegrate and there is alot items in stack for example 200 the client gets disconnected cause of packet per second limit .

assassina commented 9 years ago

I wasn't active when this "packet per second limit" was implemented. What is the point of this? What kind of abuse was happening that made someone think that it was a necessary thing?

Pietia10 commented 9 years ago

Some nasty abuses by players could happen an example can be a script that add's vip and then removes it which is leading to CPU bug but that's not the only one now this have exhaustion but still there are some others "unknown" ,this function is in TFS as well.

assassina commented 9 years ago

I've just created several stacks with 999 items and used a desintegration rune on them and couldn't get any disconnection. Using max_packets_per_second = 20. Maybe you forgot to add some information?

Pietia10 commented 9 years ago

Dit it remove all items? And are you sure you are using latest otserv trunk with max_packets_per_second feature?

iryont commented 9 years ago

Desintegrate rune has nothing to do with this feature. It does not send several packets, but only one - always.

Pietia10 commented 9 years ago

Hmm I checked latest release seems like it's not affecting pure otserv but it does my server and I'm using same LUA/CPP scripts just checked everything about desintegrate calling functions. Perhaps there was some bug that was fixed someday and I didn't commit it to my repo?

assassina commented 9 years ago

It is very unlikely, Pietia. I made some big commits but none of them were even related to this. And there weren't many commits since you added max_packets into otserv, I couldn't find any change related to that. I remember some very old issues related to big stacks. Maybe you added some provisory code in order to deal with the subject and forgot to take it out, after it was properly addressed? The only problem that I have noticed in here is that, sometimes, after destroying a really big stack of items, otclient kept showing some of the items in stack, as if it wasn't updated in the client. But the server kept working normally, it is very likely an issue with otclient (I am using a quite old version).