Skip to content

feat: Game Protocol 15.11 - #419

Merged
jprzimba merged 13 commits into
mainfrom
tibia1511
Nov 1, 2025
Merged

feat: Game Protocol 15.11#419
jprzimba merged 13 commits into
mainfrom
tibia1511

Conversation

@jprzimba

@jprzimba jprzimba commented Oct 15, 2025

Copy link
Copy Markdown
Collaborator

Enjoy the 15.11 Game Protocol

This PR updates the game server to the new 15.10+ (15.11) protocol.
What’s new?

  • Weapon Proficiency (loaded from data/items/proficiencies.json)
  • New condition icons
  • New Imbuement system with scroll imbuements
  • New monsters and bosses
  • New items
  • New NPCs
  • New outfits
  • New mounts
  • New quest: Bloody Tusks Quest
  • New map: data-global/world/custom/summer-update-2025
  • New doors

...and much more!

Extra Info

  • Updated database schema with weapon_proficiencies in the players table.
  • Added migration for this change.

Edits

  • Fixed Market debug client.
  • Fixed Cyclopedia debug client.
  • Fixed missing npcs

Useful Links

Note

  • The imbuements.xml file has been updated with scrollId.

💬 Please leave a comment and have fun testing it! 🎮

@gabrielew gabrielew left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a leitura do json é feita uma única vez durante o startup?

msg.addByte(0x5C);
msg.add<uint16_t>(itemId);
msg.add<uint32_t>(experience);
msg.addByte(0x01);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

não sei se é este byte msg.addByte(0x01);, mas o ícone de proficiencia fica sempre aceso

Image

Comment thread src/items/items.cpp
iType.proficiencyId = static_cast<uint32_t>(object.flags().proficiency().proficiency_id());
countProficiencyItems++;
} else {
iType.proficiencyId = 0;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

este valor esta vindo dos assets? Se editar o assets e perder essa ref como podemos fazer o de/para depois?

static_cast<uint8_t>(perkPosition + 1) });
}

player->applyEquippedWeaponProficiency(itemId);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

depois de aplicar deveria "apagar o ícone"

const uint16_t itemId = msg.get<uint16_t>();
player->sendWeaponProficiencyInfo(itemId);

} else if (type == WEAPON_PROFICIENCY_LIST_INFO) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

creio que isso aqui está sendo chamado quando abrimos o painel de proficiencia e esta lagando o cliente

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Também percebi que a manipulação da listagem no cliente não gera novas chamadas no servidor

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Também percebi que a manipulação da listagem no cliente não gera novas chamadas no servidor

Se voce diz de adicionar novos itens: provavelmente voce precisa dos assets de um client ja na versao 15.11 e passar suas modificacoes para ele. Se quiser adicionar itens com proficiencia diferente dos ja registrados precisa:
https://github.com/valdzera/Assets-Editor
baixar um assets editor com as flags corretas e depois adicionar em JSON

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isso é referente a pergunta do attribute, se sim, interessante, estava usando o assets editor que não tratava o proficiencyId então sempre que compilava de novo perdia os valores

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

É possível encontrar um assets editor publico com a flag proficiencyId ?

@jprzimba

Copy link
Copy Markdown
Collaborator Author

a leitura do json é feita uma única vez durante o startup?

yes

@Sh3Ns

This comment was marked as resolved.

@jprzimba

Copy link
Copy Markdown
Collaborator Author

mkt está crachando na versão 1511 e umas casas de venore parou de funcionar

Stats crashando também/.

image

fixed

@Sh3Ns

Sh3Ns commented Oct 19, 2025

Copy link
Copy Markdown
Contributor
image

hi - business
este npc não responde as interações também.

@Sh3Ns

Sh3Ns commented Oct 21, 2025

Copy link
Copy Markdown
Contributor
image

Não aparece informações do item.

@jprzimba

Copy link
Copy Markdown
Collaborator Author
image Não aparece informações do item.

this is a client issue
the info show perfctly in OTC
I does not have the latest client 15.11

@Codemaufeito

Copy link
Copy Markdown
image

se bota duas com mesmo tier ok
colocando diferente ou sem tier crash no cliente

exemplo na foto com as demon armos

@Sh3Ns

Sh3Ns commented Nov 1, 2025

Copy link
Copy Markdown
Contributor
image se bota duas com mesmo tier ok colocando diferente ou sem tier crash no cliente

exemplo na foto com as demon armos

@Codemaufeito

botei tudo aqui e não deu crash não

@jprzimba

jprzimba commented Nov 1, 2025

Copy link
Copy Markdown
Collaborator Author
image se bota duas com mesmo tier ok colocando diferente ou sem tier crash no cliente

exemplo na foto com as demon armos

no crash, its ok

@jprzimba
jprzimba merged commit b57d72e into main Nov 1, 2025
32 checks passed
@jprzimba
jprzimba deleted the tibia1511 branch November 1, 2025 14:37
FelipeArruda pushed a commit to FelipeArruda/crystalserver that referenced this pull request Mar 8, 2026
* feat: Game Protocol 15.11

* Code format - (Clang-format)

* Lua code format - (Stylua)

* fix: update map to work with  crystal server rme

* fix: market client debug

* fix: cyclopedia crash client

* Code format - (Clang-format)

* fix: some issues with houses in Venore

* fix: ferumbras map bugs

* fix: merge summer update into default world map

* fix: add missing npcs

---------

Co-authored-by: GitHub Actions <github-actions[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