| Commit message (Collapse) | Author | Age |
| | |
|
| |
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
`CheckForSpell` would return the spell type if the first syllable
was a spell syllable, even if it failed to match any actual spell.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Make uint32 -> Object conversion explicit. This can be more
verbose but will get a lot of small mistakes, especially with
function overloads.
- Fix problem with the path finder not including the last step
when `MustReach` was false.
- Fix problem with NPC conditions.
- Fix problem with monster homes continuously spawning monsters.
- Fix problem with creating the standard inventory.
- Fix problem with creature timers (IMPORTANT).
- Fix problem with `ThrowPossible` (IMPORTANT).
- Fix problem with rune casting.
- Fix problem with executing moveuse events.
- Fix problem with `MoveRel` and `WriteName` moveuse actions.
- Fix problem with eating food deleting the whole stack.
- Many other bug-fixes and improvements.
|
| |
|
|
|
|
| |
Aside from obvious gameplay bugs pretty much everywhere, the
game is finally in a PLAYABLE state. It should be smooth sailing
to get it stable for an initial test server.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This was a required change to make the server run on a modern
GLIBC version without resorting to shady shared libraries or
compatibility tricks. It is very straightforward but we should
always keep an eye out for possible bugs.
There was also a problem with the Z loop on field sending
functions that was causing the server to hang in an infinite
loop and should now be fixed.
With these changes it is now possible to login into the game
for a split second before the client asserting.
|
| | |
|
| |
|
|
|
|
| |
With an appropriate query manager, the server now starts up and
seems to work but won't properly handle connections until we fix
the problem with threads and signals described in `TODO.md`.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I considered reversing the original `vlong` implementation but
OpenSSL is just simpler, more secure, and most importantly, is
already there. I also made it so the key is now stored in a PEM
file (`tibia.pem`) so it can be easily swapped without re-compiling.
This was the last piece to build and run a working executable,
except that we now need to implement a query manager for the server
to communicate with. I was able to fix a small problem with loading
the config before hitting the problem with the query manager, which
was expected.
The next task should be getting a query manager up and running
before starting phase two of upgrading and fixing the server itself.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
I had focused on copying the `vector` fields for theses structs
but, being the copy operator, you need to copy everything over.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|