Skip to content

feat: Game Protocol 15.24 - #684

Merged
jprzimba merged 63 commits into
mainfrom
game1520
Jun 8, 2026
Merged

feat: Game Protocol 15.24#684
jprzimba merged 63 commits into
mainfrom
game1520

Conversation

@jprzimba

@jprzimba jprzimba commented Apr 20, 2026

Copy link
Copy Markdown
Collaborator

This update contains the new game protocol 15.24

Note: Need to update new map, monsters and npcs in future

  • Spell Opacity
  • Multi-Action Button
  • Bounty Tasks
  • Weekly Tasks
  • Delivery Tasks
  • Bounty Talisman System
  • New Outfits
  • New Mounts
  • New Items
  • Multi-Offline Training
  • New Ambient effects
  • 4 News Proficiency Bonus
  • Weapon Attack animation
  • Soulseals in Soulpit

New Hunts (Need map update)

  • Adaean Crystal Mines
  • Adaean Shore
  • Adaean Silver Mines
  • Arean Outskirts
  • Bloodfire Gorge
  • Inner Crypt
  • Isle of Ada
  • Outer Crypt
  • Stag Bastion
  • Unhallowed Crypt

NOTE:

  • Updated client to latest 15.24 assers (download it again)

Downlaod Client

Client 15.24

jprzimba and others added 27 commits April 19, 2026 19:40
Make weekly reset handling timestamp-based and persistent, and apply related cleanup and fixes.

- Bump software version to 4.1.8
- Fix INSERT query to explicitly list columns in server_config.
- Move parseDayOfWeek to utils and expose it via header.
- Rework IOWeeklyTasks startup logic to use weekly reset timestamps, persist last processed reset in DB (weekly_tasks_last_reset_timestamp), avoid double-processing, and mark players when a reset boundary is crossed. Add WEEK_SECONDS and config key constant and include DatabaseManager where needed.
- Adjust logging levels/messages in IOWeeklyTasks for clarity.

These changes ensure reliable weekly reset processing across restarts and improve SQL correctness and logging.
Introduce numerous monster definitions and boss entries for the Newhaven and Winter 2025 updates (e.g. Muglex Clan Chief, The Corruptor, Corrupted Ghost/Skeleton, Bone Bear and multiple bosses). Add several monster spell scripts and ability handlers. Update world registration files (world-monster.xml, world-npc.xml) and the compressed world archive (world.7z) to include the new content.
Insert npcType:addDialogOptions calls across many NPC files in data-crystal/ and data-global/ to enable interactive icons in the NPC conversation window (common options include "trade" and "bye", with some NPCs using "passage" and the Hireling using "deposit all", "withdraw", "balance"). The calls are added just before npcType:register to expose these actions to players.
@jprzimba jprzimba changed the title feat: Game Protocol 15.23 feat: Game Protocol 15.24 Apr 23, 2026
jprzimba and others added 2 commits April 24, 2026 00:47
Adds a collection of Newhaven area scripts (movement step-ins, vocation selection, tutorials, death/login handling, door use and a custom loot drop for 'The Corruptor') and enables ambient zone sound handling with period updates. Updates bone_bear monster stats (health set to 600). Extends monster type flags (canWalk, canTarget) in the registration library and exposes related fields in MonsterType. Implements Monster::canWalk/canTarget, pathfinding/walkTo behavior and doWalkTo handling in the C++ monster code, and exposes monster:walkTo and monsterType:canWalk/canTarget to Lua. Also updates ProtocolGame to handle bounty/task-related client options and adds per-player task icons for monsters. These changes enable configurable monster movement/targeting, new area content, ambient audio, and bounty-related UI cues.
@jprzimba

Copy link
Copy Markdown
Collaborator Author

https://www.youtube.com/watch?v=2w4J9xobqnA

soul seals is working on soul pit?

https://www.youtube.com/watch?v=2w4J9xobqnA

soul seals is working on soul pit?
not sure, but you can test it

@ivansho92

ivansho92 commented May 14, 2026

Copy link
Copy Markdown
Contributor

When a player dies after reaching level 8 in Newhaven, they are returned to Dawnport, even after choosing a vocation, they still lack the items needed to fight in Newhaven.

@oskar1014

oskar1014 commented May 22, 2026

Copy link
Copy Markdown

Hi, I noticed an issue with the new weapon attack effects (304–309).

The animation direction does not adapt to the attacker/target orientation. Instead, the effect appears to be anchored to fixed world map coordinates, so the weapon swing stays in the same orientation regardless of player direction or target position.

From testing, these effects render, but they behave like static map effects rather than directional weapon attack animations.

Is support for weapon attack effects 304–309 still incomplete in the current protocol implementation?

edit:

I found an issue with offline training via bed.

The modal window opens correctly and allows selecting a skill, but pressing Okay does nothing — offline training doesn’t start and the character remains online.

