Releases: opentibiabr/canary
Canary - Version 3.1.2
Welcome! The OpenTibiaBR team is deeply committed to continuously enriching this project with new features and fixes. Your support, either financial or through code contributions and issue reports, is vital for our ongoing work.
-
To contribute code or report problems, join our Discord community.
-
If you'd like to financially support the project, please consider making a donation.
-
For tutorials and additional resources, visit our documentation.
Download Tibia Client 13.21.13839
Download OTClient Redemption, thanks for @mehah
What's Changed
- feat: implement maintain mode by @dudantas in #1791
- fix: always run onKilledCreature for most damage when target is monster by @luan in #1792
- fix: disable offline player irrelevant information by @dudantas in #1794
- fix: nomad bestiary race id by @Leshyah in #1806
- fix: creature attacked by monster by @mehah in #1793
- feat: custom pvp system by @sebbesiren in #1403
- fix: the outlaw camp quest by @Leshyah in #1809
- fix: charge house rent by @luan in #1814
- fix: bestiary kills and boss boost by @luan in #1813
- feat: random monsters spawn by @Schiffers in #1802
- fix: table.remove function does not work with random indexes by @luanluciano93 in #1801
- fix: some scripts by @elsongabriel in #1784
- fix: forgotten knowledge quest levers by @luancolombo in #1815
- perf: caching walking formula by @mehah in #1761
- fix: issavi town citizen by @dudantas in #1816
- improve: normal random skew towards means by @luanluciano93 in #1672
- fix: koshei switch wrong ids combination by @Leshyah in #1819
- Revert "feat: random monsters spawn" by @dudantas in #1822
- fix: resolved problem with non-existent store condition by @luanluciano93 in #1827
- fix: correct bed system behaviour by @dudantas in #1831
- improve: targetList / friendList by @mehah in #1739
- fix: suggested fixes by visual studio code debugger by @luanluciano93 in #1825
- fix: chat channels message based on player group by @dudantas in #1839
- fix: Drume boss mechanic by @luanluciano93 in #1836
- fix: add death event into white deer by @FranciskoKing in #1845
- fix: some functions and their usages by @elsongabriel in #1847
- fix: type safety around const "Thing" by @luan in #1854
- fix: warzone IV-VI cooldown by @luan in #1851
- fix: the primal menace hazard issues and primal pack monsters by @luan in #1849
- fix: store inbox items only can be moved to house tile by @dudantas in #1857
- fix: expiring market offers by @luan in #1850
- fix: drop item with charges from monsters by @dudantas in #1858
- improve: added monster count to create monster talkaction by @dudantas in #1861
- fix: ensure loot over stack size drops in multiple stacks by @dudantas in #1862
- improve: "/i" create a big count of stackable items by @dudantas in #1863
- fix: don't send inbox store item to market by @MUN1Z in #1859
- fix: check conditions permitted on pz by @dudantas in #1865
- feat: reset house on inactivity by @luan in #1864
- fix: infinity prey time if stamina system is disabled by @dudantas in #1873
- fix: marry system by @dudantas in #1874
- fix: prey reroll time on old protocol by @dudantas in #1876
- fix: hireling stash and bank by @dudantas in #1875
- fix: block re-login with different protocols by @dudantas in #1877
- improve: rename global variables to use _G lua table by @dudantas in #1878
- fix: loot message typo by @Gtravisani in #1879
- fix: wroght-iron bed attribute rotateTo by @luanluciano93 in #1886
- improve: ConfigManager better functionality/code clarity/maintainability by @beats-dh in #1887
- perf: OTSYS_TIME cached by @mehah in #1853
- fix: hazard level up by @sebbesiren in #1883
- fix: wrong getNumber param by @dudantas in #1889
- fix: moving loot pouch to stash by @carlospess0a in #1885
- fix: switch target when unreachable/untarggetable by @luan in #1890
- improve: context logging from ConfigManager functions by @beats-dh in #1897
- fix: wheel divine empowerment multiplier by @dudantas in #1899
- fix: create item talkaction for stackable items by @dudantas in #1898
- fix: buy house by @luancolombo in #1903
- fix: adjust target reach assumption immediately after setting by @luan in #1902
- fix: angry demon by @sebbesiren in #1894
- fix: cask and kegs by @dudantas in #1905
- fix: monsters bestiary class by @artdev-br in #1908
- fix: kick yourself from house by @dudantas in #1906
- improve: '/pos' command parsing for multiple formats by @dudantas in #1912
- fix: critical hit damage calculation by @luan in #1913
- fix: NextUseConcoctionTime _G table by @luanluciano93 in #1916
- fix: change creature from checkCreatures from reference to copy by @dudantas in #1904
- fix: knight outfit quest by @macvirii in #1918
- fix: divine grenade spell by @dudantas in #1927
- fix: validations of "getPlayer" lua function by @dudantas in #1907
- improve: adjustment in player event by @luanluciano93 in #1860
- fix: Charos NPC and boots enchanting by @Gtravisani in #1928
- fix: some scripts by @elsongabriel in #1821
- fix: issues related to party leadership and leaving a party by @dudantas in #1930
- fix: invalid mount offer from store by @dudantas in #1933
- fix: config manager on drop loot prey by @luanluciano93 in #1939
- fix: item drop loot with charges and /i talkaction by @dudantas in #1937
- fix: conjuring spectral bolt wrong id by @dudantas in #1943
- feat: hide npc buy offers if player lacks items by @dudantas in #1942
- fix: lua getNumber overflow by @dudantas in #1944
- feat: custom npc shop items from lua table by @dudantas in #1947
- fix: mana drain damage in analyzer by @carlospess0a in #1950
- fix: adjust bosses lever and other fixes by @elsongabriel in #1934
- improve: migrate hireling skills and outfits to kv system by @dudantas in #1935
- fix: disable empty migration log entries by @dudantas in #1953
- docs: change server release version to 3.1.2 and set debug log by @dudantas in #1954
- fix: monster spawn interval/versperoth kill/chayenne lever by @Jonyrewind in #1952
New Contributors
- @Leshyah made their first...
Canary - Version 3.1.1
Welcome! The OpenTibiaBR team is deeply committed to continuously enriching this project with new features and fixes. Your support, either financial or through code contributions and issue reports, is vital for our ongoing work.
-
To contribute code or report problems, join our Discord community.
-
If you'd like to financially support the project, please consider making a donation.
-
For tutorials and additional resources, visit our documentation.
Download Tibia Client 13.21.13839
Download OTClient Redemption, thanks for @mehah
What's Changed
- improve: safety when getting a tile by @mehah in #1781
- fix: guild bank withdraw checking against incorrect bankable by @LeoTKBR in #1787
- fix: convert forgotten knowledge boss levers to lib by @luan in #1783
- fix: unjustified death by @dudantas in #1789
- docs: set new release version (3.1.1) by @dudantas in #1790
Full Changelog: v3.1.0...v3.1.1
Canary - Version 3.1.0
Welcome! The OpenTibiaBR team is deeply committed to continuously enriching this project with new features and fixes. Your support, either financial or through code contributions and issue reports, is vital for our ongoing work.
-
To contribute code or report problems, join our Discord community.
-
If you'd like to financially support the project, please consider making a donation.
-
For tutorials and additional resources, visit our documentation.
A Brief Introduction Before the Changelog
The changelog is split into two sections: the first details the updates of the previous major release (3.0.0), and the second outlines the changes in the current release.
Before diving into the changelog, let's take a moment to recap what has changed since our last release in December 2022.
We felt the project needed a fresh direction, something unprecedented in the OpenTibia community. Thus, we've focused on enhancing the security and stability of the server to deliver a superior experience for everyone!
Canary's Progress Since December 20, 2022 (v2.6.1)
-
722 Commits: A sizeable portion of these commits addressed chronic issues in OpenTibia and pushed the performance and security of our project to new heights. To highlight a few:
- Memory Management: Most of the critical raw pointers have been converted to use automatic memory management (
shared_ptr
andunique_ptr
). - Optimized Systems: Heavy systems like the dispatcher, thread pool, and spectators have been revamped for better performance.
- Memory Management: Most of the critical raw pointers have been converted to use automatic memory management (
-
Community Contributions: We've fixed dozens of crashes and critical bugs, all thanks to the feedback and assistance from the community and server owners. Special thanks to Douglas @QuebradaZN, whose server recently supported (nearly) four hundred concurrent players using our latest release (without any type of problem).
To each of you who has contributed, whether through code or feedback, thank you sincerely. Your contributions are pivotal to our progress, and we are committed to making Canary the best MMORPG engine in the OpenTibia community.
Download Tibia Client 13.21.13839
Download OTClient Redemption, thanks for @mehah
What's Changed
Release 3.0.0
- improve: replace boost::asio with asio, fix some include and CMakeList.txt by @beats-dh in #721
- enhance: change boost::iostreams::mapped_file_source by mio library by @dudantas in #723
- enhance: remove boost-variant by @dudantas in #722
- fix: upload artifacts in GHA from Ubuntu by @beats-dh in #706
- fix: custom attribute serialize function by @dudantas in #727
- enhance: remove boost lexical and algorithm by @dudantas in #724
- fix: include lua jit in pch.hpp by @dudantas in #728
- improve: refactored code and fixes compilation warn from Ubuntu 23.04 by @beats-dh in #726
- improve: change all file headers to canary project by @dudantas in #730
- fix: global result table to Result by @dudantas in #731
- ci/cd: update SonarCloud GHA by @Costallat in #725
- fix: handling nullptr in Game::internalMoveItem and other functions by @dudantas in #737
- improve: rework in pugi::cast and others fixes by @dudantas in #734
- improve: refactor loadScripts function to improve readability and performance by @dudantas in #739
- fix: clone items in market, checking if item exists in depot before creating an offer by @carlospess0a in #736
- fix: create market offer by @dudantas in #749
- fix: player auto id (fixing 65536 player id max size) by @dudantas in #754
- fix: imbued item does not start the imbuement timer countdown by @dudantas in #475
- fix: forge skill chance bug by changing data type from int to double by @murilo09 in #761
- fix: add skill talkaction from canary pack by @dudantas in #745
- improve: clean and update docker by @Costallat in #716
- improve: rework on Player::getStorageValue for return storage value by @dudantas in #573
- improve: changing concatenation to fmt::format by @murilo09 in #767
- fix: blackboard description by adding 'allowDistRead' flag by @murilo09 in #766
- feat: methods to set factions into player by @carlospess0a in #693
- refactor: remove old XML interface by @dudantas in #740
- fix: remove target without accessing freed memory by @dudantas in #786
- fix: out of bounds memory access in setValue function by @dudantas in #785
- fix: setLootContainer without accessing freed memory by @dudantas in #787
- fix: added player nullpointer check (function updateCreatureType) by @dudantas in #791
- fix: added condition argument to wait calls in threadMain functions by @dudantas in #790
- fix: close server console after done message by @dudantas in #796
- fix: some combat nullpointers by @dudantas in #788
- improve: upgrade curl to use TLS version 1.2 by @beats-dh in #705
- fix exception handling, switch/if chain and others by @dudantas in #798
- cd/ci: removal of actions that are not working correctly by @dudantas in #801
- feat: add function for loading/unloading OTBM files per offset by @Glatharth in #436
- improve: adding script name in lua scripts errors logs by @dudantas in #800
- fix: weapons, reverting some changes from XML pr by @dudantas in #784
- fix: loop when opening server without database by @murilo09 in #807
- fix: assigning negative value to unsigned integer (getSkillLevel) by @murilo09 in #769
- fix: imbuement decay time by @dudantas in #818
- feat: introducing configurable minimum level for house purchases by @elsongabriel in #814
- improve: enabling checksum sequence method/compression in OTClient by @mehah in #821
- fix: party hunt analyzer prices from leader by @ElimarCosta in #817
- fix for door not opening/closing by @PeachieDude in #809
- fix: speed attribute when looking items by @ElimarCosta in #828
- fix: distance weapons shouldn't hit with fists when without ammo by @ElimarCosta in #755
- fix: stow all stowable items by moving depot above stash by @ElimarCosta in #822
- fix: display imbuement damage reductions in cyclopedia by @ElimarCosta in #819
- fix: charm/leech conditions, wound cleanse & life leech amount fix by @ElimarCosta in #753
- fix: summons move items off the way and follow correct moving pattern by @ElimarCosta in #823
- fix: server shutdown in ubuntu, resolves main thread loop by @beats-dh in #838
- fix: monster target list erasing after player died by @dudantas in #839
- fix: add missing items on unscripted equipments by @carlospess0a in #782
- fix: compilation with latest version mio library from vcpkg by @dudantas in #832
- fix: Canary NPC example addModule missing parameters by @Aerwix in #842
- improve: rework of Item Attributes for better stability/maintability by @dudantas in #827
- fix: client debug and show not targeting player when dying near temple by @dudantas in #841
- fix: some errors in lua scripts by @dudantas in #830
- feat: added outfit and mount preview feature to the store by @murilo09 in #773
- fix: using a shovel on a stone pile should move to downstairs by @ElimarCosta in #757
...
Canary - Version 3.0.0
Welcome! The OpenTibiaBR team is deeply committed to continuously enriching this project with new features and fixes. Your support, either financial or through code contributions and issue reports, is vital for our ongoing work.
-
To contribute code or report problems, join our Discord community.
-
If you'd like to financially support the project, please consider making a donation.
-
For tutorials and additional resources, visit our documentation.
A Brief Introduction Before the Changelog
Before diving into the changelog, let's take a moment to recap what has changed since our last release in December 2022.
We felt the project needed a fresh direction, something unprecedented in the OpenTibia community. Thus, we've focused on enhancing the security and stability of the server to deliver a superior experience for everyone!
Canary's Progress Since December 20, 2022 (v2.6.1)
-
722 Commits: A sizeable portion of these commits addressed chronic issues in OpenTibia and pushed the performance and security of our project to new heights. To highlight a few:
- Memory Management: Most of the critical raw pointers have been converted to use automatic memory management (
shared_ptr
andunique_ptr
). - Optimized Systems: Heavy systems like the dispatcher, thread pool, and spectators have been revamped for better performance.
- Memory Management: Most of the critical raw pointers have been converted to use automatic memory management (
-
Community Contributions: We've fixed dozens of crashes and critical bugs, all thanks to the feedback and assistance from the community and server owners. Special thanks to Douglas @QuebradaZN, whose server recently supported (nearly) four hundred concurrent players using our latest release (without any type of problem).
To each of you who has contributed, whether through code or feedback, thank you sincerely. Your contributions are pivotal to our progress, and we are committed to making Canary the best MMORPG engine in the OpenTibia community.
Download Tibia Client 13.21.13839
Download OTClient Redemption, thanks for @mehah
What's Changed
- improve: replace boost::asio with asio, fix some include and CMakeList.txt by @beats-dh in #721
- enhance: change boost::iostreams::mapped_file_source by mio library by @dudantas in #723
- enhance: remove boost-variant by @dudantas in #722
- fix: upload artifacts in GHA from Ubuntu by @beats-dh in #706
- fix: custom attribute serialize function by @dudantas in #727
- enhance: remove boost lexical and algorithm by @dudantas in #724
- fix: include lua jit in pch.hpp by @dudantas in #728
- improve: refactored code and fixes compilation warn from Ubuntu 23.04 by @beats-dh in #726
- improve: change all file headers to canary project by @dudantas in #730
- fix: global result table to Result by @dudantas in #731
- ci/cd: update SonarCloud GHA by @Costallat in #725
- fix: handling nullptr in Game::internalMoveItem and other functions by @dudantas in #737
- improve: rework in pugi::cast and others fixes by @dudantas in #734
- improve: refactor loadScripts function to improve readability and performance by @dudantas in #739
- fix: clone items in market, checking if item exists in depot before creating an offer by @carlospess0a in #736
- fix: create market offer by @dudantas in #749
- fix: player auto id (fixing 65536 player id max size) by @dudantas in #754
- fix: imbued item does not start the imbuement timer countdown by @dudantas in #475
- fix: forge skill chance bug by changing data type from int to double by @murilo09 in #761
- fix: add skill talkaction from canary pack by @dudantas in #745
- improve: clean and update docker by @Costallat in #716
- improve: rework on Player::getStorageValue for return storage value by @dudantas in #573
- improve: changing concatenation to fmt::format by @murilo09 in #767
- fix: blackboard description by adding 'allowDistRead' flag by @murilo09 in #766
- feat: methods to set factions into player by @carlospess0a in #693
- refactor: remove old XML interface by @dudantas in #740
- fix: remove target without accessing freed memory by @dudantas in #786
- fix: out of bounds memory access in setValue function by @dudantas in #785
- fix: setLootContainer without accessing freed memory by @dudantas in #787
- fix: added player nullpointer check (function updateCreatureType) by @dudantas in #791
- fix: added condition argument to wait calls in threadMain functions by @dudantas in #790
- fix: close server console after done message by @dudantas in #796
- fix: some combat nullpointers by @dudantas in #788
- improve: upgrade curl to use TLS version 1.2 by @beats-dh in #705
- fix exception handling, switch/if chain and others by @dudantas in #798
- cd/ci: removal of actions that are not working correctly by @dudantas in #801
- feat: add function for loading/unloading OTBM files per offset by @Glatharth in #436
- improve: adding script name in lua scripts errors logs by @dudantas in #800
- fix: weapons, reverting some changes from XML pr by @dudantas in #784
- fix: loop when opening server without database by @murilo09 in #807
- fix: assigning negative value to unsigned integer (getSkillLevel) by @murilo09 in #769
- fix: imbuement decay time by @dudantas in #818
- feat: introducing configurable minimum level for house purchases by @elsongabriel in #814
- improve: enabling checksum sequence method/compression in OTClient by @mehah in #821
- fix: party hunt analyzer prices from leader by @ElimarCosta in #817
- fix for door not opening/closing by @PeachieDude in #809
- fix: speed attribute when looking items by @ElimarCosta in #828
- fix: distance weapons shouldn't hit with fists when without ammo by @ElimarCosta in #755
- fix: stow all stowable items by moving depot above stash by @ElimarCosta in #822
- fix: display imbuement damage reductions in cyclopedia by @ElimarCosta in #819
- fix: charm/leech conditions, wound cleanse & life leech amount fix by @ElimarCosta in #753
- fix: summons move items off the way and follow correct moving pattern by @ElimarCosta in #823
- fix: server shutdown in ubuntu, resolves main thread loop by @beats-dh in #838
- fix: monster target list erasing after player died by @dudantas in #839
- fix: add missing items on unscripted equipments by @carlospess0a in #782
- fix: compilation with latest version mio library from vcpkg by @dudantas in #832
- fix: Canary NPC example addModule missing parameters by @Aerwix in #842
- improve: rework of Item Attributes for better stability/maintability by @dudantas in #827
- fix: client debug and show not targeting player when dying near temple by @dudantas in #841
- fix: some errors in lua scripts by @dudantas in #830
- feat: added outfit and mount preview feature to the store by @murilo09 in #773
- fix: using a shovel on a stone pile should move to downstairs by @ElimarCosta in #757
- fix: NPC Ongulf by @murilo09 in #759
- fix: remove money lua function should remove money from bank too by @murilo09 in https://github.com/opentibiabr/ca...
Canary - Version 2.6.1
Hello, first we would like to say that this project is very important for the OpenTibiaBr team, that's why we are always bringing new content and constant corrections. But, for this work to be even better, we need an incentive, be it financial or contribution (with pull requests and problem reports). Feel free to join our discord and report issues or contribute new codes in this link
-
If you want, you can also
donate
to our project, here -
Access our helpful tutorials and downloads here
Download Tibia Client 12.91.12329
Download OTClient 1.0, thanks for @mehah
What's Changed
- Removed duplicate
forge_dusts
andforge_dust_level
fromschema.sql
by @Rechdan in #683 - [Bug] prevent player move item with the imbuement window opened by @carlospess0a in #686
- Fix
getPreyLootPercentage
by @Rechdan in #684 - Fix prey loot message by @murilo09 in #689
- [Bug] fixes sonarcloud shallow clone by @beats-dh in #690
- Fix npc get only valid direction by @dudantas in #688
- Fix !buyhouse talkaction by @murilo09 in #691
- Fix
assassin
'smonster.Bestiary.toKill
value by @Rechdan in #682 - [Enhancement] added the pre compiled header to the build system by @beats-dh in #707
- [Bug] rework in subactions from gamestore by @dudantas in #701
- [Bug] fixes for only monsters with valid race ID can be forgeable by @dudantas in #710
- [Bug] added nullpointer check to prevent crash by @carlospess0a in #709
- [Bug] fixes reward chest unique loot by @dudantas in #712
- Change release version to 2.6.1 by @dudantas in #713
Full Changelog: v2.6.0...v2.6.1
Canary - Version 2.6.0
Hello, first we would like to say that this project is very important for the OpenTibiaBr team, that's why we are always bringing new content and constant corrections. But, for this work to be even better, we need an incentive, be it financial or contribution (with pull requests and problem reports). Feel free to join our discord and report issues or contribute new codes in this link
-
If you want, you can also
donate
to our project, here -
Access our helpful tutorials and downloads here
Download Tibia Client 12.91.12329
Download OTClient 1.0, thanks for @mehah
As we don't publish the latest releases, we'll put the changelog of all of them here, in descending order.
-
Release 2.6.0
What's Changed
- [Bug] fixes the same name conflict of function and global variable by @dudantas in #675
- [Bug] Fixes some things and miscellaneous adjusts by @beats-dh in #484
- [Enhancement] added scripts to run server with gdb (linux) by @beats-dh in #458
- [Bug] fixes some prey and taskhunting fixes by @dudantas in #644
- [Bug] fixes charm adrenaline by @beats-dh in #649
- [Enhancement] reorganize reload functions and extract in an own class on cpp by @dudantas in #669
- [Enhancement] change project to c++ 20 by @dudantas in #662
- [Bug] fixes creature division of step speed by @dudantas in #676
- Remove classicEquipmentSlots by @murilo09 in #679
- [Client Feature] Forge System (Fiendish and Influenced Creatures from 12.80) by @murilo09 in #543
- Change server to the new release version 2.6.0 by @dudantas in #680
New Contributors
Full Changelog: v2.5.1...v2.6.0
-
Release 2.0.0
NOTE: The global repository was merged with this one, so now we will have two datapacks in the canary, being able to choose which one to use or even choose to use a custom one. Be very careful when upgrading your server from this release onwards!
What's Changed
- [Enhancement] rework to enable choosing of a custom datapack name by @dudantas in #572
With this modification, we will be able to focus on just one repository (the canary), and archive otservbr-global.
The intention is that we can have two datapacks in the same repository, being able to easily switch from one to the other, just change in config.lua the "dataPackDirectory" from "data-otservbr-global" to "data-canary" or vice versa.
The main purpose is to facilitate our development, at the same time that the community will be able to contribute in a single repository, but keeping the choice of using a "clean" datapack.
Made some more modifications, such as removing the unused C++ gamestore, I also removed the "allowPickupable" tag, which was duplicated, and I made some other adjustments.
Folder structure changes
Now we have the following structure
data = this will be the "core" folder, it is where the files that are absolutely necessary for the distro to open correctly, such as libs, xmls, etc. Here we will have files that both the global and the canary datapack will share with each other
data-otservbr-global = here will be the global datapack files, some libs and folders that are only for the global server, such as scripts, monsters, npcs, world.
data-canary = a "clean" datapack as far as possible, with only the scripts and files necessary for the server to work.
NOTE: The "data" folder is actually the "core" of the server, we didn't rename it to avoid having to make changes to the sites and login.php, since they read the "data/xml". The other two folders, data-otservbr-global and data-canary can be changed in config.lua, which one you want the executable to read, by default we'll point to the global one, as that's what most use. If you want to start a custom server with "as few files and scripts as possible", then switch to "data-canary".
We also added a boolean in config.lua that allows choosing another name for the datapack, by default we will also keep this disabled, since we will only maintain support for these two datapacks, it is up to each one to know what they are doing in case they want to change it.
So, in the end, we have the reorganization in the folders:
Note that we made few real changes to the files, the abundance of modified files is due to moving from one folder to another and also adding the global datapack to this repository (with an abundance of files). If you want to migrate your datapack to the global one, you should know what you're doing, if you don't know, just pass your modifications to the "new files" or get in touch on our discord group, so we can help you.
Full Changelog: v1.6.0...v2.0.0
-
Release 1.6.0
NOTE: The next release will have big datapack related changes where the global repository will be merged with the canary repository.
What's Changed
- Add can combat to vocations XML by @dudantas in #486
- [Fix] Error convince creature rune by @beats-dh in #483
- Fixed remove items from stash on create market offer by @dudantas in #474
- Fixed market offers duplication money and items by @dudantas in #521
- Fixed potion mana amount heals, remove wrong parameter from doTargetCombatMana on potions.lua by @Brunoquindeler in #523
- [Feature] Item tiers and new skills (Onslaught, Ruse and Momentum) from 12.80 by @omeranha in #366
- Fix charges cask wrapping upon leaving house by @beats-dh in #480
- Add option to enable or disable emoted spells for each player by @dudantas in #553
- Fix leave house remove hireling by @dudantas in #556
- Reset idle time on reconnect by @travisani in #555
- [Enhancement] - Fix gha actions warnings by @beats-dh in #554
- Add no logout zone flag by @travisani in #557
- [Enhancement] Build using static library by @beats-dh in #541
- Fixed is invited house message by @travisani in #562
- Fix Wrong Message When Attack from PZ. by @travisani in #534
- Fix Look Runes by @travisani in #558
- Adjust and enhancement prey system by @dudantas in #567
- [Enhancement] Fix Includes by @beats-dh in #540
- Fixed addition of money to player on selling item to one npc by @dudantas in #627
New Contributors
- @Brunoquindeler made their first contribution in #523
Full Changelog: v1.5.0...v1.6.0
Canary - Version 2.0.0
Download Tibia Client 12.91.12329
Download OTClient 1.0, thanks for @mehah
NOTE: The global repository was merged with this one, so now we will have two datapacks in the canary, being able to choose which one to use or even choose to use a custom one. Be very careful when upgrading your server from this release onwards!
What's Changed
- [Enhancement] rework to enable choosing of a custom datapack name by @dudantas in #572
With this modification, we will be able to focus on just one repository (the canary), and archive otservbr-global.
The intention is that we can have two datapacks in the same repository, being able to easily switch from one to the other, just change in config.lua the "dataPackDirectory" from "data-otservbr-global" to "data-canary" or vice versa.
The main purpose is to facilitate our development, at the same time that the community will be able to contribute in a single repository, but keeping the choice of using a "clean" datapack.
I made some more modifications, such as removing the unused C++ gamestore, I also removed the "allowPickupable" tag, which was duplicated, and I made some other adjustments.
Folder structure changes
Now we have the following structure
data = this will be the "core" folder, it is where the files that are absolutely necessary for the distro to open correctly, such as libs, xmls, etc. Here we will have files that both the global and the canary datapack will share with each other
data-otservbr-global = here will be the global datapack files, some libs and folders that are only for the global server, such as scripts, monsters, npcs, world.
data-canary = a "clean" datapack as far as possible, with only the scripts and files necessary for the server to work.
NOTE: The "data" folder is actually the "core" of the server, we didn't rename it to avoid having to make changes to the sites and login.php, since they read the "data/xml". The other two folders, data-otservbr-global and data-canary can be changed in config.lua, which one you want the executable to read, by default we'll point to the global one, as that's what most use. If you want to start a custom server with "as few files and scripts as possible", then switch to "data-canary".
We also added a boolean in config.lua that allows choosing another name for the datapack, by default we will also keep this disabled, since we will only maintain support for these two datapacks, it is up to each one to know what they are doing in case they want to change it.
So, in the end, we have the reorganization in the folders:
Note that we made few real changes to the files, the abundance of modified files is due to moving from one folder to another and also adding the global datapack to this repository (with an abundance of files). If you want to migrate your datapack to the global one, you should know what you're doing, if you don't know, just pass your modifications to the "new files" or get in touch on our discord group, so we can help you.
Full Changelog: v1.6.0...v2.0.0
Canary - Version 1.6.0
Download Tibia Client 12.91.12329
Download OTClient 1.0, thanks for @mehah
NOTE: The next release will have big datapack related changes where the global repository will be merged with the canary repository.
What's Changed
- Add can combat to vocations XML by @dudantas in #486
- [Fix] Error convince creature rune by @beats-dh in #483
- Fixed remove items from stash on create market offer by @dudantas in #474
- Fixed market offers duplication money and items by @dudantas in #521
- Fixed potion mana amount heals, remove wrong parameter from doTargetCombatMana on potions.lua by @Brunoquindeler in #523
- [Feature] Item tiers and new skills (Onslaught, Ruse and Momentum) from 12.80 by @omeranha in #366
- Fix charges cask wrapping upon leaving house by @beats-dh in #480
- Add option to enable or disable emoted spells for each player by @dudantas in #553
- Fix leave house remove hireling by @dudantas in #556
- Reset idle time on reconnect by @travisani in #555
- [Enhancement] - Fix gha actions warnings by @beats-dh in #554
- Add no logout zone flag by @travisani in #557
- [Enhancement] Build using static library by @beats-dh in #541
- Fixed is invited house message by @travisani in #562
- Fix Wrong Message When Attack from PZ. by @travisani in #534
- Fix Look Runes by @travisani in #558
- Adjust and enhancement prey system by @dudantas in #567
- [Enhancement] Fix Includes by @beats-dh in #540
- Fixed addition of money to player on selling item to one npc by @dudantas in #627
New Contributors
- @Brunoquindeler made their first contribution in #523
Full Changelog: v1.5.0...v1.6.0
Canary - Version 1.5.0
Download Tibia Client 12.91.12329
Download OTClient 1.0, thanks for @mehah
Closed issues:
What's Changed
- Fix show attributes look on de equip item by @dudantas in #450
- Fix crash related to on look item by @dudantas in #456
- Fixed crash when creating specific offers with certain amount from inbox by @dudantas in #453
- Fixed buying more than 1 item with only one free slot by @dudantas in #454
- Fix clone items and crash if classicEquipmentSlots is true by @dudantas in #464
- Add exhaustion to npc say and sell/buy item by @dudantas in #459
- Fixed clone depot items by @dudantas in #460
- Fix random client debug by @dudantas in #463
- [Enhancement] Replace all std::unordered with phmap::flat_hash by @beats-dh in #420
- Improvement of teleportTo function log by @dudantas in #466
- Fix faction target logic by @dudantas in #473
- Fix Protocol::getIP nullptr message by @dudantas in #478
- [Fix] Client debug on depot search (255+ items) by @marcosvf132 in #496
- Fix readme links by @majestyotbr in #512
- [Enhancement] Protocol update to 12.91 by @marcosvf132 in #443
New Contributors
- @majestyotbr made their first contribution in #512
Full Changelog: v1.4.2...v1.5.0
Canary - Version 1.4.0
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] 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