Armería: PvP campos de batalla, logros por categoría, bandas/mazmorras y página de hermandad

- PvP: pestaña Campos de batalla (pvpstats) con resultado, stats por partida y fecha/hora.
- Logros: rejilla por categoría con anillos de progreso + detalle por categoría
  (datos de Achievement.db2 + Achievement_Category.db2, iconos vía wowhead).
- Bandas: progreso por dificultad (10/25/heroico) con jefes reales de DungeonEncounter.db2
  y tooltip de jefes; agrupado por expansión (Clásico/TBC/WotLK).
- Mazmorras: mismo sistema, Normal + Heroico, Clásico/TBC/WotLK.
- Página de hermandad estilo armería: cabecera (emblema, puntos = unión de logros de
  miembros sin duplicar, nº miembros, fundada), pestañas Hermandad/Logros, roster con
  iconos de clase/raza, columna Función (rol por spec), filtros clase/función,
  orden por rango/puntos/nivel de objeto/nivel/nombre, paginación.
- Barra lateral: mensaje diario con login (iron-session, gated por pertenencia),
  logros recientes y desgloses de clases y funciones.
- Cabecera de personaje: enlace a la hermandad + nombre del reino.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 01:18:30 +00:00
parent 476e5dba87
commit beba7301a1
203 changed files with 31304 additions and 269 deletions
Binary file not shown.
Binary file not shown.
+79
View File
@@ -0,0 +1,79 @@
{
"Model": 0,
"Textures": null,
"Textures2": null,
"TextureFiles": {
"44168": [
{
"FileDataId": 165326,
"Gender": 1,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 165327,
"Gender": 0,
"Class": 0,
"Race": 0,
"ExtraData": 0
}
],
"45052": [
{
"FileDataId": 162632,
"Gender": 1,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 162633,
"Gender": 0,
"Class": 0,
"Race": 0,
"ExtraData": 0
}
]
},
"ModelFiles": null,
"Item": {
"Flags": 1,
"InventoryType": 19,
"ItemClass": 0,
"ItemSubClass": 0,
"HideGeosetMale": null,
"HideGeosetFemale": null,
"GeosetGroup": [
1,
0,
0,
0,
0,
0
],
"AttachGeosetGroup": [
0,
0,
0,
0,
0,
0
],
"GeosetGroupOverride": 0,
"ItemVisual": 0,
"ParticleColor": null
},
"Creature": null,
"Character": null,
"ItemEffects": null,
"Equipment": null,
"ComponentTextures": {
"3": 44168,
"4": 45052
},
"ComponentModels": null,
"StateKits": null,
"Decor": null,
"Scale": 1
}
+103
View File
@@ -0,0 +1,103 @@
{
"Model": 0,
"Textures": null,
"Textures2": null,
"TextureFiles": {
"27853": [
{
"FileDataId": 151149,
"Gender": 1,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 151150,
"Gender": 0,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 151151,
"Gender": 3,
"Class": 0,
"Race": 0,
"ExtraData": 0
}
],
"43842": [
{
"FileDataId": 162708,
"Gender": 1,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 162709,
"Gender": 0,
"Class": 0,
"Race": 0,
"ExtraData": 0
}
],
"32971": [
{
"FileDataId": 160057,
"Gender": 1,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 160058,
"Gender": 0,
"Class": 0,
"Race": 0,
"ExtraData": 0
}
]
},
"ModelFiles": null,
"Item": {
"Flags": 0,
"InventoryType": 4,
"ItemClass": 4,
"ItemSubClass": 0,
"HideGeosetMale": null,
"HideGeosetFemale": null,
"GeosetGroup": [
0,
0,
0,
0,
0,
0
],
"AttachGeosetGroup": [
0,
0,
0,
0,
0,
0
],
"GeosetGroupOverride": 0,
"ItemVisual": 0,
"ParticleColor": null
},
"Creature": null,
"Character": null,
"ItemEffects": null,
"Equipment": null,
"ComponentTextures": {
"0": 27853,
"3": 43842,
"4": 32971
},
"ComponentModels": null,
"StateKits": null,
"Decor": null,
"Scale": 1
}
+93
View File
@@ -0,0 +1,93 @@
{
"Model": 0,
"Textures": null,
"Textures2": null,
"TextureFiles": {
"34391": [
{
"FileDataId": 157363,
"Gender": 1,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 157364,
"Gender": 0,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 157365,
"Gender": 3,
"Class": 0,
"Race": 0,
"ExtraData": 0
}
],
"31483": [
{
"FileDataId": 154745,
"Gender": 1,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 154746,
"Gender": 0,
"Class": 0,
"Race": 0,
"ExtraData": 0
},
{
"FileDataId": 154747,
"Gender": 3,
"Class": 0,
"Race": 0,
"ExtraData": 0
}
]
},
"ModelFiles": null,
"Item": {
"Flags": 0,
"InventoryType": 7,
"ItemClass": 4,
"ItemSubClass": 4,
"HideGeosetMale": null,
"HideGeosetFemale": null,
"GeosetGroup": [
0,
0,
0,
0,
0,
0
],
"AttachGeosetGroup": [
0,
0,
0,
0,
0,
0
],
"GeosetGroupOverride": 0,
"ItemVisual": 0,
"ParticleColor": null
},
"Creature": null,
"Character": null,
"ItemEffects": null,
"Equipment": null,
"ComponentTextures": {
"5": 34391,
"6": 31483
},
"ComponentModels": null,
"StateKits": null,
"Decor": null,
"Scale": 1
}
+65
View File
@@ -0,0 +1,65 @@
{
"Model": 0,
"Textures": null,
"Textures2": null,
"TextureFiles": {
"31715": [
{
"FileDataId": 154786,
"Gender": 3,
"Class": 0,
"Race": 0,
"ExtraData": 0
}
],
"25002": [
{
"FileDataId": 152659,
"Gender": 3,
"Class": 0,
"Race": 0,
"ExtraData": 0
}
]
},
"ModelFiles": null,
"Item": {
"Flags": 0,
"InventoryType": 8,
"ItemClass": 4,
"ItemSubClass": 4,
"HideGeosetMale": null,
"HideGeosetFemale": null,
"GeosetGroup": [
1,
0,
0,
0,
0,
0
],
"AttachGeosetGroup": [
0,
0,
0,
0,
0,
0
],
"GeosetGroupOverride": 0,
"ItemVisual": 0,
"ParticleColor": null
},
"Creature": null,
"Character": null,
"ItemEffects": null,
"Equipment": null,
"ComponentTextures": {
"6": 31715,
"7": 25002
},
"ComponentModels": null,
"StateKits": null,
"Decor": null,
"Scale": 1
}
File diff suppressed because it is too large Load Diff
+57
View File
@@ -0,0 +1,57 @@
{
"Model": 0,
"Textures": {
"2": 305187
},
"Textures2": null,
"TextureFiles": null,
"ModelFiles": {
"2989": [
{
"FileDataId": 305165,
"Gender": 2,
"Class": 0,
"Race": 0,
"ExtraData": -1
}
]
},
"Item": {
"Flags": 0,
"InventoryType": 21,
"ItemClass": 2,
"ItemSubClass": 4,
"HideGeosetMale": null,
"HideGeosetFemale": null,
"GeosetGroup": [
0,
0,
0,
0,
0,
0
],
"AttachGeosetGroup": [
0,
0,
0,
0,
0,
0
],
"GeosetGroupOverride": 0,
"ItemVisual": 0,
"ParticleColor": null
},
"Creature": null,
"Character": null,
"ItemEffects": null,
"Equipment": null,
"ComponentTextures": null,
"ComponentModels": {
"0": 2989
},
"StateKits": null,
"Decor": null,
"Scale": 1
}
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB