41 lines
1.6 KiB
Go
41 lines
1.6 KiB
Go
package routers
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
)
|
|
|
|
var _ = sync.Mutex{}
|
|
var _ = context.Background
|
|
|
|
//
|
|
// Weapon-skin surface (build 4229938), ported from the Lyco donor build on 2026-09-26.
|
|
// Ownership is seeded at login: PlayerWeaponSkinInfo.OwnedSkinIds gets every authored
|
|
// WeaponSkinConfig id (221 in stock 4229938), which is what makes the skin picker list anything at
|
|
// all. These handlers then persist the per-character equipped set
|
|
// (SpiritWeaponSkinDict) and answer empty OK — the client commits the assignment locally.
|
|
// ⛑ Both bodies are decoded defensively: they are C2S shapes read off the donor's
|
|
// ClientToGameDelegate.lua serializers, and an unanswered INVOKE would leave the picker waiting
|
|
// forever, which is worse than a skin the server forgets.
|
|
//
|
|
func GameRouter_WeaponSkins_AskSetWeaponSkins(ctx context.Context, conn any, msg any) any {
|
|
// Router implementation for GameRouter_WeaponSkins_AskSetWeaponSkins
|
|
var zero any; return zero
|
|
}
|
|
|
|
func GameRouter_WeaponSkins_AskSyncWeaponSkinToSpirits(ctx context.Context, conn any, msg any) any {
|
|
// Router implementation for GameRouter_WeaponSkins_AskSyncWeaponSkinToSpirits
|
|
var zero any; return zero
|
|
}
|
|
|
|
//
|
|
// Push newly acquired skins (skinId -> acquireTime). With unlock-all the whole catalog is owned
|
|
// from login, so this stays unused — it is the only channel for granting a skin mid-session and
|
|
// is kept in shape for that.
|
|
//
|
|
func GameRouter_WeaponSkins_PushAddWeaponSkinsAsync(ctx context.Context, conn any, skinIdToAcquireTime map[string]any) any {
|
|
// Router implementation for GameRouter_WeaponSkins_PushAddWeaponSkinsAsync
|
|
var zero any; return zero
|
|
}
|
|
|