Skip to content

Server 0.97.40 — Fase 4

Choose a tag to compare

@EmanuelCatania EmanuelCatania released this 07 Nov 19:00
f10ffc9

Server 0.97.40 — cierre de la Fase 4

Compatible con el cliente 0.97.40. Cambia el protocolo: actualizá cliente y server juntos. Un cliente anterior no entra a un server 0.97.40, y al revés.

  • Texto en UTF-8 de punta a punta. El server ya no convierte a Windows-1252: lo que escribe el jugador es lo que se guarda y lo que ven los demás. Los nombres de personaje y de guild aceptan cualquier escritura (10 y 8 caracteres, validados y normalizados a NFC). La base pasa a utf8mb4.
  • Protocolo 0.97.40: nombres de personaje de 40 bytes y de guild de 32, y chat, susurros, avisos de guild y /post de hasta 200 bytes. Los paquetes que con esos largos pasan de 255 bytes van con header C2.
  • Traducciones por idioma (F3:F0). Cada cliente recibe en su idioma los nombres de items, monstruos y skills, las líneas de tooltip de los items custom y los textos propios del cliente, desde Data/Text/<idioma>/ (Eng, Spn y Por).
  • Panel web: editor de traducciones y editor de items custom (efectos, pose, tooltip y pets), los dos con la misma validación que el server. Suma cambio de contraseña, Turnstile y orden de cuentas en el panel de administración.
  • Barra de buffs (F3:F1) con el tiempo restante de cada efecto, sus valores y quién lo lanzó, y niebla por mapa (F3:E9) con distancias de inicio y fin.
  • MySQL por la API en C: libmysqlclient en Linux y MariaDB Connector/C compilado estático en Windows. Ya no hace falta ninguna DLL de MySQL.
  • Correcciones: el puntaje del ranking de Blood Castle llegaba corrido dos bytes; el paquete de recall (C3:B0) tenía el layout equivocado con GCC; Rena y Stone se apilan.
  • En Windows, la compilación recomendada pasa a x64. x86 queda como base histórica y el CI la sigue compilando.

Docker, todas en 0.97.40 y latest, para amd64 y arm64: emapupi/mu-linux-97k, emapupi/mu-linux-97k-web, emapupi/mu-linux-97k-mu-editor, emapupi/mu-linux-97k-mysql y emapupi/mu-linux-97k-pterodactyl.

Actualización desde 0.97.30: cambia la base de datos. Antes de empezar, hacé un backup.

  1. Detené mu-server y mu-web. Corré Migrate-utf8mb4.sql, Migrate-0.97.40.sql y Procedures.sql, siguiendo la guía de migración a utf8mb4.
  2. Hacé el pull de las imágenes nuevas.
  3. Un volumen persistente no se actualiza con el pull, así que hay que integrar a mano lo siguiente:
    • Obligatorio: ServerVersion=0.97.40 en GameServer/Data/GameServerInfo - StartUp.dat. Sin este cambio el cliente nuevo no entra.
    • La carpeta Data/Text/.
    • Los Message_*.txt, que ahora están en UTF-8.
    • La fila de Rena y Stone en ItemStack.txt.

Ver la guía completa.

Pterodactyl:

  • Importá los eggs de Pterodactyl-eggs-0.97.40.zip. El del server usa la imagen de runtime 0.97.40, que trae libmysqlclient21. El de la web ahora acepta el tag sin v.
  • Seleccioná 0.97.40 en MU_RELEASE_TAG.
  • En instalaciones existentes, con el servidor detenido, extraé el archivo de tu arquitectura en una carpeta temporal, reemplazá los cuatro binarios y start.sh, e integrá los archivos de Data de arriba conservando tus INI.

English — Server 0.97.40, end of Phase 4

Compatible with client 0.97.40. The protocol changes: update client and server together. An older client does not get into a 0.97.40 server, and vice versa.

  • UTF-8 text end to end. The server no longer converts to Windows-1252: what the player types is what gets stored and what everyone else sees. Character and guild names accept any script (10 and 8 characters, validated and normalized to NFC). The database moves to utf8mb4.
  • Protocol 0.97.40: 40-byte character names, 32-byte guild names, and chat, whispers, guild notices and /post up to 200 bytes. Packets that exceed 255 bytes with these lengths use a C2 header.
  • Per-language translations (F3:F0). Each client receives item, monster and skill names, custom item tooltip lines and the client's own texts in its language, from Data/Text/<language>/ (Eng, Spn and Por).
  • Web panel: translation editor and custom item editor (effects, pose, tooltip and pets), both with the same validation as the server. Also adds password change, Turnstile and account sorting in the admin panel.
  • Buff bar (F3:F1) with each effect's time left, its values and who cast it, and per-map fog (F3:E9) with start and end distances.
  • MySQL through the C API: libmysqlclient on Linux and a statically built MariaDB Connector/C on Windows. No MySQL DLL is needed anymore.
  • Fixes: the Blood Castle ranking score arrived two bytes off; the recall packet (C3:B0) had the wrong layout with GCC; Rena and Stone stack.
  • On Windows, the recommended build is now x64. x86 stays as the historical base and CI still builds it.

