ACTUALIZACIÓN SEMANAL VERIFICADALa semana que
cambió NosGM.
Del 19 al 25 de julio de 2026 fusionamos 78 pull requests en la rama principal. Esta es la historia completa del trabajo: qué cambió, por qué importa y cuál es el siguiente objetivo.
78PR fusionados
10idiomas compatibles
690claves del servidor
4.8.1Release / Any CPU
CONTENIDO DE LA ENTREGA19.07 — 25.07.2026
01
PR #1–#6Mundos, SP e idiomas
Se creó la base de modos de mundo —incluido el canal con 0 EXP normal y heroica— y la auditoría SP1–SP12 usando datos SQL reales. La localización por cuenta llegó a diez idiomas con alias regionales, persistencia y fallback seguro; luego se repararon los RESX y se añadió una puerta CI real.
- PvE/PvP y canal cero EXP
- Auditoría SP con datos vivos
- 10 idiomas por cuenta
- MSBuild y ResGen en Windows
02
PR #7–#16Rendimiento, economía y protección
Nació $Perf y evolucionó hacia un diagnóstico profesional. Correo, recompensas, intercambios y operaciones de Bazaar pasaron a flujos idempotentes o transaccionales. ItemTrace y el detector de seriales duplicados permiten seguir objetos, mientras los límites de paquetes protegen el World.
- $Perf runtime y paquetes
- Mail/recompensas idempotentes
- Trades y Bazaar atómicos
- Protección contra packet flood
03
PR #17–#21Gobernanza GM auditable
Los comandos staff ahora tienen permisos por categoría, un ledger persistente y casos de investigación enlazados a sanciones confirmadas. El inspector de jugadores concentra evidencia y las credenciales del webhook dejaron de existir dentro del código fuente.
- Permisos granulares
- Auditoría persistente
- Casos e inspector
- Sanciones confirmadas
04
PR #22–#37NosBazaar recuperado de extremo a extremo
Se instrumentó el Bazaar y se corrigió toda la cadena: paquetes actuales, publicación, stacks, información de hadas, búsqueda global, cobro de ventas, recollection, seriales heredados y pagos con autoridad SQL. Las operaciones críticas preservan ItemInstanceId y EquipmentSerialId.
- Publicación y búsqueda global
- Cobro de ventas completas
- Recollection SQL-authoritative
- Trazabilidad de seriales
05
PR #38–#49SP12 y motor de combate estructurado
SP12 recibió registro BCard, auditoría, gauge de sincronización y reglas autoritativas. El motor de daño adoptó contextos y resultados estructurados para PvE y PvP, propagó el contexto de golpe y aplicó bonus de sincronización, distancia de Aquiles y ultimate.
- Gauge una vez por skill
- Bonus de sincronización
- Daño PvE/PvP estructurado
- Aquiles y ultimate
06
PR #50–#55Identidad NosGM y base mantenible
La identidad Frostvein fue migrada de forma completa a NosGM, se unificó el grafo de proyectos en .NET Framework 4.8.1 y se restauraron atribuciones, licencias y salvaguardas de cumplimiento. La compilación Release / Any CPU quedó validada.
- Identidad NosGM completa
- .NET Framework 4.8.1
- Créditos OpenNos correctos
- Salvaguardas de licencias
07
PR #56–#62Suite de herramientas para desarrolladores
NosGM.DataUpdater procesa BCard.dat y genera JSON, manifiesto e informe de cambios. Time-Space Parser ofrece parse, batch, validate y self-test. Se añadieron Client Enhancements, Resource Explorer, Packet Catalog determinista y un editor de temas con aplicación protegida.
- DataUpdater multilingüe
- Time-Space Parser .NET 9
- Resource Explorer read-only
- Packet Catalog y Theme Editor
08
PR #64–#69Launcher, portal y API pública
El launcher obtuvo base segura, recuperación, importación explícita, diez idiomas, selección de carpeta y pipeline de paquetes firmados. Al mismo tiempo se creó la base segura del portal y una API pública versionada y firmada con datos vivos de NosGM.
- Launcher en 10 idiomas
- Recuperación e importación
- Releases firmadas
- Portal y API versionada
09
PR #70–#76World Server más ligero y observable
GeneralLog dejó de escanear historiales y empezó a escribir por lotes. Se eliminaron consultas N+1 del Bazaar y ShellEffects. CharacterLife usa un scheduler central, el ingress despierta por eventos y limita sus colas, Guri tiene diagnóstico por tipo y los logs Release son compactos y rotativos.
- GeneralLog por lotes
- N+1 eliminados
- Scheduler central
- Ingress por eventos y logs limitados
10
PR #77–#82BCards correctas, visibles y defensivas
La registry BCard se inicializa antes de ejecutar datos y evita falsos missing handlers. $BCardPerf muestra resumen, handlers y firmas faltantes; las muestras incorporan nombres semánticos. Reglas no letales quedaron clasificadas como pasivas y DealDamageAround obtuvo una implementación defensiva.
- Inicialización idempotente
- $BCardPerf
- Diagnóstico semántico
- DealDamageAround defensivo
VALIDACIÓN Y CALIDADCambios grandes, con puertas de seguridad.
La modernización no se apoyó solo en revisiones visuales. El proyecto recibió compilación real de Windows, validación de recursos, controles de licencias, pruebas sintéticas y diagnósticos que permanecen disponibles durante el runtime.
- 01Windows MSBuild + ResGen
- 02.NET Framework 4.8.1 Release
- 03Catálogos RESX verificados
- 04Seguridad, identidad y licencias
- 05Self-tests de herramientas
- 06Métricas de runtime reset-safe
LO QUE SIGUEDe la infraestructura a la jugabilidad verificada.
La prioridad inmediata es completar formas BCard ejecutables y handlers de objetos realmente faltantes. Después continuaremos con pruebas prolongadas del World Server y la validación mecánica de SP1–SP12, buffs, debuffs, +20, PvE, PvP y el canal cero EXP.
Ayúdanos a probar ↗