• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Search results

  1. fusion32

    Tibia 7.7 Server Decompiled

    Here is a ZIP with git bundles for each repository in their latest state. I was considering maybe hosting a public repository on a VPS, but since there hasn't been bug reports recently I'm not sure it would be worth the hassle. I thought I could edit the initial post with these files, but it's...
  2. fusion32

    LuaJIT Breaking Change

    This looks like a good workaround to avoid large refactors. But there is a subtle issue that still needs to be addressed. g_lua.error() will call lua_error, which is implemented with longjmp, which bypasses C++ stack unwinding, thus causing the LuaStateGuard destructor to never run in case of an...
  3. fusion32

    Solved Issue with saving players

    The issue is already solved, but I wanted to give some context as to what was causing it: PlayerSex_t is defined as an enum with underlying type uint8_t (sometimes?) uint8_t is an alias to unsigned char (always?) C++ iostreams have a special operator<< overload for char and unsigned char which...
  4. fusion32

    Tibia 7.7 Server Decompiled

    Just to clarify any doubts: Every single line of code on all of the repos linked here were written MANUALLY. I really dislike having AI assistants make changes to whatever codebase, but I don't oppose them being used for consulting, which was the case here. I even mention one of the use cases...
  5. fusion32

    TFS 1.7 Server: RSA PEM Key Issue on Modern Linux / OpenSSL 3.x

    Ah yes, I forgot that -traditional bit. But if it works with that, then it should be solved? There shouldn't be too much of a difference between PKCS#1 and the later formats, except that the later formats support other types of keys (I think?) while PKCS#1 was RSA only (I think?). Anyway, I was...
  6. fusion32

    TFS 1.7 Server: RSA PEM Key Issue on Modern Linux / OpenSSL 3.x

    Does it work with the default key? What's the command used to generate the key? Running something like the command below usually works for me, unless there is some issue with the key loader. openssl genrsa -f4 -out key.pem 1024
  7. fusion32

    Tibia 7.7 Server Decompiled

    This could be related to a bug I fixed recently. But it could also be something else. The best thing is to have the server compiled with debug symbols (make -B DEBUG=1 will do it) and then get the backtrace of the crash with GDB. If you're using the service file from the repo, you should get a...
  8. fusion32

    LuaJIT Breaking Change

    For anyone using LuaJIT, there has been a breaking change with commit 5c64775. In summary, finalizers (__gc metamethod) now run on a separate lua thread, which causes the lua state for these callbacks to be different from the main lua state. This is only really a problem if the interfacing code...
  9. fusion32

    Tibia 7.7 Server Decompiled

    I actually went ahead and did a back of the envelope calculation, and if the numbers are mildly correct, it would have taken ~100 hours for it to start refreshing sectors. I'm not entirely sure I've seen any sectors refresh while testing but I wasn't actively looking for it either. Anyway this...
  10. fusion32

    Tibia 7.7 Server Decompiled

    Woops... I've just checked the binary and I actually misread the initial values of RefreshX and RefreshY. They're set to 0x7FFFFFFF => INT_MAX rather than 0xFFFFFFFF => -1. This makes it wrap to SectorXMin and SectorYMin respectively right from the first call. Thanks for catching that. You can...
  11. fusion32

    AoCO - Advent of Compiler Optimizations

    So I've been following this small series called "Advent of Compiler Optimizations" from Matt Godbolt (the guy behind Compiler Explorer) which is quite interesting if you want to understand some of the stuff the compiler does. In particular, day 7 covers division by constants which is something...
  12. fusion32

    Tibia 7.7 Server Decompiled

    I'm not sure I understood the problem. It seems you're able to connect locally but not remotely? Without modifications the game server will bind to the address in the database, which is also used by the login server to redirect players. If you change the binding address to INADDR_ANY, as Olddies...
  13. fusion32

    https login

    This looks like a mismatch between the login script and the server. The login script is using an old "EMAIL\nPASSWORD" format without proper session keys, but the server (considering TFS trunk) expects a 16 byte session key encoded as base64. You'd need to check the format your server expects...
  14. fusion32

    Tibia 7.7 Server Decompiled

    There is a small incompatibility between 7.7 and 7.72 protocols and I think the one supported by OTC is 7.72. There is a definition that can be passed to the compiler in the makefile -DTIBIA772=1 to make it use the 7.72 protocol but I can't recall whether I was able to login with the OTC after...
  15. fusion32

    Tibia 7.7 Server Decompiled

    I did sketch out a separate status service that would use the query-manager to serve requests. A relatively simple version is pretty doable, but it would be annoying to conform to the rules of otservlist, specially those regarding AFK players. I'd have to give it some thought but perhaps there...
  16. fusion32

    TFS 1.2 Crash - How to locate a specific Lua script?

    It's always possible that the server you got has bugs in it. But the surface of item:getUniqueId() is greater than the explicit function call because compat.lua will set an __index metamethod to wire item.uid to it (depending on what version you're using ofc): do local function...
  17. fusion32

    TFS 1.2 Crash - How to locate a specific Lua script?

    The relevant parts of the stack trace is this: 2025-11-13 18:07:00 - Thread 2 "tfs" received signal SIGSEGV, Segmentation fault. 2025-11-13 18:07:00 - [Switching to Thread 0x7ffff5db26c0 (LWP 737833)] 2025-11-13 18:07:00 - 0x000055555558aae8 in ItemAttributes::hasAttribute(itemAttrTypes)...
  18. fusion32

    C++ exhuset manarune hootkey

    I gave it some thought and realized something. The script is computing an uptime with now() which is usually correct for timers, since you'd want to avoid integer overflow/truncation when converting to a storage value. But the issue is that these values are only really comparable on a single...
  19. fusion32

    Crash log

    What is the context of game.cpp:11348? This could be a scheduled function referencing no longer valid memory.
  20. fusion32

    C++ exhuset manarune hootkey

    For some reason the value stored on linux is way higher that it's supposed to be? The timestamps on the left also look suspicious. Is that timer even running or is the output buffered and these are systemd timestamps? Try printing the values inside now(): function now() local t = os.mtime()...
Back
Top