• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Recent content by tetra20

  1. tetra20

    OTClient Change shader onPositionChange(player, newPos, oldPos)

    Lemme chime in as I have some expertise with time complexity and data structure. The problem here is that the entire area is being stored into memory, this means an O(M * |X| * |Y| * |Z|) where: M is the number of entries. |X| is the average delta of |Xstart - Xend| for every entry. |Y| is the...
  2. tetra20

    C++ I need a encrypt my .spr

    Let me provide some details on what is the difference between encryption, compression and the adhoc approach that is being used here. Encryption Encryption is a way to scramble data so that only authorized parties can unscramble it. (Source: Google), Think of when you type your password in a...
  3. tetra20

    Found this recently hope you enjoy :) OTCv8 + Sources

    Clarify more on this I'm not aware of anyway to execute malicious code during the compilation process(Except for makefile instructions). This seems like a bluff more than a fact. Would love to be proven wrong here. Other than that. Yes, using leaked sources is always a risk that you should...
  4. tetra20

    Programmer Hacking, coding, OTCV8 bots -- SecurizeMe

    This thread has truly been derailed and went from a "service" to a "lecture".. My 2 cents :D Kuhi being passive-aggressive about most of the comments directed at him. Sorry but that is no way to react to criticism or even hate. You either learn or ignore. Fighting back will never do you...
  5. tetra20

    Programmer Looking for programmer to add pathfinding to my bot

    You can't just use Dijkstra as it's not efficient for searching as it doesn't take the endpoint into consideration. A* would be the best viable algorithm for that.
  6. tetra20

    Implementing Google Firebase into a server.... Is this a good idea?

    Comparing a profitable company to a non-profit open-source organization. Interesting argument.
  7. tetra20

    MoveEvent Infinity Rooms - TFS 1.3

    local function getNextPosition() local x, y, z = IRConfig.startPos.x, IRConfig.startPos.y, IRConfig.startPos.z local index, indey, pos = 1, 0, Position(x, y, z) for _, iroom in pairs(IRoomList) do if iroom.pos ~= pos then break else pos =...
  8. tetra20

    C++ Login MSG Cooldown

    https://github.com/otland/forgottenserver/blob/master/src/protocollogin.cpp#L75 This isn't a complete tutorial but should provide you with the correct steps. 1. You should change the line output->addString(fmt::format("{:d}\n{:s}", g_game.getMotdNum(), motd)); to something that is more...
  9. tetra20

    What makes maps looks good and how do you be a better mapper?

    Isn't mapping just like drawing? A skill earned through time and effort?
  10. tetra20

    [suggestion] New Item Decay algorithm

    So I have thought of another idea that uses a little more memory, 1-We will change std::map<Item *, int64_t> reverseItemDecayMap; To std::unordered_map<Item *, int64_t> reverseItemDecayMap; So now we can have access of O(1) on average to any decaying item. 2-Here where the extra memory comes...
  11. tetra20

    [suggestion] New Item Decay algorithm

    #Edit --Not Applicable--
  12. tetra20

    TFS 0.X TFS 0.4 Hp/Mp in Percent on HIGH EXP server with rebirth system.

    If I recall correctly, It shouldn't stop at 21.7kk but 2.14kkk(you are missing a k) and that's probably because servers are limited by int32_t, you should change that to int64_t to avoid overflow.
  13. tetra20

    Top 5 highscores getting a effect

    Back to O(logn) time and O(n) memory 1-when a player logs in,insert both his {level,id} into set 2-when the player logout,erase both his {level,id} from the set now you have best players Added in the list,just iterate in the following way two variables highestLevelFound = 0,timesFound = 0; once...
Back
Top