Releases: opentibiabr/otservbr-global
OTServBR - Global 1.5.0
- Download Client 12.91
What's Changed (OTServBR-Global datapack)
- Fix killing in the name of... tasks by @rigis1 in #731
- Fix rat fresh corpse id (chondur counterspell) by @AdversarioV in #727
- Fix items ids and npc player:getName function, add water pipe action by @Austerror in #740
- Enable gamestore to offers services/items for tournament coins by @bosmak in #743
- Fix loot from monsters, autoloot, bosses mechanics, weight of item, questlog, npcs, container size, spawns by @rigis1 in #747
- Organized and some adjustments in the worldchanges maps and fixed Rashid teleport by @bosmak in #749
- Fix npcs walkaway logic by @dudantas in #741
- [Enhancement] - Added boolean value to enable or disable greeting, ungreeting and trade npc callback by @dudantas in #742
- Added npcConfig.name on npc grizzly adams by @majestyotbr in #756
- Fixes and add blood brothers quest till mission 4 by @rigis1 in #753
- Fix redskull and blackskull droploot by @majestyotbr in #757
- Fix Exercise Weapons and Dummy by @murilo09 in #761
- Fix falcon castle access to doors and teleport by @rigis1 in #758
- Remove autobump by @dudantas in #762
- Fix exercise weapons and dummy by @murilo09 in #763
- Fix Inquisition Bless Price by @murilo09 in #764
- Fix the welter boss by @murilo09 in #765
- Add key of the drowned library by @murilo09 in #768
- Rework Gaz'haragoth summon spell and Minion of Gaz'haragoth by @murilo09 in #767
- Fix lion's rock quest by @rigis1 in #771
- Fix gaz'haragoth event by @majestyotbr in #777
- Fix Mortimer dialogue loop when delivering the pickaxe by @lucastsantos in #778
- Fix Warzones I, II & III by @murilo09 in #780
- Fix unGreet function in npc cassino by @Rechdan in #782
- Fix readme links by @dudantas in #723
- [Enhancement] Protocol update to 12.91 by @guispiller in #732
New Contributors
- @Austerror made their first contribution in #740
- @bosmak made their first contribution in #743
- @murilo09 made their first contribution in #761
- @lucastsantos made their first contribution in #778
Full Changelog: v1.4.0...v1.5.0
What's Changed (Canary source)
- Fix show attributes look on de equip item by @dudantas in opentibiabr/canary#450
- Fix crash related to on look item by @dudantas in opentibiabr/canary#456
- Fixed crash when creating specific offers with certain amount from inbox by @dudantas in opentibiabr/canary#453
- Fixed buying more than 1 item with only one free slot by @dudantas in opentibiabr/canary#454
- Fix clone items and crash if classicEquipmentSlots is true by @dudantas in opentibiabr/canary#464
- Add exhaustion to npc say and sell/buy item by @dudantas in opentibiabr/canary#459
- Fixed clone depot items by @dudantas in opentibiabr/canary#460
- Fix random client debug by @dudantas in opentibiabr/canary#463
- [Enhancement] Replace all std::unordered with phmap::flat_hash by @beats-dh in opentibiabr/canary#420
- Improvement of teleportTo function log by @dudantas in opentibiabr/canary#466
- Fix faction target logic by @dudantas in opentibiabr/canary#473
- Fix Protocol::getIP nullptr message by @dudantas in opentibiabr/canary#478
- [Fix] Client debug on depot search (255+ items) by @marcosvf132 in opentibiabr/canary#496
- Fix readme links by @majestyotbr in opentibiabr/canary#512
- [Enhancement] Protocol update to 12.91 by @marcosvf132 in opentibiabr/canary#443
New Contributors
- @majestyotbr made their first contribution in opentibiabr/canary#512
Full Changelog: opentibiabr/canary@v1.4.0...v1.5.0
OTServBR-Global - Version 1.4.0 (Stable)
Release version: stable v1.4.0 -
Download Tibia Client 12.86.11871
Download OTClient 1.0, thanks for @mehah
Fixes
-
Fix cmake warning (wrong boost dir on library) (opentibiabr/canary#362, opentibiabr/canary@d2279bf, @dudantas)
-
Resolves the issue of killing some monsters giving error on distro (opentibiabr/canary#370, opentibiabr/canary@8686cd9, @dudantas)
-
Fix typo on daily reward, from addItemId to addU16 (opentibiabr/canary#371, opentibiabr/canary@9da46a7, @dudantas)
-
Fix item name register from appearances protobuf (opentibiabr/canary#376, opentibiabr/canary@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 (opentibiabr/canary#368, opentibiabr/canary@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 (opentibiabr/canary#380, opentibiabr/canary@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 (opentibiabr/canary#388, opentibiabr/canary@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 (opentibiabr/canary#395, opentibiabr/canary@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 (opentibiabr/canary#390, opentibiabr/canary@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 (opentibiabr/canary#408, opentibiabr/canary@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 (opentibiabr/canary#400, opentibiabr/canary@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 (opentibiabr/canary#385, opentibiabr/canary@b1786d5, @marcosvf132)
-
Fix null function on daily reward (opentibiabr/canary#375, opentibiabr/canary@1960d49, @dudantas)
Resolves opentibiabr/canary#374 -
Fix "nil item" on daily reward (opentibiabr/canary#423, opentibiabr/canary@0b65754, @dudantas)
Resolves opentibiabr/canary#421 -
Fix checks on player death, player speed breakpoint and misc enhancements (opentibiabr/canary#378, opentibiabr/canary@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 (opentibiabr/canary#396, opentibiabr/canary@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 (opentibiabr/canary#441, opentibiabr/canary@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 (opentibiabr/canary#440, opentibiabr/canary@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 (opentibiabr/canary#442, opentibiabr/canary@afab2af, @beats-dh)
-
Fix remove summon bug and added new config tag for teleport summon (opentibiabr/canary#428, opentibiabr/canary@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 (opentibiabr/canary#438, opentibiabr/canary@e033f83, @beats-dh)
-
[Fix] convert burst and poison arrow to client id (opentibiabr/canary#405, 647b005, @Aerwix)
Features/Enhancements
- Some small improvements to gha (opentibiabr/canary#363, opentibiabr/canary@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 (opentibiabr/canary#239, opentibiabr/canary@526ef51, @beats-dh)
- [CrashFix] fix monster type name overriding and some improvements (opentibiabr/canary#389, opentibiabr/canary@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 (opentibiabr/canary#398, opentibiabr/canary@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 (opentibiabr/canary#391, opentibiabr/canary@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 b...
OTServBR-Global - Version Stable 1.3.1 (Patch)
Release version: Stable v1.3.1 (Patch) - e06dd7ff
Download Tibia Client 12.86.11871
Download OTClient 1.0, thanks for @mehah
Fixes
- Crash related to creature death (@dudantas, opentibiabr/canary@03e8e09e)
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, opentibiabr/canary@7082aff3)
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
- Commits: c785752, opentibiabr/canary@80908fd4
Canary:
Features/Enhancements
- Complete rework on npcs shop add item functions (@dudantas, opentibiabr/canary@caf0a970)
- Experience tracker (@marcosvf132, opentibiabr/canary@990da240)
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, opentibiabr/canary@5cb9ff7b)
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, opentibiabr/canary@4f8667a6)
no more disconnection when player dies - Solved incompatibility problem with otclient redemption (@marcosvf132, opentibiabr/canary@c46f64d2)
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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@c45f1d2)
Added somes missing librarys: daily reward, modal window, reward boss
Added new scripts for: monsters and spells - Party hunt analyzer. (@marcosvf132, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@8552c10)
Adds new release build with asan enabled to help tracking problems - Added missing effects from version 12: soulwar/tentugly/supreme cube (@Aerwix, opentibiabr/canary@371f116)
- Added a new method to register scripts by the map position and rework on "registerLuaEvent" function (@dudantas, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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 opentibiabr/canary#123
OTServerBr-Global PR: #544 - Add script casks and kegs (store item for refill potions) (@lucasgrizante, opentibiabr/canary@256a6ee)
- Move client version from config.lua to definitions.h (@dudantas, opentibiabr/canary@4580324c)
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, opentibiabr/canary@68d0475c)
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, opentibiabr/canary@844530b7)
Fix
- Register Npc Type - add missing currency method for npcs revscriptsys (@Aerwix, opentibiabr/canary@9f37c02a)
- Bestiary tracker list loader (@marcosvf132, opentibiabr/canary@9a02596f)
- Reverting item tier to 0 + Market/Cyclopedia item tier (@marcosvf132, opentibiabr/canary@4c7a35a3)
- Life and mana leech amount/chance attribute (@guispiller, opentibiabr/canary@56ddcf2f)
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, opentibiabr/canary@e3df5835)
- Ring transformation on creation (@marcosvf132, opentibiabr/canary@0eacb35b)
Rings was transforming into wrong itemIDs on creation. - Add missing duration timestamp attribute for decay system (@beats-dh, opentibiabr/canary@15275499)
- logout message connection lost on bed and offline training and remove unused tag on druid familiar (@omeranha, opentibiabr/canary@e6abcc8f)
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, opentibiabr/canary@0059314e)
- docker-compose: add env to correct mysql host (@bruno-costa, opentibiabr/canary@611a44ef)
- Few hireling issues (@marcosvf132, opentibiabr/canary@3808591d)
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, opentibiabr/canary@deeb21ff)
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, opentibiabr/canary@3e94dc2b)
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, opentibiabr/canary@65b53485)
Fix for player selling offer not receiving money if offline (thanks ...
OTServBR-Global - Version Stable 1.3.0
Tibia Client 12.86.11871
OTClient 1.0
Canary:
Features/Enhancements
- Complete rework on npcs shop add item functions (@dudantas, opentibiabr/canary@caf0a970)
- Experience tracker (@marcosvf132, opentibiabr/canary@990da240)
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, opentibiabr/canary@5cb9ff7b)
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, opentibiabr/canary@4f8667a6)
no more disconnection when player dies - Solved incompatibility problem with otclient redemption (@marcosvf132, opentibiabr/canary@c46f64d2)
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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@c45f1d2)
Added somes missing librarys: daily reward, modal window, reward boss
Added new scripts for: monsters and spells - Party hunt analyzer. (@marcosvf132, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@8552c10)
Adds new release build with asan enabled to help tracking problems - Added missing effects from version 12: soulwar/tentugly/supreme cube (@Aerwix, opentibiabr/canary@371f116)
- Added a new method to register scripts by the map position and rework on "registerLuaEvent" function (@dudantas, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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, opentibiabr/canary@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 opentibiabr/canary#123
OTServerBr-Global PR: #544 - Add script casks and kegs (store item for refill potions) (@lucasgrizante, opentibiabr/canary@256a6ee)
- Move client version from config.lua to definitions.h (@dudantas, opentibiabr/canary@4580324c)
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, opentibiabr/canary@68d0475c)
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, opentibiabr/canary@844530b7)
Fix
- Register Npc Type - add missing currency method for npcs revscriptsys (@Aerwix, opentibiabr/canary@9f37c02a)
- Bestiary tracker list loader (@marcosvf132, opentibiabr/canary@9a02596f)
- Reverting item tier to 0 + Market/Cyclopedia item tier (@marcosvf132, opentibiabr/canary@4c7a35a3)
- Life and mana leech amount/chance attribute (@guispiller, opentibiabr/canary@56ddcf2f)
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, opentibiabr/canary@e3df5835)
- Ring transformation on creation (@marcosvf132, opentibiabr/canary@0eacb35b)
Rings was transforming into wrong itemIDs on creation. - Add missing duration timestamp attribute for decay system (@beats-dh, opentibiabr/canary@15275499)
- logout message connection lost on bed and offline training and remove unused tag on druid familiar (@omeranha, opentibiabr/canary@e6abcc8f)
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, opentibiabr/canary@0059314e)
- docker-compose: add env to correct mysql host (@bruno-costa, opentibiabr/canary@611a44ef)
- Few hireling issues (@marcosvf132, opentibiabr/canary@3808591d)
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, opentibiabr/canary@deeb21ff)
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, opentibiabr/canary@3e94dc2b)
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, opentibiabr/canary@65b53485)
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, opentibiabr/canary@77f152e3)
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, opentibiabr/canary@d488fae)
Removed some unnecessary delete pointers - Added check to ensure the item is not imbued twice with the same imbuement (@dudantas, https://github.com/opentibiabr/canary...
OTServBR-Global - Version Stable 1.2.0
Canary Modifications
Support client 12.85.11525 (author: @marcosvf132, commits: (opentibiabr/canary@e9c85a5, opentibiabr/canary@3144b16, opentibiabr/canary@cc98f40)
Modified (Canary):
- [Lua/Pack]: Remove lua tests, the files no longer exist (author: @omeranha, commit: (opentibiabr/canary@9a21ad4)
- [Source]: Enhancement - Automatically unzip world.zip in world folder if otbm file doesn't exist on server start (author: @omeranha, commit: (opentibiabr/canary@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 (Canary):
-
[Source]: Npc Shop Enhancement - Allow an item of the same id to be added multiple times for the same npc (author: @dudantas, commit: (opentibiabr/canary@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: (opentibiabr/canary@8315cf5)
-
[Source]: Added new Lua method
configManager.getFloat
(author: @Rechdan, commit: (opentibiabr/canary@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: (opentibiabr/canary@29846fa)
-
[Source]: Set item tier bytes from "0" to "1" from protocol 12.85 (author: @dudantas, commit: (opentibiabr/canary@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.
OTServBR-Global Modifications
Modified (Global):
- [Lua]: NPC's Revscriptsys - Fix lookTypeEx typo and convert to clientId (author: @daanyx, commit: 2cc1a6d)
Fixed bug in "lookTypeex" variable to "lookTypeEx" and converted ids to clientId. - [Lua/Pack]: Protocol 12.85 - Support for client version 12.85 datapack (author: @marcosvf132, commit: a29bc41)
Protocol 12.85 datapack
Syncronize datapack with Canary 12.85 commit: opentibiabr/canary@e9c85a5
Small fix on the "loadLuaMapAction" function that was breaking the map loading by LUA.
The changes on this commit is following the same changes on the pull request :opentibiabr/canary#203
Fixed problems (Global):
- [Lua]: NPC's Revscriptsys - Fixed the bug in the shops of npcs that have the same item for sell and buy (author: @dudantas, commit: c1eb738)
The way the shop was converted doesn't work to have two tables separating the "sell" and the "buy", it needs to be in a single table, thus preventing the same item from appearing in the sell and not appearing in the buy.
I took advantage of the pull request to move the functions to the correct locations, thus getting more organized.
Fixed others bugs related to the npcs - [Lua]: Fix addEvent from grimvale quest calling nil function (author: @dudantas, commit: c20b800)
- [Lua]: Change flag from "pet" tag for "familiar", fix the bug where the summon doesn't enter pz (author: @dudantas, commit: 38bbf2d)
- [Lua]: Fix lower/upper case in the unscripted_equipments and unscripted_weapons (author: @dudantas, commit: 8a7e8e3)
- [Lua]: Convert id from magic gold converter to client id (author: @painer15999, commit: a4a024d)
- [Lua]: Fix lion shield on unscripted equipments table (author: @painer15999, commit: 767f9e0)
OTServBR-Global Stable v1.1.1
Support client 12.72.11206 and otclient (pull in progress)
Global datapack lua code: e4524f8
Canary source code: opentibiabr/canary@6388163)
Adjusted:
- Interval that npcs send messages in the default chat,
- Speed that npcs walk (baseSpeed),
- Interval of steps of npcs to 2 seconds (walkInterval),
- Fixed a small bug in the npc shop that prevented items from appearing in the trade in certain scenarios.
OTServBR-Global Stable v1.1.0
Support client 12.72.11206 and otclient (pull in progress)
Description:
NPCS converted to revscriptsys and removed the npcs xml
Changed jiddo lib to work with revscriptsys npcs, also making several improvements to the lib. And several other functions that have been improved or rework. We also removed all the code from the lib that parse/handle the npcs xml.
Module shop has been removed (a big improvement was made where the shop is now in npcType, more easily and is called directly from source).
Added back storage of npcs spawns in the world folder (there was also a reorganization, where npcs and monsters will be in separate files from now on, as it will be possible to see npcs on the map).
Several other modifications and adaptations to make compatibility possible.
NOTE: This commit (1ffd9f1) will work directly with the commit: opentibiabr/canary@0397d0c, from Canary repository.
After this commit, the OTServBR-Global will use the Canary Engine, there will no longer be source code in global.
Thanks for @dudantas, @lgrossi, @gpedro, @beats-dh, @omeranha, @dmarszk.
Modifications
Added:
Npclib:
Callbacks:
- onCloseChannel (CALLBACK_ON_CLOSE_CHANNEL)
- onMove (CALLBACK_ON_MOVE)
- FocusModule.tradeCallback
- NpcsEvent_t enum: NPCS_EVENT_PLAYER_CLOSE_CHANNEL
Lua functions:
- NpcHandler:getKeywordHandler()
- NpcHandler:getEventDelayedSay(playerId)
- NpcHandler:setEventDelayedSay(playerId, newEventDelayedSay)
- NpcHandler:getEventSay(playerId)
- NpcHandler:setEventSay(playerId, newEventSay)
- NpcHandler:getTalkStart(playerId)
- NpcHandler:setTalkStart(playerId, newTalkStart)
- NpcHandler:getTopic(playerId)
- NpcHandler:setTopic(playerId, newTopic)
- NpcHandler:checkInteraction(npc, player)
- NpcHandler:updateInteraction(npc, player)
- NpcHandler:setInteraction(npc, player)
- NpcHandler:removeInteraction(npc, player)
- NpcHandler:tradeRequest(npc, player, message)
- NpcHandler:onMove(npc, player, fromPosition, toPosition)
- NpcHandler:sendMessages(message, messageTable, npc, player, useDelay, delay)
- FocusModule:setTradeCallback(callback)
- Npc:sayWithDelay(npcId, text, messageType, delay, event, playerId)
- Npc:sendMessage(player, text)
- Npc:isMerchant()
- Npc:closeShopWindow(player)
- Npc:isInTalkRange(playerPosition)
- Npc:move(direction)
- Npc:turn(direction)
- Npc:follow(player)
- Npc:getId()
- Npc:sellItem(player, itemid, amount, subtype, actionid, <optional: default: 1> canDropOnMap)
- Npc:getDistanceTo(uid)
- NpcType:getSpeechBubble()
- NpcType:setSpeechBubble()
- Player:getItemIdByCid(itemId)
- Item:getClientId()
- LuaFunctionsLoader::getErrorDesc(ErrorCode_t code) new callback: LUA_ERROR_NPC_TYPE_NOT_FOUND
Cpp functions:
- Npc::onPlayerCloseChannel(creature)
- Game::loadCustomMap(name)
- Iomap: loadMonstersCustom(map), loadNpcsCustom(map), loadHousesCustom(map)
Cpp definitions:
- ITEM_FILLED_BATH_TUBE, ITEM_SWORD_RING, ITEM_CLUB_RING, ITEM_DWARVEN_RING, ITEM_RING_HEALING, ITEM_STEALTH_RING, ITEM_TIME_RING, ITEM_PAIR_SOFT_BOOTS, ITEM_PAIR_SOFT_BOOTS_ACTIVATED, ITEM_DEATH_RING, ITEM_DEATH_RING_ACTIVATED, ITEM_PRISMATIC_RING, ITEM_PRISMATIC_RING_ACTIVATED.
Othes:
- Added bank system lib (bank_system.lua)
- TalkAction: /addmoney playername, moneycount
Modified
Callbacks:
- FROM: CALLBACK_CREATURE_APPEAR, TO: CALLBACK_ON_APPEAR
- FROM: CALLBACK_CREATURE_DISAPPEAR, TO: CALLBACK_ON_DISAPPEAR
- FROM: CALLBACK_CREATURE_SAY, TO: CALLBACK_ON_SAY
- FROM: CALLBACK_ONTHINK, TO: CALLBACK_ON_THINK
- FROM: CALLBACK_PLAYER_ENDTRADE, TO: CALLBACK_PLAYER_END_TRADE
- FROM: CALLBACK_PLAYER_CLOSECHANNEL, TO: CALLBACK_CLOSE_CHANNEL
- FROM: CALLBACK_ONADDFOCUS, TO: CALLBACK_SET_INTERACTION
- FROM: CALLBACK_ONRELEASEFOCUS, TO: CALLBACK_REMOVE_INTERACTION
- FROM: CALLBACK_ONTRADEREQUEST, TO: CALLBACK_ON_TRADE_REQUEST
- FROM: SHOP_TRADEREQUEST, TO: FOCUS_TRADE_MESSAGE
Functions:
- From: player:removeMoneyNpc(), to: player:removeMoneyBank(cost)
- From: NpcHandler.eventSay[focus] = nil, to: NpcHandler:setEventSay(playerId, nil)
- From: NpcHandler.eventDelayedSay[focus] = nil, to: NpcHandler:setEventDelayedSay(playerId, nil)
- From: NpcHandler.talkStart[focus] = nil, to: NpcHandler:setTalkStart(playerId, nil)
- From: NpcHandler.topic[focus] = nil, to: NpcHandler:setTopic(playerId, nil)
- From: NpcHandler:onCreatureAppear, to: NpcHandler:onAppear
- From: NpcHandler:onCreatureDisappear, to: NpcHandler:onDisappear
- From: NpcHandler:onCreatureAppear, to: NpcHandler:onAppear
- From: NpcHandler:onCreatureSay, to: NpcHandler:onSay
- From: NpcHandler:onPlayerCloseChannel, to: NpcHandler:onCloseChannel
- From: NpcHandler.topic[playerId] = topicId, to: NpcHandler:setTopic(playerId, topicId)
- From: NpcHandler.topic[playerId] == topicId, to: NpcHandler:getTopic(playerId) == topicId
- From: Charm:cancelMessage(), to: charm:messageCancel()
- From: Charm:logMsg(), to: Charm:messageServerLog()
- msgcontains(message, keyword) = It was refactored so that it identifies the entire string and does not read just one word, generating this issue: https://github.com/opentibiabr/otservbr-global/issues/2736
Removed
Npclib:
Callbacks:
- NpcHandler: focuses, idleTime, talkRadius, shopItems, MESSAGE_ONBUY, MESSAGE_BOUGHT, MESSAGE_SELL, MESSAGE_ONSELL, MESSAGE_SOLD, MESSAGE_IDLETIMEOUT
- Voice modules
- Shop module
- NpcSystem (It was used to parse XML npcs information)
Lua functions:
- NpcHandler:isFocused
- NpcHandler:releaseFocus
- NpcHandler:onPlayerEndTrade
- NpcHandler:onSell
- doNpcSellItem
- doCreatureSayWithDelay
- doPlayerSellItem
- doPlayerBuyItemContainer
- doPlayerRemoveMoney
- getPlayerMoney
- closeShopWindow
Cpp functions:
- Npc:getCurrencyTrading()
Others modifications:
- Changed configkey = From: MAP_CUSTOM_ENABLED, to: TOGGLE_MAP_CUSTOM
- Fixed the load of the custom map, which is now directly in the source and works as a complement to the main map.
- Removed ConfigKey: MAP_CUSTOM_FILE and MAP_CUSTOM_SPAWN
- Some functions are capitalized to indicate that they are global functions, for example: MessageContains(), GetCount(), and others.
- Rework on bestiary_charm script
OTServBR-Global Stable v1.0.6
Support client 12.72.11206 and otclient (pull in progress)
Fixed:
Note: this will be the last release where the global repository will be sourced. The next one, which will be release 1.1.0, will be sourced from Engine Canary.
OTServBR-Global Stable v1.0.5
Support client 12.72.11206 and otclient (pull in progress)
Modified:
- [Source/Lua] Create familiars lib, rename from "pet" to "familiar" and others fixes (author: @dudantas, commit: e34e401)
Fixes:
Rename from "pet/Pet" to "familiar/Familiar"
Removed "familiar = false" from monsters, this is false by default (this change is optional)
Renamed from "mtype:isPet" to "mtype:familiar"
Fixed familiar login with god.
Co-authored-by: @beats-dh - [Lua] Register missing foods "goanna meat" and "candy floss" (author: @travisani, commit: 0cb8387)
Fixed problems:
- [Source] Fix double remove money on create market offer (author: @dudantas, commit: 3228c9e)
- [Source] Fix remove item from stash on apply imbuement (author: @dudantas, commit: 962e323)
The function "getStashItemCount" uses client id instead of id. - [Source] Fixed crash after conjure item with duration (author: @dudantas, commit: 73d4d10)
Fixed crash after casting item with duration
Fixed "register_spells.lua" indentation
Added nullpointer on the load backpacks function - [Lua] Removed creature events from monsters script interface (author: @dudantas, commit: 5f004ad)
Scripts cannot be placed inside the monsters folder, as it is the monsters only interface, all other types of scripts need to be in the scripts folder. - [Lua/XML] Removed duplication in events and rearranged the xml order (author: @gpedro, commit: 44d75fe)
- [Lua/XML] Amulet bug fix in enchanted werewolf amulet time and skill (author: @painer15999, commit: 02e6f32)
Amulet bug fix in enchanted werewolf amulet time result (onDeEquip) and skill bug - [Source] Fix wrong increment equipment skills in "onEquip/deEquip" (author: @Rechdan, commit: 02e88a1)
Addeditem->hasAttribute(ITEM_ATTRIBUTE_DURATION)
to check if the item has the duration attribute, making it so that only items that are in the decay stage can enter the if
With the PR #375 a bug with weapons that have skills was introduced, where they started to remove the skill instead of adding it, this PR is to fix that. - [Lua] Fix freezing freequests.lua (author: beats-dh, commit: d023799)
- [Lua/Source], Fix issue #380 and #389, fix maxSummons bug (author: @dudantas, commit: 62d7348)
Variable "monster.summons" renamed to "monster.summon"
Improved the "registerMonsterType.summon" function. The "monster.maxSummons" was changed to be inside "monster.summon", thus facilitating development
Added new table "summons" inside of "monster.summon"
Added the "count" in the "monsterType:addSummon" function
Fixed somes summons with "Demon2" name to "Demon"
Removed "monster.summonCost", the correct is "monster.manaCost"
Fixed a bug in the "registerMonsterType.light" function
Fixed bug in the familiar behavior
Modified all monsters for new style of summons - [Lua] Fix message "log out more than 10 minutes to start offline training" (author: @travisani, commit: 2a22212)
Message like tibia global - [Lua] Fix message and min level for talk in "advertising" and "english chat" (author: @travisani, commit: c6cc888)
Same behavior as in global tibia, so the requirement will be at least level 20 or have a premium account. In addition to fixed the message. - [Lua] Fix lion's rock quest "holy water fountain" and "fountain rewards" (author: @EeFo17, commit: 762188b)
- [Source] Fix removing items from stash on apply imbuement (author: @dudantas, commit: bc92e3c)
Complement of the pr: #373 - [Source/Lua] Fix issues #312, #399, fix bestiary counter logic and update charm values (author: @marcosvf132, commit: e96951d)
OTServBR-Global Stable v1.0.1
Support to client 12.72.11206 (author:marcosvf132, commit: 20866ec) and otclient (pull in progress)
Modified:
- [Source] Fixed imbuement system behavior and a crash related to memory reference (author @hyresu, commit: 6f4fddb)
• Fixed:
Item only gets inmediate bonus when imbued on equipment slots
Clearing the imbuement will make you lose it if the item is equipped
You should be able to use bank balance for imbuements
Elemental damage shouldn't be affected
Critical hit chance should not get higher than 10% if the item already has critical hit chance
Falcon Coif should be able to get Intricate Epiphany and Dark Whispers only Basic Epiphany
Item description should show crit chance without positive sign and "critical extra damage"
Move map deletion to outside the loop to avoid memory reference crash on Game::checkImbuements function
• Enhancement: Where the "imbuementslot" value is from 1 to 3 and the imbuement name values are also from 1 to 3, which is the imbuement level (basic, intricate or powerful), the name must be placed as above, as it is from the name that the value of each imbuement is called by ItemNode.
Fixed problems:
- [Lua] Fix issue #287, hirelings sell function don't work (author: @gpedro, commit: 5c16790)
- [Lua] Fix issue #332, familiars script does not make sure if the player has a vocation (author: @gpedro, commit: 49596a2)
- [Lua] Fix issue #309, wrong toKill value for star 3 on bestiary (author: @gpedro, commit: 79955d9)