Skip to content

Canary - Version 1.4.0

Compare
Choose a tag to compare
@dudantas dudantas released this 19 Jul 06:29
· 1571 commits to main since this release

Download Tibia Client 12.86.11871

Download OTClient 1.0, thanks for @mehah

Fixes

  • Fix cmake warning (wrong boost dir on library) (#362, d2279bf, @dudantas)

  • Resolves the issue of killing some monsters giving error on distro (#370, 8686cd9, @dudantas)

  • Fix typo on daily reward, from addItemId to addU16 (#371, 9da46a7, @dudantas)

  • Fix item name register from appearances protobuf (#376, a4073d7, @marcosvf132)
    It was missing the item name register on the function void Items::loadFromProtobuf() on the Items map. This map is used to identify a item by it's name instead of ID. This is largely used on the SRC and LUA environments.

  • Fix removing unnecessary warn on item creation when id equal 0 (#368, 48ab545, @marcosvf132)
    Add a check on the SPDLOG::WARN to prevent when itemID is equal 0. This happens a lot when slain a creature that has no body registered. (Regular creatures/summons/boss)

  • Fix protobuf error on server loading (#380, 5ad63c1, @beatsdh and @marcosvf132)
    Change all 'strings' to 'bytes'
    This wrong behavior on the items name register was affecting only items who had their names on the appearances.dat protobuf file but was not registered on the items.xml file

  • Fix magic wall and wild growth rune bug (#388, f5fb255, @dudantas)
    Created a new function to set the min/max duration of an item, id to decay and whether or not to show the duration
    Fixed mw being walkable, fixing a small typo in blocking parse
    Usage of setDuration:
    item:setDuration(minduration, maxduration = 0, decayid = 0, showDuration = true)

  • Fixed bug summon not searching player target and icons update (#395, 6b56fbf, @dudantas)
    Fixed the bug when the player was attacking a creature and summoned, the summon would not attack the creature until the player stopped attacking and attacked again
    Fixed the icon of creatures that use the "creature:addSummon" function
    Added Game::reloadCreature functions
    Rework on function "Creature::setMaster", somes functions were centralized within the setMaster, avoiding repetitions:
    Creature::setTarget
    Creature::setFollowCreature
    Creature::setDropLoot
    Creature::setSkillLoss

  • Fix non-unique item name registration (#390, 63b30ca, @marcosvf132)
    Fix an issue related to items that have a non-unique name on the register. This problem was breaking some monster's loot.

  • Fix unexpected behavior on connection send and disconnect (#408, 4f1dbaf, @dudantas)
    Added nullptr check for validate connection
    Renamed protocol variable from connection to connectionPtr to avoid shadowing with the other connection variable added to check nullptr

  • Fix magic wall and wild growth on retro-pvp and no-pvp logic (#400, dc5c868, @dudantas)
    The magic wall/wild growth rune should only be removed when stepping if it's no-pvp and if it's not blocking

  • Few prey/task hunting fixes and improvements (#385, b1786d5, @marcosvf132)

  • Fix null function on daily reward (#375, 1960d49, @dudantas)
    Resolves #374

  • Fix "nil item" on daily reward (#423, 0b65754, @dudantas)
    Resolves #421

  • Fix checks on player death, player speed breakpoint and misc enhancements (#378, e5cc80a, @omeranha)
    Added tag in config.lua for:
    Max critical chance of imbuements
    Adventurers blessing level
    Inventory glow on five bless
    Fixes
    Set default maxSpeed for 70000
    Still blessed after dead for work with "no disconnect on death"
    Player targetting after dead for work with "no disconnect on death"
    Adventurer blessing logic for work with "no disconnect on death"

  • Fix some npcs bugs and change behaviour (#396, 5b25b43, @dudantas)
    Total cost for custom currencys
    Bank npcs depot, transfer and withdraw logic
    Changed:
    MsgContains behaviour, added new function "MsgFind" so that we avoid some bugs in messages that have the same words
    Added debug log for assistant with debug build

  • Fix Callback fromPosition of some lua scripts that were registered by position (#441, 723f378, @dudantas)
    Some scripts registered through position didn't work the fromPosition callback because it was lost between the two functions (with and without the callback item)

  • Fix build of docker and linux (#440, 90e7561, @beats-dh)
    Fixed the compilation in the docker environment and the error that occurred with linux when it was going to compile on a new "VM" machine.
    What happened is that the protobuf was updated and our proto files were generated in an old version, with this change they are ready to work with the latest version of the protobuf made available by vcpkg
    Note: vcpkg needs to be updated to the most current version for it to work properly

  • [CMake] fix warning build, add flag /EHsc to target compile options (#442, afab2af, @beats-dh)

  • Fix remove summon bug and added new config tag for teleport summon (#428, 5bd86e6, @beats-dh)
    Added new config.lua tag: teleportSummons = false
    Usage: if false, the summon will not teleport when the player goes up/down stairs and moves far away, if true, it will teleport the summon
    Fixed the bug that did not remove the summon when the player leaves the summon range, thus preventing the player from summoning a new monster

  • [Fix] Bestiary unlocked creature (#438, e033f83, @beats-dh)

  • [Fix] convert burst and poison arrow to client id (#405, 647b005, @Aerwix)

Features/Enhancements

  • Some small improvements to gha (#363, 44c8e82, @Costallat)
    Improves the GHA overall performance
    Disable ccache for Windows as it doesn't work
    Add sscache for Windows
    Adjust some cmake flags to work with sscache
  • Rework and fix event scheduler (#239, 526ef51, @beats-dh)
  • [CrashFix] fix monster type name overriding and some improvements (#389, 86e4a90 @dudantas)
    The real name of the monster was replaced by the name of the look, generating unexpected behavior and in a very specific scenario a crash (when two different monsters had the same "name")
    Some improvements related to the creation of monsters and the verification of the monster name in getMonsterType, also preventing any unexpected behavior
    New function: Creature::getTypeName(), for get real monster type name
  • Rework in MoveEvent and MoveEvents class for fix memory leak (#398, 4771913, @dudantas)
    Movements completely redone to remove a memory leak related to the registration of movements, in the luaMoveEventRegister function, where the memory was fread and then used. We also added some pointer sanity checks, preventing future crashes and fixing some known ones.
    Removed old XML load
    Passed some objects as a reference, to avoid nullpointer and unecessary pointer checks
    Added nullpointer checks in some places and the code was redone to work better
    Added some logs to help in case of errors
    Fixed crash related to replaceable magic fields
    Notes: MoveEvent::onRemoveItem function from now on it will no longer have the "tileitem" argument
  • [Enhancement] Changed rsa to use gmp lib instead of cryptopp (#391, b0538c4, @beats-dh and @dudantas)
    Thanks and credits to @SaiyansKing for the original code
    This pull request has modifications from the optimized forgottenserver: https://github.com/opentibiabr/optimized_forgottenserver
    Added function in otserv.cpp to load default RSA key if it fails to load key.pem
    Rework on connection.cpp and improvement of some functions
    Removed some "reinterpret_cast", added in place "static_cast" which avoid overflows or undefined behavior
    Improved connection and protocol code for QT client
  • Change luajit to install by vcpkg manifest (#403, 5fc2834, @dudantas)
    Remove appveyor build
    Remove build windows 2019 and ubuntu 18
    Added ubuntu 22.04 build
  • Improve monster loot log (#372, 116cc9e, @dudantas)
  • Disabled install LuaJit for processor ARM (#416, 6ad0268, @beats-dh)
    Disabled installation of LuaJit by vcpkg.json, solving the problem of compatibility with ARM processors.
    The installation of LuaJit will have to be done by apt Linux with the command:
    sudo apt install libluajit-5.1-dev
  • [Enhancement] Set teleport position talkaction for use in all teleport types (b996fbe, @dudantas)
  • [Enhancement] - Automatically download world otbm in folder if file doesn't exist on server start (#437, 5e42475, @omeranha)
    If toggleDownloadMap if false, then the mapDownloadUrl will not be used
    If a map with the name already exists in the world folder, the map will not be downloaded even if the toggleDownloadMap is true
  • [Feature/Enhancement] - New objects; Lever, Spawn and Spectators to assistant with boss/quest scripts and others (#360, 0d9d3a1, @Glatharth)
    The new objects will help us with boss scripts, quests, and spectator checks, reducing the complexity and size of a lot of code. Added an example of how the mechanics work in the lever of threatened dreams quest.
  • [Feature] Depot search system (#411, a02d5a5, @marcosvf132)
    Enabling and implementing client 12x feature named 'Depot search'. This system can be used to make it easier to find, organize and manipulate players depot/inbox/stash.
    The systems already include support for a future implementation of item tier system. The tier system is being implemented on PR #366

New Lua functions

  • item:setDuration(minduration, maxduration = 0, decayid = 0, showDuration = true)

GitHub

  • Enable cache for sonarcloud (33dff84, @Costallat)
    It's disable by default now so we need to enable it

Closed issues:

#374, #421