| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- 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
- }
|