| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
| |
I've also reverted the search range of `NotifyTrades` to
(12, 10), because it's just not related to `CloseContainer`.
It is called before objects are moved, and on the case the
object is split, it is called on the remaining part.
|
| |
|
|
|
|
|
|
|
|
| |
Increasing the search radii for `CloseContainer` from (12, 10)
to (14, 12) prevented players from exploiting the issue alone but
it could still be leveraged when there was another player involved.
In this case, you have another 2 SQM on both sides that need to be
accounted for, so using (16, 14) should prevent it as well. And it
may be a coincidence, but pretty much all other searches use these
values, so I'm not sure what to make of it. They might be related?
|
| |
|
|
|
|
|
|
| |
This fixes an issue, also present on the original binary, where
containers thrown from Z=0 to the edge of the screen at Z=7 would
remain open to surrounding players. The previous 12-10 radii were
missing 2 SQM each when considering the maximum offset between
floors.
|
| | |
|
| | |
|
| |
|
|
|
| |
This also fixes some inconsistencies such as mixing both strerror
and strerrordesc_np, and possible formatting issues.
|
| | |
|
| |
|
|
|
| |
The issue with the TMonster constructor was obvious, but the others
were slightly different from the original.
|
| | |
|
| |
|
|
|
|
|
|
| |
Monsters will prefix their lines with "#Y" when they're supposed
to yell. The minotaur mage from the leaked files uses a "#W" prefix
which is either a mistake or some removed feature? Either way, it
wouldn't be a problem with the original binary because it would only
check for a leading "#" before removing a three character prefix.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
On rare occasions this would cause an EXHAUSTED exception to bubble
up all the way to main, causing the server to shutdown without saving.
|
| | |
|
| |
|
|
|
| |
This should address some quirks of both game and query manager
connections while keeping roughly the same overall design.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Also make it dependent on the number of public channels to avoid
de-sync problems between them, when adding new public channels.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- Binding the acceptor to the game address was troublesome with certain
setups, so it will now bind to INADDR_ANY by default. This behaviour
can be reverted by adding `-DBIND_ACCEPTOR_TO_GAME_ADDRESS=1` as a
compiler option.
- Setting TCP_NODELAY can help improving latency and reducing stutters
specially for players with higher ping. It was not in the original
binary, but it's probably worth it to have it enabled.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Thankfully this triggered a stack check assertion, causing the
application to crash and exposing the bug. Thanks to dajotsa from
OTLand for reporting it.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
I misread the original initial values for `RefreshX` and `RefreshY`
from the binary which caused the behavior, and a confused comment from
me. Thanks to Gustinos from OTLand for catching that.
I actualy done a small back of the envelope calculation and it seems
that, using a config similar to the one from the leaked files, it would
have taken ~100 hours for it to start refreshing sectors, meaning this
feature has NEVER actually been tested. I'd expect unexpected bugs to
emerge from this change.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
The result DESTROYED was being caught at `UseMagicItem`, causing
the cast to fail but not before partially spawning other fields in
the case of `MassCreateField` and `CreateFieldWall`.
|
| | |
|