From what I checked, Game::playerStartOfflineTraining() already exists, but it seems it is never called from Game::playerAnswerModalWindow(). The modal response is handled generically, but there is no specific handling for the offline training modal.

@jprzimba

Copy link
Copy Markdown
Collaborator Author

Hi, I noticed an issue with the new weapon attack effects (304–309).

The animation direction does not adapt to the attacker/target orientation. Instead, the effect appears to be anchored to fixed world map coordinates, so the weapon swing stays in the same orientation regardless of player direction or target position.

From testing, these effects render, but they behave like static map effects rather than directional weapon attack animations.

Is support for weapon attack effects 304–309 still incomplete in the current protocol implementation?

edit:

I found an issue with offline training via bed.

The modal window opens correctly and allows selecting a skill, but pressing Okay does nothing — offline training doesn’t start and the character remains online.

From what I checked, Game::playerStartOfflineTraining() already exists, but it seems it is never called from Game::playerAnswerModalWindow(). The modal response is handled generically, but there is no specific handling for the offline training modal.

offline training fixed
now about weapon I can't see any issue

@oskar1014

Copy link
Copy Markdown

offline training fixed now about weapon I can't see any issue

The effect itself is rendering, but the directional frames are wrong.
The center frame (tile 5 / red 0 in the image) stays fixed and never changes.
For example, if I stand northeast of the target, the client should show frame 7, but it shows frame 1 instead, overlapping the fixed center.
So the issue is not that the effect is missing — it’s that the weapon swing direction does not adapt to the attacker/target relative position.
123 (1)
123 (2)

jprzimba added 3 commits May 25, 2026 14:21
Updated map with Targuna and fix an issue with weakly tasks
Please download latedt map
@jprzimba

jprzimba commented May 26, 2026

Copy link
Copy Markdown
Collaborator Author

offline training fixed now about weapon I can't see any issue

The effect itself is rendering, but the directional frames are wrong. The center frame (tile 5 / red 0 in the image) stays fixed and never changes. For example, if I stand northeast of the target, the client should show frame 7, but it shows frame 1 instead, overlapping the fixed center. So the issue is not that the effect is missing — it’s that the weapon swing direction does not adapt to the attacker/target relative position. 123 (1) 123 (2)

I logged into my account on the global server to see how the effect worked with my knight and I noticed that the attack effect, affects the targeted monster and not my character.
Test latest charges please

@oskar1014

Copy link
Copy Markdown

I tested it, but the issue is still there. The weapon swing effect always comes from the same direction, regardless of where my character is positioned relative to the target. The effect renders, but the directional frame does not adapt to the attacker/target orientation.
<img
width="976" height="817" alt="GIF 26 05 2026 19-43-52" src="https://github.com/user-attachments/assets/8de027d7-247d-408a-a476-d4e155641312" />

jprzimba and others added 7 commits June 3, 2026 16:46
- Please update map town name, change Newheaven to Newhaven
- Also added maps.7z with update maps
- Added A Seagull npc to they spawn
add the missing Captain Marie-Denise Banne spawn.
@jprzimba
jprzimba merged commit 3b334ac into main Jun 8, 2026
3 checks passed
@jprzimba
jprzimba deleted the game1520 branch June 8, 2026 20:47
carlosmiguelgit pushed a commit to carlosmiguelgit/newstalgia that referenced this pull request Aug 21, 2026
* initial protocol support

* npc dialog and rework charms

* update wheel

* more of protocol update

* Update config.lua.dist

* weapon attack and updates

* update 15.24

* Code format - (Clang-format)

* Lua code format - (Stylua)

* fix: compiling error

* Update ioweeklytasks.cpp

* fix: weapon animation on attack

* fix: update commands /addmount and /addaddon

* fix: update mount action

* Weekly tasks: persistent reset + misc fixes

Make weekly reset handling timestamp-based and persistent, and apply related cleanup and fixes.

- Bump software version to 4.1.8
- Fix INSERT query to explicitly list columns in server_config.
- Move parseDayOfWeek to utils and expose it via header.
- Rework IOWeeklyTasks startup logic to use weekly reset timestamps, persist last processed reset in DB (weekly_tasks_last_reset_timestamp), avoid double-processing, and mark players when a reset boundary is crossed. Add WEEK_SECONDS and config key constant and include DatabaseManager where needed.
- Adjust logging levels/messages in IOWeeklyTasks for clarity.

These changes ensure reliable weekly reset processing across restarts and improve SQL correctness and logging.

* fix: food

* Update register_achievements.lua

* fix: buy extra wekly task slot

* feat: Add Newhaven & Winter 2025 monsters and spells

Introduce numerous monster definitions and boss entries for the Newhaven and Winter 2025 updates (e.g. Muglex Clan Chief, The Corruptor, Corrupted Ghost/Skeleton, Bone Bear and multiple bosses). Add several monster spell scripts and ability handlers. Update world registration files (world-monster.xml, world-npc.xml) and the compressed world archive (world.7z) to include the new content.

