Commit graph

108 commits

Author SHA1 Message Date
Eduardo Dantas
5e357d8a81
feat: add Way of the Monk quest and monk-related content (#3794)
feat: add Way of the Monk quest, monster updates, and core data improvements

This commit introduces the complete implementation of the Way of the Monk quest, along with multiple updates to monsters, bosses, items, and core gameplay data.

Quest:
• Added full quest definition for Way of the Monk, including mission flow, shrine tracking, and storage handling.
• Registered the new quest module in the quest catalog.
• Introduced new storage keys related to monk quest progression and items.
• Added a sample monk player migration (DB version 55) for testing purposes.
• Added Blue Valley to the towns list to support quest locations.

Monsters and Bosses:
• Added new monster Tame Terror Bird with complete stats, behaviors, and loot.
• Reworked Mitmah Vanguard boss with updated events, attributes, attacks, defenses, elemental modifiers, loot, and lifecycle hooks.
• Expanded loot tables for bosses such as The Brainstealer and The Monster, including monk-related items and potions.

Items and Loot:
• Updated frazzlemaw and guzzlemaw loot to drop traditional sai instead of sai.
• Added monk-related item IDs to destruction scripts and Dawnport cleanup logic.

Gameplay:
• Added Monk’s Apparition to the Soul War quest apparition list.
• Introduced a new combat formula for fist fighting skill.
• Removed legacy fist fighting attack speed configuration from server settings.

Workflow:
• Improved GitHub Actions workflow to ensure reusable checks run on the correct branch.
2026-02-12 23:03:25 -03:00
Luis Pablo
944a050ffd
feat: foxmouse mount action and change mount type (#3783) 2026-01-11 09:51:27 -03:00
Eduardo Dantas
61d0b6e9db
refactor: add gamestore catalog modules (#3738)
This refactors a comprehensive set of modules for the GameStore system,
including constants, helpers, and parsers. The changes establish a
robust foundation for handling store offers, user actions, and
transactions in a modular and maintainable way. The most important
changes are the addition of a detailed constants file, helper functions
for offer handling, and a parser module that manages all store-related
protocol events and purchase logic.

**GameStore System Foundation**

* Added a new `gamestore.constants.lua` file containing all core
constants for the GameStore, such as offer types, sub-actions, action
types, coin types, error codes, packet codes, default values,
descriptions, and item limits. This centralizes configuration and
improves maintainability.

**Helper Functions**

* Introduced `gamestore.helpers.lua` with utility functions for
converting offer types to display types and determining if an offer
requires configuration, improving code reuse and clarity in offer
handling.

**Store Event and Purchase Parsing**

* Added `gamestore.parsers.lua` which handles all GameStore protocol
events, including opening the store, searching offers, buying offers,
transferring coins, and transaction history. This module coordinates
with helpers and senders to process requests and responses, including
error handling and purchase validation.

These changes collectively lay out the structure for a feature-rich,
extensible GameStore system, making future enhancements and debugging
easier.

---------

Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-06 12:33:07 -03:00
André Morais
6f47dfa5dd
fix: buy all regular blessings (#3722)
Refined the logic for purchasing all blessings in the game store,
ensuring that players cannot exceed the maximum blessing count and that
purchases correctly handle partial blessing states. The changes focus on
improving the validation and processing of the "All Blessings" offer to
prevent over-purchasing and to handle edge cases where some blessings
are already at their maximum.

Blessing purchase logic improvements:

- Updated the validation in `Player.canBuyOffer` to check blessings 2
through 8 for maximum count before disabling the "All Blessings" offer,
ensuring players can only buy it if at least one blessing is not maxed.
- Refactored `GameStore.processAllBlessingsPurchase` to add only the
necessary amount of each blessing, respecting the maximum count per
blessing and handling cases where some blessings are already partially
acquired.
2025-10-20 14:58:08 -03:00
Victor
56bd20bb84
feature: gamestore 'new' flag in home offers (#3704)
Fix gamestore homepage offer state display inconsistency by implementing proper state validation logic in sendHomePage() function. This change aligns the homepage behavior with other gamestore functions that already implement correct offer state handling.

Co-authored-by: Madara <158350170+caiozord@users.noreply.github.com>
2025-09-19 14:56:22 -03:00
Luis Pablo
603c23ef07
feature: add missing water floor and fix water bucket id (#3698) 2025-09-13 13:53:49 -03:00
Luis Pablo
4e216a8286
fix: remove spirit of purity mount from store (#3673) 2025-08-31 15:14:17 -03:00
Luis Pablo
1586d8a6d7
enhancement: add buy bulk of carpets and fix magic carpet mount description (#3632) 2025-07-26 21:09:36 -03:00
Luis Pablo
0d74c5e51d
enhancement: add winged druid outfit to store (#3624) 2025-07-26 20:52:16 -03:00
LeoTK
0d253f8330
fix: gamestore exploit (#3515)
Fixed the exploit when holding enter and clicking the buy button multiple times, buying the same item multiple times even though it was charged for each purchase, this was used to stock up on many exp buffs.
2025-07-06 18:45:47 -03:00
Eduardo Dantas
acdba2cdad
feat: protocol 14.12 (#3524)
feat: add client and server features for gameplay and UI improvements

- Renamed Supply Stash to Stash and removed depot slot limit count
- Added advanced filters for Stash item categories
- Reworked Cyclopedia Combat Stats into Offense, Defense, and Misc Stats
- Added detailed tooltips and integrated stats into Skills widget
- Introduced Magical Archive interface for spells and runes with filters
- Overhauled Quest Log and Tracker with pinning, search, sort, compact display, and notifications
- Enhanced Exaltation Forge with boots tier bonus and Dust management
- Redesigned Charms System with new Major and Minor charms and balance changes
- Added new mounts and outfits for customization
- Improved server and client behavior with advanced stash, spell archive, detailed stats, and enhanced tier systems
- Verified features through manual and in-game testing
2025-06-08 16:12:15 -03:00
LeoTK
b0a6920027
fix: check value purchase exp boost (#3501)
Related to pr: https://github.com/opentibiabr/canary/pull/3496
2025-04-22 22:59:50 -03:00
LeoTK
f9322d2588
fix: gamestore exp price (#3496)
By making this modification it will work and visually the correct amount
of expboost will be charged.
2025-04-22 11:48:36 -03:00
pudimtibia
4023def380
fix: adjust character limit for player names (#3174) 2024-12-31 13:31:56 -03:00
murilo09
a72c5d05bf
refactor: move blessing bytes to cpp (#3064)
Moving bytes from modules to cpp.
2024-11-13 00:02:48 -03:00
HT Cesta
135866a617
fix: quests from version 11 revised (#2938) 2024-10-30 20:06:46 -03:00
Elson Costa
3aeb3e75d5
feat: cyclopedia improvements (#2629) 2024-07-05 17:44:53 -03:00
Eduardo Dantas
d3ddea0b03
fix: gamestore nil player (#2715)
Related to #2694
2024-06-27 13:58:25 -03:00
Luan Luciano
bfb3149e16
fix: correction in checking inbox:getMaxCapacity() (#2679) 2024-06-22 22:22:26 -03:00
Eduardo Dantas
4af5b2dc18
fix: store UI exhaustion and improve bosslever messages (#2694)
Fixed the store exhaustion to work correctly.

Fixed the boss lever messages to better inform the participants.
2024-06-15 00:14:03 -03:00
Luan Luciano
7c9b8d54fb
fix: xp boost time granted by reward daily (#2586) 2024-04-29 12:39:56 -03:00
Mirkaan
a820101006
fix: typo in gamestore function and remove cooldown for item usage while walking (#2485) 2024-04-26 09:34:58 -03:00
Elson Costa
3fcf585600
fix: improves on gamestore, fix on gitignore and items (#2415) 2024-04-23 09:07:35 -03:00
Luan Luciano
167bae5c75
fix: problem with casks items in the charge loop and adjustment without code (#2505) 2024-04-04 11:48:45 -03:00
Bruno Luís Lucarelo Lamonato
9fb38cabd8
fix: duplicated daily rewards bug (#2503) 2024-04-01 11:50:17 -03:00
Elson Costa
e9e99675c6
fix: global server save and expBoostCount improvements (#2449) 2024-03-18 14:45:11 -03:00
LeoTK
28463c125d
fix: adjustments when purchasing household items (#1940) 2024-02-29 12:34:38 -03:00
Nyel
bbb8e4a97e
fix: gamestore task hunting third slot (#2250)
Fix permanent hunting task slot.
Fixes #2237
2024-02-17 03:18:10 +00:00
Elson Costa
d11856992c
fix: gamestore buy stackable items (#2201)
# Description

- Fixed stackable items in store;
- Created script to remove empty parcels from the store inbox on login.

---------

Co-authored-by: Luan Luciano <luanluciano@outlook.com>
2024-02-14 20:21:13 +00:00
Eduardo Dantas
428acba84d
fix: store related errors (#2154)
Resolves #2153

---------

Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Elson Costa <elsongabriel@hotmail.com>
2024-02-05 14:00:08 +00:00
Eduardo Dantas
e44bd199aa
fix: check store inbox max capacity (#2109)
Resolves #2108
2024-01-17 05:01:56 +00:00
Luan Santos
2874951925
mv: moveable -> movable (#2067)
Just to achieve consistency in the codebase and use the same (more
modern) spelling of the word "movable".
2023-12-30 08:04:58 +00:00
Luan Santos
b3a85eee36
improve: migrate part of daily reward to KV (#2006)
Started moving daily reward to KV since it's easier to share that
between lua/cpp and it's the direction the project is going.

Co-authored-by: Elson Costa <elsongabriel@hotmail.com>
2023-12-29 06:38:38 +00:00
Elson Costa
960936836e
feat: skulled players lose store items config (#2046)
Created config to enable/disable players with red/black lose store items
and moved the validation from script `blessing.lua` to config.

Fixes #2014

---------

Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Luan Santos <github@luan.sh>
Co-authored-by: Luan Santos <git@luan.sh>
2023-12-28 22:43:02 +00:00
Luan Santos
fb4338c399
feat: item ownership (#2003)
This add the ability to set ownership on items. An owned item cannot be
picked up or used by anyone except the character that owns it.

If an owned item is inside a container (backpack, etc) that container is
now also treated as owned. "looking" at an owned item shows you the
owner.

New function:
- `item:setOwner(ownerPlayer or id)`
- `item:getOwnerId()`
- `item:getOwnerName()`
- `item:hasOwner()`
- `item:canBeMoved()`

I also sneaked in some other unrelated improvements that didn't fit any
individual PR in here, but the are pretty small.

---------

Co-authored-by: Eduardo Dantas <eduardo.dantas@hotmail.com.br>
2023-12-28 19:27:17 +00:00
Elson Costa
aeec2a283c
fix: daily reward (#2059)
Free players will win all rewards, and vip/premium players will win
bonus rewards correctly.

Fixes #2051

---------

Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2023-12-28 18:59:49 +00:00
Elson Costa
9e4c8224e7
fix: adventurer's blessing (#2043)
Players will get the adventurer's blessing until reach the
'adventurersBlessingLevel' level config from your server.
Players in Rookgaard (without vocation) ignore this validation, and be
like a player without blessing.

- Fixed and improved adventurer's blessing.
- Improvement of PR #1743
2023-12-28 18:52:09 +00:00
Luan Santos
cb60cda5fa
feat: namelocks (#2005)
Adds a `/namelock` command to help you ax those offensive names from
your server.
It works by providing the player with a "free" mandatory name change
upon login.

---------

Co-authored-by: Elson Costa <elsongabriel@hotmail.com>
2023-12-28 10:11:05 -08:00
Elson Costa
2f54ccf207
fix: max limit of character name (#2035)
It was increased to the max limit of character name. (can use exiva and other spells and remover to update in config.php of AAC).
2023-12-18 09:07:42 -03:00
Luan Santos
f0fcd2c39b
improve: datapack cleanup/refactor (#2008)
- Fixes #1840 
- Adds some missing achievements
- Adds some missing mounts
- Adds some missing outfits
2023-12-10 15:11:27 -08:00
Elson Costa
ec2b32ee8d
fix: adjusts from other pr (#1970)
- changed return 'false' to 'true' in talkaction (when return is true,
the command isn't showed in chat).
- adjusted '/listplayers' command.
- fixed ids from 'Darkfire Devourer' and 'Spirit of Purity' mounts.
2023-12-09 12:26:50 -08:00
Luan Luciano
e5bd83a669
improve: add context parameter to addString() (#1826)
Make the debug message: "[NetworkMessage::addString] - Value string is
empty" less vague by adding a context parameter to it.

-  addString(value, function)
2023-12-09 11:27:40 -08:00
Eduardo Dantas
c18bf44cc8
improve: migrate hireling skills and outfits to kv system (#1935)
Resolves #1926 

Addressed a conflict between hireling system and gamestore subaction IDs, which led to occasional loss of offers and inconvenienced players who had to repurchase the offers. To resolve this issue, we increased the IDs to larger numbers and conducted a minor system overhaul. This involved transitioning to the use of Key-Value (KV) storage, removing obsolete cache code, and enhancing system clarity and performance for a smoother player experience.

Co-authored-by: Luan Santos <git@luan.sh>
2023-12-02 15:21:30 -03:00
Eduardo Dantas
f4bb861a54
fix: invalid mount offer from store (#1933)
Fixes bug introduced from #1821 

A mount was added that does not yet exist in appearances, until we add a new dat, we will just ignore their existence.
Removed invalid mounts.
2023-11-28 14:33:17 -03:00
Elson Costa
83a823f3e2
fix: some scripts (#1821)
Continues fixing of #1784 and #1847 

• Improved message on exercise_training.
• Fixes reward charges.
• Created flag in prison bosses' scripts to enable minus players and removed already created functions.
• Removed create torch when player login.
• Fixes in 'clearBossRoom' function usage on bosses teleports.
• Fixed count days and time on ferumbras_lever and fixed mechanic of Ascending Ferumbras boss.
• Fixed xp boost storage resetter (on very ss, the storage was being presented, and the player always buy it with 30 tc).
• Added 13.21 new mounts, reordered and fixed typos, changed the word moveable to movable.
• Removed unnecessary spaces.
2023-11-28 04:37:58 -03:00
Luan Luciano
3a0951821c
fix: suggested fixes by visual studio code (#1825) 2023-11-17 16:59:28 -03:00
Luan Luciano
9dc47c0299
fix: resolved problem with non-existent store condition (#1827)
Resolves #1824
2023-11-15 12:48:04 -03:00
Elson Costa
f7271db119
fix: some scripts (#1784)
Continues fixing of #1741

• Created a function to check time in levers and changed with `creature:getStorageValue(config.storage) > os.time()`;
• Adjusted save_interval messages.
• Added check to show msg with payment information when traveling as free.
• Fixed loot to custodian.
• Fixed some typos.
• Adjusted reward talkaction, to check cap.
• Fixed adventurer's stone usage.
• Added messages when starting or stopping using exercise weapons.
• Fixed some events of bosses.
2023-11-13 13:48:11 -03:00
Luan Luciano
d4a992567a
fix: gamestore adjustment (#1720) 2023-10-20 23:18:42 -03:00
Leonardo Antelmi
a828a75cab
fix: home offers linking correctly (#1723)
Fixing the offers in home page of store, linking correctly to open the selected offer
2023-10-20 21:25:41 -03:00