Releases: opentibiabr/canary
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
Closed issues:
Canary - Version 1.3.1 (Patch)
Release version: Stable 1.3.1 (Patch) - e06dd7f
Download Tibia Client 12.86.11871
Download OTClient 1.0, thanks for @mehah
Fixes
- Crash related to creature death (@dudantas, 03e8e09)
The crash happened in a specific scenario, when the creature was removed (and recreated) and the target reference was not removed, when it tried to target another creature, it crashed. - Market issue related to stash items and gold duplication (@marcosvf132, 7082aff)
There is an issue on the market that was making the item remove count 0 when accepting buy offer.
Issue reported by @Sparkz023
Changes from Major Release version: stable 1.3.0 - 80908fd
Features/Enhancements
- Complete rework on npcs shop add item functions (@dudantas, caf0a97)
- Experience tracker (@marcosvf132, 990da24)
On the oldest protocols, the client was handling the experience changes by it's own, now on the new protorocol (12.72+), we need to send to the client the right amount of experience that the player has gainned so it can update it's tracker - Auto Loot, Quick Looting in stack and Auto Bank function (@omeranha, 5cb9ff7)
Auto loot using your manage loot containers quick loot categories and items filter, can be enabled in config.lua!
Quick loot in stack, up to 30 corpses, enabled using client option.
Auto Bank function, the dropped coins from monsters will be automatically deposited to your bank account, can be enabled in config.lua. - No disconnect on death (@omeranha, 4f8667a)
no more disconnection when player dies - Solved incompatibility problem with otclient redemption (@marcosvf132, c46f64d)
Readjust protocolgame to follow the right pattern. Changing hardcoded expected bytes on OnRecvFirstMessage to follow the cip client and fix incompatible with otclient protocolgamesend. - Decouple g_game in true singleton (@dudantas, @lgrossi, 126e7df)
Game class decoupled in a true singleton, thus allowing direct calls without needing to instantiate in each file.
Credits to @lgrossi for made the decouple logic. - Fix build to not use asan on relase mode (@Costallat, 87edf62)
Not use ASAN for release build
Remove cmake settings(replaced with presets)
Adjust GitHub Actions triggers - Cmake features and update workflows to use gcc 11 (@dudantas, 905f774)
Update sonarcloud version and sonar/codeql/ubuntu build to use gcc 11
Added gcc minimum version 8 in cmakelists.txt
Reorganized find_packages
Fix possible bug in the spdlog link library - Add tag serverSaveTime on config.lua (@beats-dh, e848604)
With this modification, the configuration of the global server save can be done directly in config.lua, thus centralizing configurable things in a single place - Add missing librarys; daily reward, modal windows and reward boss (@dudantas, c45f1d2)
Added somes missing librarys: daily reward, modal window, reward boss
Added new scripts for: monsters and spells - Party hunt analyzer. (@marcosvf132, c17279a)
Adding the "new" feature Party Hunt Analyzer. There is one thing that you must know before you start testing it, so please read the entire PR commentary. - Added not moveable action function (@dudantas, 9c49c95)
Not moveable action id = 100
So that the item cannot be moved, just put this action id in the item - Add windows relelease build with address sanitizer (@Costallat, 8552c10)
Adds new release build with asan enabled to help tracking problems - Added missing effects from version 12: soulwar/tentugly/supreme cube (@Aerwix, 371f116)
- Added a new method to register scripts by the map position and rework on "registerLuaEvent" function (@dudantas, a7e6426)
See all description on the commit
With this modification, we can register action scripts without needing the action id/unique id or the item being on the map, as there is also a second parameter that creates the item (if it doesn't exist). - Decouple all global variables from extern in true singleton (@beats-dh, @lgrossi, b87372f)
All the global variables * g_* were decoupled to true singletons, reducing the dependencies between the objects and simplifying the amount of calls and instances. They used to be partial singletons mixed with global variables, that way we have one, and only one instance that is accessed via the getInstance methods, that are now the * g_* functions. - Prey system rework (CPP) + Hunting task system (@marcosvf132, 42af88d)
Complete rewrite of old prey system from LUA to CPP and implementation of Hunting Tasks system;
Do not test with GOD char or with low amount of creatures registered on bestiary. The PR already include the necessary amount of then;
Addition of hunting task system and entire rework of prey system. All working on CPP with few LUA integration. - Check for message type parameter wrong (@dudantas, ea7fbce)
How to test: Add a message with a wrong or none parameter, such as:
player:sendTextMessage(MESSAGE_WRONG, "Message") - Rework on fluids colors and new monster race type (INK) (@marcosvf132, ce36520)
Description
Full rework on the way that the server handles the fluids, to use one single ENUM and remove all the garbage functions and maps that used to store the same values for fluids over and over again.
Add new creature race type named INK. This new race type is used mostly on creatures on the tibia "The Secret Library". Attacking those creatures or slain then will now create the proper type of blood pool/splash.
Resolves #123
OTServerBr-Global PR: opentibiabr/otservbr-global#544 - Add script casks and kegs (store item for refill potions) (@lucasgrizante, 256a6ee)
- Move client version from config.lua to definitions.h (@dudantas, 4580324)
It's a tag that works at the compilation level and shouldn't be in config.lua, because the version is always just one and cannot be modified at the configuration level. - Rework on items to extinquish OTB file and use client 12 protobuf instead (@marcosvf132, 68d0475)
See the commit description for more information
New Lua functions
- Added container:getItems() function and option stash moving items to supply stash and depot (@omeranha, 844530b)
Fix
- Register Npc Type - add missing currency method for npcs revscriptsys (@Aerwix, 9f37c02)
- Bestiary tracker list loader (@marcosvf132, 9a02596)
- Reverting item tier to 0 + Market/Cyclopedia item tier (@marcosvf132, 4c7a35a)
- Life and mana leech amount/chance attribute (@guispiller, 56ddcf2)
Fix to correct the item tags of mana leech and life leech items attributes.
Extra: added attributes missing on some soulwar weapons. - "allowpickupable" tag on items.xml, resolves trashholder items (@dudantas, e3df583)
- Ring transformation on creation (@marcosvf132, 0eacb35)
Rings was transforming into wrong itemIDs on creation. - Add missing duration timestamp attribute for decay system (@beats-dh, 1527549)
- logout message connection lost on bed and offline training and remove unused tag on druid familiar (@omeranha, e6abcc8)
Fixes connection lost message when using an bed or offline training statues, added a check to identify when a player was "forced" removed - Auto Bank not removing coins from monster corpse (@omeranha, 0059314)
- docker-compose: add env to correct mysql host (@bruno-costa, 611a44e)
- Few hireling issues (@marcosvf132, 3808591)
Fix hireling outfit change client crash.
Fix hireling server crash when saying 'hi - lamp - yes'.
Convert hireling itemids from serverID to clientID. - 'wound' bestiary charm register (@marcosvf132, deeb21f)
Wound bestiary charm was not showing on the cyclopedia charm store due to one miss config on the Lua file. - Multiple purchase of the same mount from store. (@Corlyone, 3e94dc2)
When buying a mount, it was possible to buy it indefinitely, causing the player to lose coins. - Not be able to accept offer if you are a character on the same account (@dudantas, 65b5348)
Fix for player selling offer not receiving money if offline (thanks and credits for @gccris)
Added verification to prevent transactions with characters of the same account - [Fx] Rework of checkCreatureAsKnown and fix of client debug (@beats-dh, @lgrossi, 77f152e)
Before, if you moved with the char diagonally for a while or even normally at a certain time, the debug client "closes unexpectedly" with this fix it doesn't happen anymore.
Note: walking diagonally forces the client to debug faster.
Credits fix code: @mrianura - crash on buy own offer in market (@dudantas, d488fae)
Removed some unnecessary delete pointers - Added check to ensure the item is not imbued twice with the same imbuement (@dudantas, dd03479)
- Add decayImbuementTime function for use of updateInventoryImbuement (@dudantas, 8559f3c)
Function to avoid sending the message "imbuement already exists" when equipping/unequipping and deterioration of the item's imbue time - Quiver checking for ammunition level (@andersonfaaria, f50096b)
Description
Added check for minReqLevel of ammunitions in quiver both for total count of arrow as well as to select which ammunition to use
Actual behaviour
Quiver ignore level requirement as stated in #77
Expected behaviour
Quiver actually doesn't throw ammunitions which has higher level requirement than player level - Fixed on death events for monsters that don't have corpses (@dudantas, 6db7c30)
onDeath events not working for corpseless monsters
Added a sanity check to ensure the corpse is not used by monsters that don't have a corpse - Fix green skull from party (653c65a)
Fix missing green skull on current character - Fix crash of invalid discord url and wrong player death event name typo (@beats-dh, 5714e14)
Fixed player death event name typo (from "Player Death" to "PlayerDeath"), on login.lua is: player:registerEvent("PlayerDeath")
Fixed a bug that we have in the discord webhook in the pro...
Canary - Version 1.3.0
Release version: stable 1.3.0 - 80908fd
Download Tibia Client 12.86.11871
Download OTClient 1.0, thanks for @mehah
Features/Enhancements
- Complete rework on npcs shop add item functions (@dudantas, caf0a97)
- Experience tracker (@marcosvf132, 990da24)
On the oldest protocols, the client was handling the experience changes by it's own, now on the new protorocol (12.72+), we need to send to the client the right amount of experience that the player has gainned so it can update it's tracker - Auto Loot, Quick Looting in stack and Auto Bank function (@omeranha, 5cb9ff7)
Auto loot using your manage loot containers quick loot categories and items filter, can be enabled in config.lua!
Quick loot in stack, up to 30 corpses, enabled using client option.
Auto Bank function, the dropped coins from monsters will be automatically deposited to your bank account, can be enabled in config.lua. - No disconnect on death (@omeranha, 4f8667a)
no more disconnection when player dies - Solved incompatibility problem with otclient redemption (@marcosvf132, c46f64d)
Readjust protocolgame to follow the right pattern. Changing hardcoded expected bytes on OnRecvFirstMessage to follow the cip client and fix incompatible with otclient protocolgamesend. - Decouple g_game in true singleton (@dudantas, @lgrossi, 126e7df)
Game class decoupled in a true singleton, thus allowing direct calls without needing to instantiate in each file.
Credits to @lgrossi for made the decouple logic. - Fix build to not use asan on relase mode (@Costallat, 87edf62)
Not use ASAN for release build
Remove cmake settings(replaced with presets)
Adjust GitHub Actions triggers - Cmake features and update workflows to use gcc 11 (@dudantas, 905f774)
Update sonarcloud version and sonar/codeql/ubuntu build to use gcc 11
Added gcc minimum version 8 in cmakelists.txt
Reorganized find_packages
Fix possible bug in the spdlog link library - Add tag serverSaveTime on config.lua (@beats-dh, e848604)
With this modification, the configuration of the global server save can be done directly in config.lua, thus centralizing configurable things in a single place - Add missing librarys; daily reward, modal windows and reward boss (@dudantas, c45f1d2)
Added somes missing librarys: daily reward, modal window, reward boss
Added new scripts for: monsters and spells - Party hunt analyzer. (@marcosvf132, c17279a)
Adding the "new" feature Party Hunt Analyzer. There is one thing that you must know before you start testing it, so please read the entire PR commentary. - Added not moveable action function (@dudantas, 9c49c95)
Not moveable action id = 100
So that the item cannot be moved, just put this action id in the item - Add windows relelease build with address sanitizer (@Costallat, 8552c10)
Adds new release build with asan enabled to help tracking problems - Added missing effects from version 12: soulwar/tentugly/supreme cube (@Aerwix, 371f116)
- Added a new method to register scripts by the map position and rework on "registerLuaEvent" function (@dudantas, a7e6426)
See all description on the commit
With this modification, we can register action scripts without needing the action id/unique id or the item being on the map, as there is also a second parameter that creates the item (if it doesn't exist). - Decouple all global variables from extern in true singleton (@beats-dh, @lgrossi, b87372f)
All the global variables * g_* were decoupled to true singletons, reducing the dependencies between the objects and simplifying the amount of calls and instances. They used to be partial singletons mixed with global variables, that way we have one, and only one instance that is accessed via the getInstance methods, that are now the * g_* functions. - Prey system rework (CPP) + Hunting task system (@marcosvf132, 42af88d)
Complete rewrite of old prey system from LUA to CPP and implementation of Hunting Tasks system;
Do not test with GOD char or with low amount of creatures registered on bestiary. The PR already include the necessary amount of then;
Addition of hunting task system and entire rework of prey system. All working on CPP with few LUA integration. - Check for message type parameter wrong (@dudantas, ea7fbce)
How to test: Add a message with a wrong or none parameter, such as:
player:sendTextMessage(MESSAGE_WRONG, "Message") - Rework on fluids colors and new monster race type (INK) (@marcosvf132, ce36520)
Description
Full rework on the way that the server handles the fluids, to use one single ENUM and remove all the garbage functions and maps that used to store the same values for fluids over and over again.
Add new creature race type named INK. This new race type is used mostly on creatures on the tibia "The Secret Library". Attacking those creatures or slain then will now create the proper type of blood pool/splash.
Resolves #123
OTServerBr-Global PR: opentibiabr/otservbr-global#544 - Add script casks and kegs (store item for refill potions) (@lucasgrizante, 256a6ee)
- Move client version from config.lua to definitions.h (@dudantas, 4580324)
It's a tag that works at the compilation level and shouldn't be in config.lua, because the version is always just one and cannot be modified at the configuration level. - Rework on items to extinquish OTB file and use client 12 protobuf instead (@marcosvf132, 68d0475)
See the commit description for more information
New Lua functions
- Added container:getItems() function and option stash moving items to supply stash and depot (@omeranha, 844530b)
Fix
- Register Npc Type - add missing currency method for npcs revscriptsys (@Aerwix, 9f37c02)
- Bestiary tracker list loader (@marcosvf132, 9a02596)
- Reverting item tier to 0 + Market/Cyclopedia item tier (@marcosvf132, 4c7a35a)
- Life and mana leech amount/chance attribute (@guispiller, 56ddcf2)
Fix to correct the item tags of mana leech and life leech items attributes.
Extra: added attributes missing on some soulwar weapons. - "allowpickupable" tag on items.xml, resolves trashholder items (@dudantas, e3df583)
- Ring transformation on creation (@marcosvf132, 0eacb35)
Rings was transforming into wrong itemIDs on creation. - Add missing duration timestamp attribute for decay system (@beats-dh, 1527549)
- logout message connection lost on bed and offline training and remove unused tag on druid familiar (@omeranha, e6abcc8)
Fixes connection lost message when using an bed or offline training statues, added a check to identify when a player was "forced" removed - Auto Bank not removing coins from monster corpse (@omeranha, 0059314)
- docker-compose: add env to correct mysql host (@bruno-costa, 611a44e)
- Few hireling issues (@marcosvf132, 3808591)
Fix hireling outfit change client crash.
Fix hireling server crash when saying 'hi - lamp - yes'.
Convert hireling itemids from serverID to clientID. - 'wound' bestiary charm register (@marcosvf132, deeb21f)
Wound bestiary charm was not showing on the cyclopedia charm store due to one miss config on the Lua file. - Multiple purchase of the same mount from store. (@Corlyone, 3e94dc2)
When buying a mount, it was possible to buy it indefinitely, causing the player to lose coins. - Not be able to accept offer if you are a character on the same account (@dudantas, 65b5348)
Fix for player selling offer not receiving money if offline (thanks and credits for @gccris)
Added verification to prevent transactions with characters of the same account - [Fx] Rework of checkCreatureAsKnown and fix of client debug (@beats-dh, @lgrossi, 77f152e)
Before, if you moved with the char diagonally for a while or even normally at a certain time, the debug client "closes unexpectedly" with this fix it doesn't happen anymore.
Note: walking diagonally forces the client to debug faster.
Credits fix code: @mrianura - crash on buy own offer in market (@dudantas, d488fae)
Removed some unnecessary delete pointers - Added check to ensure the item is not imbued twice with the same imbuement (@dudantas, dd03479)
- Add decayImbuementTime function for use of updateInventoryImbuement (@dudantas, 8559f3c)
Function to avoid sending the message "imbuement already exists" when equipping/unequipping and deterioration of the item's imbue time - Quiver checking for ammunition level (@andersonfaaria, f50096b)
Description
Added check for minReqLevel of ammunitions in quiver both for total count of arrow as well as to select which ammunition to use
Actual behaviour
Quiver ignore level requirement as stated in #77
Expected behaviour
Quiver actually doesn't throw ammunitions which has higher level requirement than player level - Fixed on death events for monsters that don't have corpses (@dudantas, 6db7c30)
onDeath events not working for corpseless monsters
Added a sanity check to ensure the corpse is not used by monsters that don't have a corpse - Fix green skull from party (653c65a)
Fix missing green skull on current character - Fix crash of invalid discord url and wrong player death event name typo (@beats-dh, 5714e14)
Fixed player death event name typo (from "Player Death" to "PlayerDeath"), on login.lua is: player:registerEvent("PlayerDeath")
Fixed a bug that we have in the discord webhook in the project, and the bug happens when the server can't access the discord because of an invalid url or a lack of connection from the discord itself
Behaviour actual:
Server crash "closes unexpectedly" if invalid url is set in "config.lua" or "discord_webhook.lua"
Expected:
The server has to work normally regardless of whether the url is correct or not and whether discord receives it or not - Remove increment rune name to item name (@dudantas, 08087b0)
Item name was being replaced by rune name in "register" function
Added the condition t...
Canary - Version 1.2.0
Support client 12.85.11525 (author: @marcosvf132, commits: e9c85a5, 3144b16, cc98f40)
Modified:
- [Lua/Pack]: Remove lua tests, the files no longer exist (author: @omeranha, commit: 9a21ad4)
- [Source]: Enhancement - Automatically unzip world.zip in world folder if otbm file doesn't exist on server start (author: @omeranha, commit: 6b23e6f)
This change will allow the server to automatically extract the map from the zip (to the global server) in case the .otbm file is not found.
In this commit is need new liblibzippp
, uses./vcpkg install libzippp
Fixed problems:
-
[Source]: Npc Shop Enhancement - Allow an item of the same id to be added multiple times for the same npc (author: @dudantas, commit: 9c257da)
Set for use name of the item instead of id in the ShopInfoMap vector
This will allow adding items with the same item ids and customizing the item name
Fixed somes npcs shop bugs -
[Source]: ConfigManager - fix (#208) typo from "freeQuests" to "toggleFreeQuest" (author: @dudantas, commit: 0c08898)
-
[Source]: Added new method ```vocation:getBaseAttackSpeed```` for offline training and exercise training script (author: @Rechdan, commit: 8315cf5)
-
[Source]: Added new Lua method
configManager.getFloat
(author: @Rechdan, commit: 2811015)
Fix nil value in the offline training and exercise training script -
[Source]: Fix support rates regen, removed multiplication and modified to use getBaseAttackSpeed instead of getAttackSpeed (author: @dudantas, commit: 29846fa)
-
[Source]: Set item tier bytes from "0" to "1" from protocol 12.85 (author: @dudantas, commit: cc98f40)
Modified item tier byte to be 1 by default.
Added onestatic_cast<uint8_t>
in the function "item->getImbuementSlot()", for resolve review check from CodeQL.
What's Changed
- Rope fix by @hiPirate in #6
- New spells functions and others fixes/improvements by @beats-dh in #21
- [OTBR compatibility] Factions source code, pulled from: opentibiabr/otservbr-global#2334 by @beats-dh in #22
- Added the vocation base id and the functions to manage it instead of the "client id" by @beats-dh in #11
- Fix Numbered Depot Boxes + Add passwordType to config.lua.dist for MyAAC by @hiPirate in #4
- Gain stamina from training and pz by @beats-dh in #10
- Set build release to release with debug information by @dudantas in #37
- Fix windows GHA build by @dudantas in #43
- Prevents the loop of player from pushing another player by @dudantas in #34
- Disable the force close button (ensure a secure close) by @dudantas in #33
- Door fix by @hiPirate in #8
- Fix supply stash exploit by @beats-dh in #14
- Fix hungry conditions by @beats-dh in #12
- Fix item charge description in shop by @beats-dh in #17
- Fix restart prey after kick from beds by owner in house by @beats-dh in #20
- Fix all random crashes generated by protocolgame.cpp by @beats-dh in #23
- Fix wrong handling of spectator crashes when using "talk" from npcs menu by @dudantas in #40
- Fix summons and familiars bug by @dudantas in #36
- Add jiddo npc lib by @dudantas in #48
- Better handling of the Game::checkCreatures function by @dudantas in #44
- Add nullptr pointers (fix sonar checks) by @dudantas in #51
- Add pointers to check if player or charm is nullptr by @dudantas in #49
- Fix Creature:onTargetCombat(target) function and stamina gain event by @dudantas in #50
- Sort loot of monsters to try most rare itens first by @gtkatakura in #31
- Fixed combat.cpp pointers, the caster sometimes comes null by @dudantas in #137
- Added correct behavior and improved function for gain stamina on trainer by @beats-dh in #134
- Add open stash, open imbuement scripts and registered new items by @dudantas in #42
- Fix on target combat and experience stage by @dudantas in #152
- Bug Solution: Magic Wall not decaying by @Aerwix in #153
- [Feature] Save server by interval time by @beats-dh in #13
- HotFix: Items (Magic Wall & Wild Growth) decaying to 0 by @Aerwix in #155
- Fix frag time by @beats-dh in #15
- Fix recompile.sh build by @beats-dh in #18
- Fix monster loot items stages display on bestiary by @ArturKnopik in #24
- Remove definition of "ITEM_TYPE_MAGICFIELD" from items.xml "field" tag by @dudantas in #47
- Fix stored regeneration condition not using updated vocation values by @beats-dh in #27
- [Market] Add pointers to check if container and item is nullptr on "sendMarketEnter" by @dudantas in #132
- Better handling on create summon talkaction and fix summon icon by @beats-dh in #135
- Fix potential crash in Player::getClientIcons by @beats-dh in #136
- Fix backpacks positions on login by @omeranha in #144
- Fix monster retarget chance by @gerotib in #149
- Fixed crash generated by access "player" without checking if is nullpointer by @dudantas in #156
- Fix vcpkg/libmariadb package by @thatmichaelguy in #163
- [Feature] Add imbuement system and somes fixes by @dudantas in #150
- Decouple parses item attributes in it own file by @beats-dh in #140
- Added name for no longer unknown inspection type by @Zbizu in #166
- Fixed sale in the market to create offer by stash and adjust indentation to tab 4 by @dudantas in #165
- Added "if" check to verify if tables are null on reload talkaction by @dudantas in #168
- Cherry pick otbr commits by @dudantas in #170
- Register news items and movements/weapons unscripted by @dudantas in #173
- [Enhancement] Rework of the imbuement system and conversion to c++ by @dudantas in #164
- [Enhancement] - Optimize decay by @beats-dh in #54
- Fix market information by @victorrequia in #171
- [Improvement] - rework on exercise weapons system by @beats-dh in #180
- Fix double remove money on create market offer by @beats-dh in #181
- Add webhook expansion by @beats-dh in #16
- Check if player exist on useStamina function and fix drop loot script by @dudantas in #158
- Create familiars lib by @beats-dh in #182
- Removed requirement of initial city (dawnport) by @dudantas in #185
- Decouple config manager in true singleton by @dudantas in #190
- Support rates for regen, spell, speed and trainings by @gtkatakura in #32
- Sincronizations with otservbr-global by @dudantas in #191
- Add free quest system (for compatibility with otbr-global) by @dudantas in #193
- Bug fix that allowed to clone items in the market by @dudantas in #195
- [Compatibility] - Support for Canary with otbr-global, conversion from npcs to revscriptsys and rework on jiddo npc lib by @dudantas in #192
- [Protocol Bytes] - Support to client 12.85.11525 by @marcosvf132 in #167
- [Fix/Update] Items .xml and .otb update + Item tier registration fix by @marcosvf132 in #203
- [Npc Shop Enhancement] - Allow an item of the same id to be added multiple times for the same npc by @dudantas in #207
- Remove lua tests, the files no longer exist by @omeranha in #210
- [ConfigManager] - fix typo from "freeQuests" to "toggleFreeQuest" by @dudantas in #211
- [Enhance...