* Lua code format - (Stylua)

* Add Newhaven NPCs and U15_12 storages

* Lua code format - (Stylua)

* Add dialog options to NPC scripts

Insert npcType:addDialogOptions calls across many NPC files in data-crystal/ and data-global/ to enable interactive icons in the NPC conversation window (common options include "trade" and "bye", with some NPCs using "passage" and the Hireling using "deposit all", "withdraw", "balance"). The calls are added just before npcType:register to expose these actions to players.

* Lua code format - (Stylua)

* Update config.lua.dist

* Add newhaven scripts, ambient sounds, and monster AI

Adds a collection of Newhaven area scripts (movement step-ins, vocation selection, tutorials, death/login handling, door use and a custom loot drop for 'The Corruptor') and enables ambient zone sound handling with period updates. Updates bone_bear monster stats (health set to 600). Extends monster type flags (canWalk, canTarget) in the registration library and exposes related fields in MonsterType. Implements Monster::canWalk/canTarget, pathfinding/walkTo behavior and doWalkTo handling in the C++ monster code, and exposes monster:walkTo and monsterType:canWalk/canTarget to Lua. Also updates ProtocolGame to handle bounty/task-related client options and adds per-player task icons for monsters. These changes enable configurable monster movement/targeting, new area content, ambient audio, and bounty-related UI cues.

* Code format - (Clang-format)

* Code format - (Clang-format)

* feat: add mission Bounty Tasks lua functions

this commit fixes issue
2026-04-29_14-39-08.895374 Interface: Scripts Interface
2026-04-29_14-39-08.895387 Script ID: /home/ots/data/scripts/talkactions/god/task_board.lua:callback
2026-04-29_14-39-08.895399 Error Description: /home/ots/data/scripts/talkactions/god/task_board.lua:298: attempt to call method 'getRerollTasks' (a nil value)
2026-04-29_14-39-08.895410 stack traceback:
2026-04-29_14-39-08.895421     [C]: in function 'getRerollTasks'
2026-04-29_14-39-08.895432     /home/ots/data/scripts/talkactions/god/task_board.lua:298: in function </home/ots/data/scripts/talkactions/god/task_board.lua:91>
2026-04-29_14-39-08.895443 ----------

* Validate and batch-count 'any creature' weekly kills

Only count valid bestiary creatures toward the weekly "any creature" kill task. The code now fetches the monster type and bestiary list, ensures the creature awards experience, is preyable, not prey-exclusive, and exists in the bestiary before counting. When valid, the handler increments anyCreatureCurrentKills by the kills value (not just 1), sets updated, and still triggers completion, reward exp, and recalculateWeeklyRewardValues when the task threshold is reached.

* fix: beds offline training

* fix: Add missing npcs

Add missing npcs  to leave console erros
NOTE: npcs need to be updated

* Potential fix for pull request finding 'CodeQL / Comparison of narrow type with wide type in loop condition'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Potential fix for pull request finding 'CodeQL / Comparison of narrow type with wide type in loop condition'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Potential fix for pull request finding 'CodeQL / Comparison of narrow type with wide type in loop condition'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Potential fix for pull request finding 'CodeQL / Comparison of narrow type with wide type in loop condition'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Potential fix for pull request finding 'CodeQL / Comparison of narrow type with wide type in loop condition'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* fix: Use size_t and std::min for counts

Replace uint8_t loop counters with size_t and clamp vector sizes using std::min to avoid overflow/crashes. Cap creature icons to 3 and distanceAccuracy to uint8_t max, and add explicit static_cast<uint8_t> when writing counts/indices to the message to ensure correct serialization and type safety.

* fix: add bounty talisman to npc list

Update based on npc list from https://www.tibiawiki.com.br/wiki/Bounty_Talisman

* fix: Bounty Talisman not working

Also add missing lua functions

* Code format - (Clang-format)

* feat: Add bountyTasksKillMultiplier config

* Code format - (Clang-format)

* feat: Add Bounty Points highscore support

* Code format - (Clang-format)

* feat: Add weekly tasks completed highscore category

* fix: Beds offline training

* fix: add Targuna in map and fix weakly tasks

Updated map with Targuna and fix an issue with weakly tasks
Please download latedt map

* fix: weapon effect

* fix: Assets and food fix

* fix: Updated map

* fix duplicate npc and Newhaven town name

- Please update map town name, change Newheaven to Newhaven
- Also added maps.7z with update maps
- Added A Seagull npc to they spawn

* fix: Adjust Captain Marie-Denise Banne outfit

add the missing Captain Marie-Denise Banne spawn.

* fix: forge not working via game UI

* Code format - (Clang-format)

---------

Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants