fix: Zweitwaffe der Assassine zeigte Schild- statt Waffen-Icon #14
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!14
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/assassin-second-weapon-icon"
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?
Problem
Bei der Assassine (trägt zwei Waffen) stimmte das Icon der zweiten Waffe im Charakter-Modal nicht mit dem Spiel überein (Screenshot-Vergleich von @Arkumen).
Ursache
Die Ausrüstungsliste der
sf-apiist positionsbasiert (EnumMap<EquipmentSlot, Option<Item>>), nicht typbasiert:Equipment::parseliest die Items einfach nacheinander aus dem Rohdaten-Array in die SlotsHat, BreastPlate, Gloves, FootWear, Amulet, Belt, Ring, Talisman, Weapon, Shield. Bei der Assassine landet die zweite Waffe dadurch technisch im "Shield"-Slot, ist aber weiterhin ein ganz normales Waffen-Item (item.typ == Weapon{...}).Die bisherige Icon-Auflösung (
item_icons.php) hat blind dem Slotnamen vertraut ("Shield" → geteiltes Schild-Icon-Set), statt den tatsächlichen Item-Typ zu prüfen.Fix
cli/cron_character_sync.php: speichert jetzt zusätzlich das rohetyp-Feld jedes Ausrüstungsgegenstands inchar_data_json.includes/item_icons.php: bestimmt die Icon-Typ-ID ausitem.typ(Weapon/Shield/...) statt aus dem Slotnamen. Der Slotname bleibt nur als Fallback für alte, noch nicht neu synchronisierte Datensätze ohnetyp-Feld.Wichtig für den Test
Der Fix greift erst, nachdem für den betroffenen Charakter ein neuer
character_sync-Lauf passiert ist (Cronjob oder manueller Sync-Button) — vorher fehlt dastyp-Feld noch in den gespeicherten Daten und der alte Slot-Fallback greift (zeigt weiterhin das falsche Schild-Icon).