package rank import ( "f1-game/internal/data" nameActor "f1-game/internal/name/actor" "f1-game/internal/pb" cstring "github.com/cherry-game/cherry/extend/string" cfacade "github.com/cherry-game/cherry/facade" clog "github.com/cherry-game/cherry/logger" cactor "github.com/cherry-game/cherry/net/actor" ) type actor struct { cactor.Base //workerSize int64 } func NewActor() *actor { return &actor{} } func (p *actor) AliasID() string { return nameActor.Map_Rank } func (p *actor) OnInit() { var childList []cfacade.IActorHandler childList = append(childList, &actorPlayerPrestige{}) childList = append(childList, &actorPlayerGlory{}) childList = append(childList, &actorPlayerSeasonScore{}) childList = append(childList, &actorLeaguePrestige{}) childList = append(childList, &actorLeagueSeasonScore{}) for _, child := range childList { p.Child().Create(child.AliasID(), child) } } // map.rank.playerList/leagueList func (p *actor) OnLocalReceived(m *cfacade.Message) (next bool, invoke bool) { argBytes, ok := m.Args.([]uint8) if !ok { clog.Warnf("OnLocalReceived args is not *pb.I32. m=%+v", m) return false, false } var req pb.I32 err := p.App().Serializer().Unmarshal(argBytes, &req) if err != nil { clog.Warnf("OnLocalReceived args unmarshal failed. err=%v, m=%+v", err, m) return false, false } // 判断排行榜是否存在 rankID := req.Value _, found := data.Rank.GetByRankID(rankID) if !found { clog.Warnf("OnLocalReceived rankID is not found. rankID=%d", rankID) return false, false } childActor, found := p.Child().Get(cstring.ToString(rankID)) if !found { clog.Warnf("OnLocalReceived rankID actor not register. rankID=%d", rankID) return false, false } childActor.PostLocal(m) return false, false }