This repository has been archived on 2026-10-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Ananta-ps/internal/gameserver/routers/game_router_gang_boss.go
T

60 lines
2.8 KiB
Go

package routers
import (
"context"
"sync"
)
var _ = sync.Mutex{}
var _ = context.Background
//
// Gang-boss summon wheel (嘉姆 / 帮派Boss, Tab then dial to the second wheel),
// methodId 63745420 AskSummonGangMember.
// THE ONE SENTENCE THAT MATTERS: this is a real C2S round trip, so unlike the Z switch wheel
// the server decides what appears. That is why this wheel can surface characters the Z wheel
// never can — the Z wheel's membership lives in FightSpiritConfig.CanJoin behind a client-side
// gate, while this one hands the server an id and waits to see what comes back.
// What arrives is a single uint32 and what it means is not stable across builds: measurements on
// the reference branch saw the same slot send a gang-member row id (10520022) at one point and
// the display row's AgentQuoteId (40651920) at another. Neither is required to name something
// spawnable — 10520022 matches no config this server owns at all.
// Two things make this build more forgiving than the reference:
// 1. SlotOverrides lets sent-id be remapped server-side (see SummonWheelSettings), so the
// outcome never depends on guessing which id shape the client picked.
// 2. A failure prints the exact id plus the literal JSON to fix it, so an unresolvable slot
// costs one run to configure instead of one round of guesswork.
// The reply body is ignored by the client: summonCb reads only the retcode and maps a non-zero
// one through MessageConfig, which has no row for "this member cannot be projected" — an error
// would surface as an empty toast. So this always answers OK and reports through the console.
//
// Returns true the first time this slot id is seen, so the caller can log it once.
func GameRouter_GangBoss_NoteObservedSummonSentId(ctx context.Context, sentId uint32) bool {
// Router implementation for GameRouter_GangBoss_NoteObservedSummonSentId
return true
}
func GameRouter_GangBoss_AskSummonGangMember(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_GangBoss_AskSummonGangMember
var zero any; return zero
}
//
// "Disband all" on the same wheel (63243016). Without a handler the button is a dead no-op and
// every summoned character stays in the world forever — there is no other despawn path.
//
func GameRouter_GangBoss_AskDestroyAllGangMember(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_GangBoss_AskDestroyAllGangMember
var zero any; return zero
}
//
// Maps the id the client sent onto the id to actually spawn. Returns the input unchanged when
// this slot is not configured, which keeps the reference branch's behaviour as the default.
//
func GameRouter_GangBoss_ResolveSummonTarget(ctx context.Context, sentId uint32, label any) uint32 {
// Router implementation for GameRouter_GangBoss_ResolveSummonTarget
return 0
}