166 Commits

Author SHA1 Message Date
fusion32
a8d26b6ce3 fix player state desync on login (#59) 2026-06-01 01:54:15 -03:00
fusion32
e2ba7cd296 fix issues and warnings when compiling with glibc < 2.32 (#57, #58)
This also fixes some inconsistencies such as mixing both strerror
and strerrordesc_np, and possible formatting issues.
2026-05-28 23:56:29 -03:00
fusion32
d1c4dce3be minor fix to monster targeting logic 2026-05-25 18:19:39 -03:00
fusion32
54c2169ec9 fix issues with TMonster constructor + Search functions + UH formula
The issue with the TMonster constructor was obvious, but the others
were slightly different from the original.
2026-05-09 12:40:41 -03:00
fusion32
7beaa081de fix issue with CUMULATIVE + THROW loot (#56) 2026-05-05 21:54:32 -03:00
fusion32
a9f70ed1f1 small change to monster talking
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.
2026-04-16 07:34:02 -03:00
fusion32
f9beda0832 missing NEWLINE on non-patched fields + fix accept error on shutdown 2026-03-30 15:54:52 -03:00
fusion32
995f50a984 fix issue with whisper "pspsps" condition 2026-03-25 17:53:42 -03:00
fusion32
370842756a support for proxy headers + minor tweaks 2026-03-14 16:07:56 -03:00
fusion32
16edba1729 missing try-catch block in TMonster::IdleStimulus
On rare occasions this would cause an EXHAUSTED exception to bubble
up all the way to main, causing the server to shutdown without saving.
2026-03-01 18:00:51 -03:00
fusion32
1738b5f5c8 fix issue with collision events (#54) 2026-02-26 22:31:03 -03:00
fusion32
419e6bf990 network code robustness
This should address some quirks of both game and query manager
connections while keeping roughly the same overall design.
2026-02-26 04:52:55 -03:00
fusion32
b1fd46d8c5 modify SearchFlightField to more closely match the original binary 2026-02-20 23:52:07 -03:00
fusion32
b22be90dc8 add missing flight direction preference (#53) 2026-02-20 16:15:09 -03:00
fusion32
36f1c93665 add missing try-catch block in RefreshSector 2026-02-15 23:13:51 -03:00
fusion32
3b42c61166 rename CHANNEL_PRIVATE to FIRST_PRIVATE_CHANNEL for readability
Also make it dependent on the number of public channels to avoid
de-sync problems between them, when adding new public channels.
2026-02-15 18:48:20 -03:00
fusion32
38a06a06d6 fix bug with Challenge spell 2026-02-11 00:31:16 -03:00
fusion32
cd6b26da5d minor tweaks 2026-02-03 04:33:01 -03:00
fusion32
9c4fb8b24c add missing factor to npc talk delay calculation 2026-01-29 14:45:46 -03:00
fusion32
6e93e71bbf fix problem with summons also creating summons (#51) 2026-01-23 11:24:56 -03:00
fusion32
c2cbe8e23b bind acceptor to INADDR_ANY by default + set TCP_NODELAY on sockets
- 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.
2026-01-14 18:18:49 -03:00
fusion32
eeddc2b65a fix condition for PVP_ENFORCED exp distribution (#50) 2026-01-06 06:18:27 -03:00
fusion32
8222b24124 fix "aleta cogni" GM spell (#49) 2025-12-18 14:55:44 -03:00
fusion32
82c2dfb15d missing return in CreateMoney (#48) 2025-12-16 14:19:48 -03:00
fusion32
449585dace fix buffer overrun when matching spell syllables
Thankfully this triggered a stack check assertion, causing the
application to crash and exposing the bug. Thanks to dajotsa from
OTLand for reporting it.
2025-12-16 02:42:51 -03:00
fusion32
9f51198921 fix a problem with saving murder timestamps in player files 2025-12-12 15:26:45 -03:00
fusion32
3485791000 fix a problem with sector refreshing delays at startup
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.
2025-12-08 23:14:43 -03:00
fusion32
5aa288ad7e fix problem with converting strings to upper-case - fixes #45 2025-12-08 17:18:16 -03:00
fusion32
eb07e8e87a fix problem with playerlist creation 2025-12-08 17:08:53 -03:00
fusion32
db1fabd9c4 adjust effect enum names and add missing ones 2025-10-20 01:24:30 -03:00
fusion32
d7e2acbba4 fix problem with ShowNameDoor and "aleta grav" (#42) 2025-10-20 00:16:16 -03:00
fusion32
ea31122de9 fix TStrengthImpact not properly masking SKILL_FIST 2025-10-18 19:03:32 -03:00
fusion32
b9124b049a fix problem with outfit comparisons - fixes #39 2025-10-12 17:38:12 -03:00
fusion32
60531bf63e fix problem with targeting - fixes #38 2025-10-11 17:52:18 -03:00
fusion32
9a8bab9ff3 fix problem with summons being spawned as non-summons 2025-10-11 04:20:00 -03:00
fusion32
c37447f140 fix IMPACT_SUMMON not working properly - fixes #37 2025-10-11 04:02:35 -03:00
fusion32
a577390cf3 typo - fix #36 2025-10-09 03:08:12 -03:00
fusion32
3dd2ee23b8 fix #32 2025-09-25 00:33:16 -03:00
fusion32
11bd6ba26d support 7.72 with non-default -DTIBIA772=1 switch 2025-09-19 23:56:12 -03:00
fusion32
465620a871 add MAX_DEPOTS constant + enable assertions in debug mode 2025-09-13 00:39:31 -03:00
fusion32
16f2e00b05 update script that generates the Makefile 2025-09-12 02:44:22 -03:00
fusion32
af49c0bd10 fix crash when a summon would attack before despawning (#28) 2025-09-12 02:28:35 -03:00
fusion32
02ae61bca4 fix GetDirection computation - fixes #25 2025-09-09 02:23:37 -03:00
fusion32
4c4e538136 fix character death recording logic 2025-09-06 00:12:47 -03:00
fusion32
8d565e9116 missing try-catch block in CreateField - fixes #21
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`.
2025-09-04 22:28:43 -03:00
fusion32
9b2292bdce fix problem with mail text parsing - fixes #19 2025-09-04 19:03:17 -03:00
fusion32
4a281dffcf reduce MassCreateField radii + exclude origin from CancelInvisibility 2025-09-04 14:10:30 -03:00
fusion32
13819597ef fix small bug with experience distribution
Before checking if players are in the same party, we need to
check if they're in any party at all. I made a small wrapper
`TPlayer::InPartyWith` to help prevent this mistake again.
2025-09-04 01:40:34 -03:00
fusion32
81aa93cce8 fix problem with CronInfo 2025-09-02 01:06:16 -03:00
fusion32
dbb589d262 fix level/quest door closing -- fixes #14 2025-08-31 16:27:19 -03:00