Docker, all as 0.97.40 and latest, for amd64 and arm64: emapupi/mu-linux-97k, emapupi/mu-linux-97k-web, emapupi/mu-linux-97k-mu-editor, emapupi/mu-linux-97k-mysql and emapupi/mu-linux-97k-pterodactyl.

Upgrading from 0.97.30: the database changes. Back it up before you start.

  1. Stop mu-server and mu-web. Run Migrate-utf8mb4.sql, Migrate-0.97.40.sql and Procedures.sql, following the utf8mb4 migration guide.
  2. Pull the new images.
  3. Pulling does not update a persistent volume, so you have to integrate the following by hand:
    • Required: ServerVersion=0.97.40 in GameServer/Data/GameServerInfo - StartUp.dat. Without this change the new client cannot log in.
    • The Data/Text/ folder.
    • The Message_*.txt files, which are now UTF-8.
    • The Rena and Stone row in ItemStack.txt.

See the full guide.

Pterodactyl:

  • Import the eggs from Pterodactyl-eggs-0.97.40.zip. The server egg uses the 0.97.40 runtime image, which ships libmysqlclient21. The web egg now accepts the tag without a v.
  • Select 0.97.40 in MU_RELEASE_TAG.
  • For existing installations, with the server stopped, extract the archive for your architecture into a temporary folder, replace the four binaries and start.sh, and integrate the Data files above while keeping your INI files.

Português — Server 0.97.40, encerramento da Fase 4

Compatível com o cliente 0.97.40. O protocolo muda: atualize cliente e servidor juntos. Um cliente anterior não entra num servidor 0.97.40, e vice-versa.

  • Texto em UTF-8 de ponta a ponta. O servidor não converte mais para Windows-1252: o que o jogador digita é o que fica salvo e o que os outros veem. Os nomes de personagem e de guild aceitam qualquer escrita (10 e 8 caracteres, validados e normalizados em NFC). A base passa para utf8mb4.
  • Protocolo 0.97.40: nomes de personagem de 40 bytes e de guild de 32, e chat, sussurros, avisos de guild e /post de até 200 bytes. Os pacotes que com esses tamanhos passam de 255 bytes usam header C2.
  • Traduções por idioma (F3:F0). Cada cliente recebe no seu idioma os nomes de itens, monstros e skills, as linhas de tooltip dos itens custom e os textos próprios do cliente, a partir de Data/Text/<idioma>/ (Eng, Spn e Por).
  • Painel web: editor de traduções e editor de itens custom (efeitos, pose, tooltip e pets), os dois com a mesma validação do servidor. Também traz troca de senha, Turnstile e ordenação de contas no painel de administração.
  • Barra de buffs (F3:F1) com o tempo restante de cada efeito, seus valores e quem o lançou, e névoa por mapa (F3:E9) com distâncias de início e fim.
  • MySQL pela API em C: libmysqlclient no Linux e MariaDB Connector/C compilado estático no Windows. Nenhuma DLL do MySQL é mais necessária.
  • Correções: a pontuação do ranking do Blood Castle chegava deslocada em dois bytes; o pacote de recall (C3:B0) tinha o layout errado com GCC; Rena e Stone se empilham.
  • No Windows, a compilação recomendada passa a ser x64. O x86 fica como base histórica e o CI continua compilando.

Docker, todas em 0.97.40 e latest, para amd64 e arm64: emapupi/mu-linux-97k, emapupi/mu-linux-97k-web, emapupi/mu-linux-97k-mu-editor, emapupi/mu-linux-97k-mysql e emapupi/mu-linux-97k-pterodactyl.

Atualização a partir da 0.97.30: a base de dados muda. Faça um backup antes de começar.

  1. Pare o mu-server e o mu-web. Rode Migrate-utf8mb4.sql, Migrate-0.97.40.sql e Procedures.sql, seguindo o guia de migração para utf8mb4.
  2. Faça o pull das novas imagens.
  3. O pull não atualiza um volume persistente, então é preciso integrar à mão o seguinte:
    • Obrigatório: ServerVersion=0.97.40 em GameServer/Data/GameServerInfo - StartUp.dat. Sem essa mudança o cliente novo não entra.
    • A pasta Data/Text/.
    • Os Message_*.txt, que agora estão em UTF-8.
    • A linha de Rena e Stone no ItemStack.txt.

Veja o guia completo.

Pterodactyl:

  • Importe os eggs de Pterodactyl-eggs-0.97.40.zip. O do servidor usa a imagem de runtime 0.97.40, que traz libmysqlclient21. O da web agora aceita o tag sem v.
  • Selecione 0.97.40 em MU_RELEASE_TAG.
  • Em instalações existentes, com o servidor parado, extraia o arquivo da sua arquitetura numa pasta temporária, substitua os quatro binários e o start.sh, e integre os arquivos de Data acima mantendo seus INI.