feat: echte Sonder-/Streamer-Portraits statt Buchstaben-Platzhalter #25
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
DasAoD/sfguildsv2!25
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/special-streamer-portraits"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Hintergrund
sf-api liefert für Influencer/Streamer ein Portrait über das Feld
special_portrait(sf-api-Quellcode-Kommentar: "Influencers get a special portrait"), statt der normalen Ebenen-Werte (hair, eyes, mouth, ...) — die sind für diese Charaktere alle 0. Bisher hatportrait.jsdas explizit erkannt und dann aufgegeben (Kommentar: "Sonder-/Streamer-Portraits liegen uns nicht lokal vor."), sodass diese Charaktere nur den Buchstaben-Platzhalter zeigten.Herkunft/Verifikation der Bild-IDs
special_portraitist negativ, der Betrag ist die Bild-ID (z.B.-259→special259.webp). Verifiziert gegen sfportrait.12hp.de — deren "Custom avatar"-Galerie labelt#259als "ZsombeyHD (#259)", exakt passend zum gespeicherten Wert für diesen Spieler (Gilde Equilibrium).Änderungen
res/scripts/PortraitMaker-res/portraits/special/specialN.webp) heruntergeladen und lokal vendored (public/assets/images/portraits/special/), damit nichts von der Verfügbarkeit dieser Seite abhängt — gleiches Prinzip wie beim Rahmen/der Offset-Map aus PR #18.portrait.js: neuerenderSpecialPortrait()-Funktion zeichnet das fertige Einzelbild (statt Ebenen-Komposition) mit kleinem Rand zentriert auf den Canvas und legt wie gewohnt den goldenen Rahmen (portrait_border.webp) darüber. Fällt bei fehlendem Bild weiterhin sauber auf den Platzhalter zurück (z.B. für zukünftige neue Influencer, deren Bild noch nicht vendored ist).Test
Live im Browser getestet:
renderSpecialPortrait-Logik gegen ZsombeyHDs echte, per API abgerufene Portrait-Daten (special_portrait: -259) laufen lassen und auf einen Test-Canvas gezeichnet — Ergebnis sieht korrekt aus (Portrait + Rahmen, sauber zentriert, kein Clipping). Bitte nach Merge/Deploy nochmal am echten Modal für ZsombeyHD (Gilde Equilibrium) gegenchecken.